Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Insa Hofmeister Geändert vor über 9 Jahren
1
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 1 Bei Anruf: Fehler bereits behoben Proaktive Fehlerbeseitigung ohne Kundenbeteiligung
2
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 2 Über uns... Tobias Gindler Sven Bunge Die Holisticon AG ist eine Management- und IT-Beratung mit Sitz in Hamburg. Mit einem ganzheitlichen Beratungsansatz unterstützen wir unsere Kunden in ihren Entwicklungsprojekten auf technischer, taktischer wie auch strategischer Ebene. http://blog.holisticon.de Twitter: @holisticon
3
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 3 Agenda ■ Motivation ■ Mögliche Fehlerquellen ■ … und wie man diese aufspürt ■ Verarbeitung von Logfiles ■ Implizites Logging ■ Alerting ■ Fragen und Diskussion
4
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 4 Motivation ■ Gesteigerte Komplexität in Softwaresystemen steigert auch Fehlerwahrscheinlichkeit ■ Fehler können nie mit Gewissheit ausgeschlossen werden. ■ In produktiver Umgebung sollte Fehler von Kunden unbemerkt bleiben ■ … und automatisiert erkannt und schnell behoben werden.
5
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 5 Beispiel 1: Benutzer erleben Fehler ■ Kunde besucht Onlineshop Kunde wählt Produkt Kunde meldet sich an / erstellt Konto Kunde gibt Zahlungsdaten ein Beim Speichern tritt ein Fehler auf Kunde sieht Fehlerseite ■ Geschäftsabschluss findet nicht statt Dem Kunden ist klar, dass Kauf nicht stattgefunden hat
6
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 6 Beispiel 2: Benutzer bezahlen Fehler ■ Kunde besucht Onlineshop Kunde wählt Produkt Kunde meldet sich an / erstellt Konto Kunde gibt Zahlungsdaten ein Kunde bestätigt Kauf und sieht Kaufbestätigung ■ Geschäftsabschluss findet statt ■ Kauf wird nicht ins ERP System übertragen Kunde bezahlt Fehler ohne das Ware geliefert wird
7
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 7 Fehler sind ungemütlich im Geschäftsalltag
8
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 8 Vielfältige Fehlerquellen Software / Implementierung Daten Infrastruktur
9
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 9
10
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 10 Auswertung und Alerting ■ Darstellung Visuelle Aufbereitung der Metriken in einem Monitoring -Server Operator benachrichtigt ggf. zuständige Mitarbeiter (z.B. Issue-Tracking-System) ■ Automatisierte Benachrichtigung Metriken werden von Monitoring Server gegen Schwellwerte verglichen und klassifiziert Feste oder dynamische Regeln entscheiden über eine Mitarbeiter-Intervention
11
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 11 Fehler in der Anwendung ■ Software Programmierfehler Unklare / unvollständige Anforderungen Integrationsinkonsistenzen gegenüber externen Komponenten ■ Datenkonsistenz / -korrektheit Fehlerhafte Daten können zu unvorhersehbaren Systemverhalten führen Fehlerhafte Daten können durch Fehler in der Software und der Infrastruktur entstehen
12
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 12 Detektion von Software-Fehlern ■ Meldung durch den Endbenutzer ■ Überprüfung der persistenten Daten Konsistenz Anforderungen ■ Auswertung von Log-Dateien Access-Logs Anwendungsserverlogs
13
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 13 Log-Dateien ■ Sind technologieunabhängig ■ Ausgabe-Formate sind vielfältig ■ Müssen fortlaufend verbessert werden Hinzufügen fehlender Informationen Entfernung von Ausgaben ohne Mehrwert Optimierung der Log Level der Ausgabe
14
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 14 Große Systeme haben viele Log-Dateien
15
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 15
16
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 16 Aggregation von Logausgaben ■ Nicht aggregiert ■ Aggregiert 2014-10-05 23:13:30.813 [main] INFO holisticon.examples.TestClass - Hello World 2014-10-05 23:12:28.227 [main] INFO holisticon.examples.TestClient - [SESSION_ID] - [REQUEST_ID] - Hello World
17
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 17 Kontext-Propagation
18
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 18 Aggregation von Logausgaben ■ Aggregation von Logausgaben mittels Request- und pseudonymisierte Session-Ids ■ Aggregationsdaten müssen zwischen Komponenten übertragen werden HTTP: REST, XML-RPC, etc. über HTTP-Header SOAP: SOAP-Header Asynchrone Verarbeitung – Speicherung der Daten an der Message Ausschluss der Datenübertragung von externen Komponenten Benutzer-Interaktionen und komplette Sessions können systemweit einfach und schnell nachvollzogen werden
19
Wie loggen wir eigentlich?
20
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 20 Explizites Logging
21
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 21 Implizites Logging
22
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 22 Ausgabe des impliziten Logging ■n■n IMPLICIT_EXCEPTION_LOGGER: { "errorMessage": { "message": "An error occurred while updating the customer" }, "invocationContext": { "className": "de.holisticon.examples.CustomerDao2", "methodName": "updateCustomer", "parameters": [{ "de.holisticon.examples.Customer": "Customer@7e14b389[id=10001,firstName='Max',lastName='Mustermann',version=1]"}] }, "throwable": { "message": "java.lang.IllegalArgumentException: org.hibernate.ObjectDeletedException: deleted instance passed to merge:", "stacktrace": "..." }
23
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 23 Logging an den Komponentengrenzen
24
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 24 Beispiel - Webanwendung ■ Kunde erhält bei Eingabe von Zahlungsinformationen einen Fehler ■ Fehler wird im Log aufgezeichnet Identifikation über Session ID Request-ID als Klammer für Nutzerinteraktion Erweiterte Kontextinformationen ■ Kontextinformationen sind zum Beispiel URL mit Aufrufparameter / Payload SOAP / REST Kommunikation
25
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 25 Einschränkungen ■ Ausgabe Sicherheitskritischen Daten Komplexen Datenstrukturen Großen Datenmengen ■ Frameworkabhängige Einschränkungen JPA: Entitäten mit Relationen CDI: Injection ■ Zusammenspiel mit anderen Problemlösungen Beispiel: Fehlerseiten-Filter
26
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 26 ■ Allgemeine technologiegebundene Problemlösungen ■ Aufgaben Bereitstellung von Kontextinformationen Erleichterung der Erkennung und Behebung von Fehlerzuständen ■ Einsatz Systemgrenzen Komponentengrenzen Neuralgischen Punkten Verwendung nicht übertreiben! Implizites Logging - Zusammenfassung
27
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 27 Automatisierte Fehlererkennung / Alerting ■ Automatisierte Suche nach Fehlern und Schlüsselworten ■ Vergleich der gefundenen Fehler mit bereits aufgetretenen Fehlern Automatisierte Erstellung eines Tickets im Ticket System bei unbekannten Fehlern Erhöhung der Behebungspriorität im Ticket-System bei wiederholtem Auftreten Tickets enthalten Verlinkung auf Log-Servers mit vordefinierter Request ID und Session ID ■ Regelmäßige Erstellung von Fehlerreports und Fehlerstatistiken
28
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 28 TracEE ■ Kostenloses Java Framework ■ Open-Source, auf GitHub verfügbar https://github.com/holisticon/tracee ■ Bereitstellung und Propagation von Session- und Request-Ids in verteilten Systemen ■ Leicht erweiterbar ■ Verwendete Techniken auf andere Technologie-Stacks übertragbar
29
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 29 TracEE – Implizites Logging ■ Implizites (Kontext-)Logging im Falle eines Fehlers ■ Unterstützt viele Java-Technologien ■ Leicht einzubinden ■ Log-Ausgaben flexibel konfigurierbar ■ Einfach erweiterbar
30
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 30 Zusammenfassung Alerting des Logservers Reproduktion durch Fehler- Kontext Bugfix Kunden ermitteln / korrigieren KundenbeschwerdeFehlerkorrektur
31
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 31 Fragen und Diskussion
32
Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 32 Datenintegrität über Komponentengrenzen ■ Überprüfung der Daten über Skripte zur Prüfung der Daten ■ Skripte können auf folgende Grundlagen basieren: Anforderungen Beispiel : Überfällige Auslieferungen Datenbankstruktur Beispiel : Constraints, die nicht durch das Datenbankschema abgedeckt sind Bekannte Fehler ■ Skripte können ein Alerting ansteuern ■ Erkannte Fehler können teilweise automatisiert behoben werden!
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.