Effektives Monitoring und Fehlerdiagnose im Betrieb von Softwaresystemen Wilhelm Hasselbring Lehrstuhl hl Software Engineering, Univ. Kiel Thomas Stahl b+m Informatik AG, Melsdorf Matthias Rohr BTC AG, Oldenburg Andre van Hoorn Graduiertenkolleg TrustSoft, Univ. Oldenburg Agenda 1. Monitoring des Laufzeitverhalten von Softwaresystemen Monitoring-/Visualisierungs-/Analyseframework Kieker Einsatz von Kieker in Produktivsystemen 2. Modellgetriebenes Monitoring b+m gear Integration in die (aspektorientierte) Modellierung 3. Integration von b+m gear und Kieker 2
Monitoring von Laufzeitverhalten eines S/W Systems Beobachtungen zum Monitoring in der Praxis 3 Auf Applikationsebene wenig verbreitet (bestenfalls Mittelwerte) Schwerpunkt auf Systemebene (Verfügbarkeit, Auslastung) Keine bzw. nur einfache automatische Auswertung/Alarmierung Einfügen von Monitoring-Punkten nachdem es geknallt hat Ziele von Monitoring auf Applikationsebene Was? Methodenantwortzeiten Kontrollfluss (Verknüpfung Anfrage und Aufruf) Wozu? Fehlererkennung/-diagnose(/-prävention) g Visualisierung von Softwareverhalten Benutzungsverhalten Adaption (Anpassung der Softwaresystemarchitektur) Herausforderungen beim kontinuierlichen Monitoring 4 Tradeoff zwischen Detailgrad und Overhead Anzahl und Position der Messpunkte Wartbare Integration der Messpunkte
Kieker - Architekturüberblick Zielsetzungen von Kieker Kontinuierliches Monitoring Visualisierung von (Java-)Softwareverhalten Ausfallerkennung und Lokalisierung von Ausfallursachen Eingesetzt bei EWE TEL, CeWe Color und Nokia Siemens Networks 5 Kieker - Monitoring Monitoring von Antwortzeiten: Zeit zwischen Start t und Ende des Aufrufes f eines Softwaredienstes. t Aufruffolgen (traces) von Software-Diensten für jede Anfrage. 6
Kieker Monitoring (cont d) Messcode zur Compile- oder Ladezeit mit Quelltext verbunden (AspectJ) Markierung von zu überwachenden Methoden im Quelltext...... @TpmonMonitoringProbe() public String additemtocart() {... } Annotationen: Kompromiss zwischen Wartbarkeit und Lesbarkeit Alternativen: Integration in Interception-Mechanismen, z.b. in Spring Framework Verteiltes Monitoring, z.b. Web Services/SOAP mit Apache CXF 7 Tpan Kieker s Analysis and Visualization Component Tpan (cont d) Bisher realisierte Visualisie- rungskomponenten UML Sequenz-Diagramme Markov-Ketten Abhängigkeitsgraphen Trace Timing Diagrams Unterstützte Ausgabeformate: PDF, SVG, PNG 8
Tpan Kieker s Analysis and Visualization Component Tpan (cont d) Bisher realisierte Visualisierungskomponenten: UML Sequenz-Diagramme Markov-Ketten Abhängigkeitsgraphen Trace Timing i Diagrams 9 Tpan Kieker s Analysis and Visualization Component Tpan (cont d) Bisher realisierte Visualisierungskomponenten: UML Sequenz-Diagramme Markov-Ketten Abhängigkeitsgraphen Trace Timing i Diagrams 10
Tpan Kieker s Analysis and Visualization Component Tpan (cont d) Bisher realisierte Visualisierungskomponenten: UML Sequenz-Diagramme Markov-Ketten Abhängigkeitsgraphen Trace Timing i Diagrams 11 Tpan Kieker s Analysis and Visualization Component Tpan (cont d) Bisher realisierte Visualisierungskomponenten: UML Sequenz-Diagramme Markov-Ketten Abhängigkeitsgraphen Trace Timing i Diagrams 12
Calling Dependency Graph ibatis JPetStore Monitoring Daten als Beispiel 13 Visualisierung: Ebenen Deployment Softwarekomponenten Operationen / Dienste 14
Visualisierung: Drill-DownDown 15 Laufende Feldstudien 1.) CeWe Color (photo finisher) 2.) EWE TEL (telco) Kieker integriert mit Java Spring Kieker integriert mit AspectJ 3.) Nokia Siemens Networks (telecommunication billing system) Fokus auf die Rekonstruktion von Sequenzdiagrammen 16
Zwischen-Fazit Monitoring von S/W-Laufzeitverhalten auf Applikationsebene 17 Kieker-Framework Kontinuierliches Monitoring auf Applikationsebene Rekonstruktion/Visualisierung kti i von S/W-Architektursichten i ht Erfolgreich eingesetzt in Produktivsystemen Open Source (zunächst nur der Monitoring-Teil) http://kieker.sourceforge.net Beispiel für automatische Analyse der Monitoring-Daten: Fehlerdiagnose basierend auf Zeitverhaltensanomalien Ausblick u.a. Aktualisierung von Architekturmodellen zur Laufzeit Optimierung von Rekonfigurationszeitpunkten Architekturbasierte i t Adaption zur Effizienz-Steigerungi i Modellgetriebene Instrumentierung b+m Gruppe Leistungsbereiche Kompetenz und Lösungen für die Finanzwirtschaft Lösungen für das Gesundheitswesen Modellgetriebene Softwareentwicklung Kompetenz und Lösungen für den internationalen Handel Kaufmännische Lösungen für den Mittelstand Kompetenz und Lösungen für Unternehmensdaten 18
Ausgangslage (1/2) b+m ist Produktlieferant (inkl.support), aber nicht Betreiber Einige wiederkehrende Problemstellungen aus dem Betrieb sind Situativ schlechte Performance aus Endbenutzersicht (mit spontaner Selbstheilung ) Service-Aufrufe von Fremdsystemen brechen gelegentlich ab (typischerweise Infrastruktur- inkl. Netzwerkprobleme) Anwender benutzen das System nicht, wie es gedacht ist Security Konfigurationen/Änderungen (insb. Browser) seitens der Betreiber führen zu Fehlverhalten in der Anwendung Zum Teil schwer reproduzierbare Anwendungsfehler im MultiUser- Betrieb (Nebenläufigkeit/Locking-Probleme) Aufwändiges Debugging durch tiefe, z.t. nicht (gut) dokumentierte Technologie-Stacks => Schnelle und zuverlässige Abbildung der Symptome auf Ursachen bzw. Abgrenzung ist ein wesentlicher Kostenfaktor 19 Ausgangslage (2/2) b+m setzt MDSD insb. auch bei der Entwicklung brachenspezifischer Produkte ein. Potenzial für modellgetriebene Instrumentierung Basis: Generative Architektur b+m gear auf Basis von openarchitectureware (oaw) und GMF Ansatz: Evolutionsschritt: Integration von Kieker in b+m gear 20
b+m gear Java Frontend Service Entity Screenflow Applic cation View Screenflow Service Layer Service Service Service Service Service 1 Entity 0..* Entity * Entity * Entity Entity 21 Plattfo orm View b+m gear Frontend Runtime b+m gear Service Runtime b+m gear Entity Runtime JSF/ AJAX Spring JPA Apache JBoss WebFlow JTA Hibernate MyFaces Richfaces JDBC Spring Beispiele: DSL-Modellelemente Frontend 22
Sprachelemente gear Service 23 Sprachelemente gear Entity 24
Sprachelemente gear Workflow/BPMN Fahrzeug ausleihen 25 Integration Kieker in b+m gear (1/3) Möglichkeiten, die sich durch den architekturzentrierten MDSD- Kontext ergeben: Systematische Instrumentierung von Architekturkonzepten (Abstraktion gegenüber SourceCode-Niveau) via MDSD- Transformationen => z.b. alle Business-Services instrumentieren Unterstützung unterschiedlicher Instrumentierungstechniken/- Plattformen aus einem abstrakten Konzept => z.b. Spring-Interception vs. AspectJ oder JEE vs..net Einschränkung / Selektion / Konfiguration der Instrumentierung auf Modellebene (Instrumentierung ist eine Entwurfsentscheidung) => Performance der laufenden Anwendung darf nicht beeinträchtigt werden 26
Integration Kieker in b+m gear (2/3) Varianten der Annotation Tagging des Design-Modells => Vorteil: Unmittelbare Ablesbarkeit => Nachteil: Separation of Concerns verletzt Dekorierung des Design-Modells, d.h. Einführung einer neuen Modellierungs-Partition: Instrumentierungsmodell => Vorteil: Gute Modularisierung der Modelle => Nachteil: Indirektion, dadurch ggf. etwas aufwändigere Modell- Navigation Instrumentierungsmodel-Element <<Service-Monitoring>> Aus Design- Modell 27 Integration Kieker in b+m gear (3/3) Konkrete Integrationspunkte der b+m gear spezifischen Instrumentierung Business-Services Abhängigkeitsgraphen inkl. dynamischer Aufruf und Sequenzdiagramme Screenflows Visualisierung als Markov-Ketten Rückspiegelung der statistischen Informationen ins Modell => Analyse des Nutzerverhaltens => Ableitung praxisrelevanter Lasttest-Szenarien Geschäftsprozesse Business Activity Monitoring mit Key Performance Indikatoren => Hilfestellung für das Management beim Kunden Innerhalb der gear Plattform: Visualisierung von Traces durch Sequenzdiagramme als Debugging- Hilfe 28
Werbung Modellgetriebene Softwareentwicklung Techniken, Engineering, Management, Stahl et al. dpunkt, 2. Auflage 2007 b+m ist Gründer von openarchitectureware Handbuch der Software-Architektur, Reussner & Hasselbring (Hrsg), dpunkt, 2. Auflage 2008 Enterprise Application Integration Conrad, Hasselbring, Koschel, Tritsch, Spektrum Akademischer Verlag, 2005 29 ISBN 978-3-89864-559-1 ISBN 978-3-8274-1572-1