Just-in-Time-Patching Java Applications
Die Analyse und Behebung von Fehlern in produktiven Anwendungen ist häufig erschwert, weil Eingriffe mit temporären Unterbrechungen oder dem Verlust von User-Sessions einhergehen. Darunter fallen z.B. das Einfügen von zusätzlichen Logs, Debugging oder Patches.
Relativ unbekannt ist, dass eine JVM Mittel bereitstellt, mit denen man Änderungen am Code zur Laufzeit anpassen kann: Java-Agents und Runtime-Attachment.
In diesem Vortrag zeigen wir am Beispiel einer Java-Webanwendung den typischen Ablauf einer Fehleranalyse und -korrektur zur Laufzeit (Loggen von Informationen, Reproduzieren von Testfällen, Patchen von Code) - und zwar ganz ohne Neustart der Anwendung.
Stefan Mandel
Stefan Mandel arbeitet als agiler Software-Entwickler bei andrena objects ag. Neben seiner täglichen Arbeit mit Java/Javascript/HTML/CSS hat er an mehrere Open-Source-Projekten zum Thema Programmanalyse und Metaprogrammierung in der JVM mit gearbeitet.
Jan Müller
Jan Müller arbeitet seit 3 Jahren als Agile Software Engineer bei andrena objects ag. Aktuell ist er als Full-Stack-Entwickler in einem Scrum-DevOps-Projekt mit Java und TypeScript tätig. Bei seiner täglichen Arbeit liegt sein Augenmerk auf Clean Code und der pragmatischen Nutzung agiler Arbeitsweisen.