Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 1 Bei Anruf: Fehler bereits behoben Proaktive Fehlerbeseitigung ohne Kundenbeteiligung.

Ähnliche Präsentationen


Präsentation zum Thema: "Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 1 Bei Anruf: Fehler bereits behoben Proaktive Fehlerbeseitigung ohne Kundenbeteiligung."—  Präsentation transkript:

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!


Herunterladen ppt "Bei Anruf: Fehler bereits behoben | Tobias Gindler & Sven Bunge | 1 Bei Anruf: Fehler bereits behoben Proaktive Fehlerbeseitigung ohne Kundenbeteiligung."

Ähnliche Präsentationen


Google-Anzeigen