Suche
Interview mit Fabian Lange

„Monitoring-Systeme sind sicherlich kein Grund dafür, fahrlässig schlechtes Softwaredesign abzuliefern“

Redaktion JAXenter

„Wenn’s schlimm wird, schlägt ja das Monitoring Alarm“ Fördern Monitoring-Systeme ein solches Denken? Fabian Lange (Instana) beschäftigt sich in seiner Session auf der W-JAX 2015 mit dem Thema Monitoring und den Anforderungen an Systeme dafür. Wir haben ihn vorab um ein Interview gebeten.

JAXenter: Asynchrone Kommunikation von Microservices, Cloud- und Container-Technologien, Continuous Delivery Pipelines – die Beschaffenheit moderner Anwendungen hat sich in den letzten 5, 10 Jahren deutlich gewandelt. Du beschäftigst dich auf der W-JAX nun mit dem Themenkomplex Monitoring. Welche Herausforderungen bringen moderne Architekturen für das Monitoring mit sich?

Fabian Lange: Es ist erstaunlich, welche Wirkung ein einziges Start-up namens „Docker“ hatte. Wahrscheinlich war die Zeit einfach reif. Es gab ja verschiedene Virtualisierungen vor der Cloud und Containern, genauso gab es serviceorientierte Architekturen und Messaging-Systeme. Doch Docker hat es geschafft, daraus ein einfaches, stimmiges Konzept zu machen. Jedoch ist es auch echt viel einfacher, den Überblick zu verlieren, wenn man verschiedene Clouds und verschiedene Container verwendet. Die Idee der Application Server war, ein zentrales Management von Anwendungen zu haben. Heute sind Anwendungen dezentral und Management ist schwierig. Dabei ist die Dynamik ein entscheidender Faktor. Waren es früher 3 Server, die immer online sein mussten, könnes es heute 30 Container sein, morgen sind es 60, übermorgen nur 10. Fast alle heutigen Systeme sind derart elastisch. Beispiel eines Cassandra Clusters: Fallen bei einem 30 Node starken Cluster 10 aus, kann das kein Problem sein, oder halt auch doch, wenn es alle 3 Replikas eines Datensatzes erwischt hat.

JAXenter: Für welche Systeme oder Systemgrößen ist detailliertes Monitoring sinnvoll?

Fabian Lange: Monitoring setzt man ein um Probleme vorherzusagen oder nach deren Eintreten schnell zu beheben. Da die wenigsten IT-Systeme zum Spaß betrieben werden, ist Monitoring immer sinnvoll. Allerdings sollte das rechte Maß eingehalten werden, denn Monitoring ist kein Selbstzweck. Monitoring Tools müssen für mich einfach zu bedienen sein und dem Pareto-Prinzip folgen und 80% aller möglichen Fehler von alleine lösen können. Damit sind Sie für den breiten Markt hilfreich und wirtschaftlich. Idealerweise passt sich die Detaillierung des Monitorings an seine User automatisch an.

JAXenter: Wie lassen sich die Abhängigkeiten eines verteilten Systems mit zig verschiedenen Microservices vernünftig in einem Monitoring-System darstellen?

Fabian Lange: Das ist eine Frage mit der ich mich das ganze Jahr schon beschäftige. Wenn man sich die unzähligen Architekturtapeten ansieht, die in fast jedem Unternehmen zu finden sind, stellt man schnell fest, dass eine statische Dokumentation von einer dynamischen Umgebung unmöglich ist.

Doch selbst Monitoring Systeme, die diese Darstellungen zur Laufzeit anfertigen, können die Menge an Services selten darstellen. Adrian Cockcroft, ehemaliger Architekt von Netflix und jetzt Advisor von Battery Ventures, hat daher einen Simulator namens simianviz erstellt, welches solche komplexen Architekturen simulieren kann. Diese Simulation brauchbar anzuzeigen ist für Monitoring Tools sowas wie der ACID Test von Webbrowser. Sinnvolle Darstellungen sind Kontextbezogen und visualisieren einen definierten Zusammenhang. Werden im Falle eines Problems beispielsweise nur die davon betroffenen Services visualisiert.

JAXenter: Systeme zu überwachen ist ja schön und gut, aber verführen ausgeklügelte Monitoring-Systeme nicht dazu, manche Probleme in Architektur und Struktur ins Monitoring abzuschieben? Nach dem Motto „Wenn’s schlimm wird, schlägt ja das Monitoring Alarm?“

Fabian Lange: Ich denke nicht, dass Monitoring-Systeme derartiges Denken fördern. Diese Problem-Anderer-Leute-Einstellung ist leider dennoch häufig anzutreffen. Bewegungen wie DevOps sorgen hier für eine Gesamtverantwortung des Teams. Wartbarkeit und Nachvollziehbarkeit sind dann Interesse des gesamten Teams und werden durch Monitoring unterstützt. Auch sind Monitoring-Systeme sicherlich kein Grund dafür, fahrlässig schlechtes Softwaredesign abzuliefern, da niemand deswegen von der Alarmierung nachts geweckt werden will.

JAXenter: Mit Monitoring die Probleme in einem System zu sehen, ist ja nur die halbe Miete. Die Ursachen zu finden und passende Gegenmaßnahmen zu ergreifen, ist die andere Hälfte. Was kann ein Monitoring-System dahingehend leisten?

Fabian Lange: Obwohl die “Root-Cause-Analyse” ein Kernfeature von den meisten Monitoringwerkzeugen ist, sind diese Analysen häufig unzureichend. Als externer Performancetroubleshooter stelle ich häufig fest, dass die 5-Why-Methode weder von den Werkzeugen noch vom Mitarbeitern durchgeführt wurde.

Ein Beispiel:

  1. Warum ist die Server-Antwortzeit hoch?
    Die Methode Servlet.doGet() braucht lang.
  2. Warum braucht die Methode lang?
    Die Methode wurde lange pausiert.
  3. Warum wurde die Methode lange pausiert?
    Es fand Garbage Collection statt.
  4. Warum fand Garbage Collection statt?
    Der Speicher war voll.
  5. Warum war der Speicher voll?
    Batch.processData() verbraucht allen Speicher().

Monitoring stellt üblicherweise nur den ersten Fakt fest. Diese Kausalkette aufzubauen ist nur mit Expertenwissen möglich, welches üblicherweise im Betrieb nicht zur Verfügung steht.

Gegenmaßnahmen sind oft garnicht so schwierig zu finden, wenn man bei dem ursächlichen Problem angelangt ist. Schade ist allerdings, dass das Wissen über diese Gegenmaßnahmen sehr flüchtig ist. Schön wäre es z.B., wenn Monitoring auch Problemlösungsansätze aufzeichnen und diese auf ihren Erfolg hin analysieren würde.

JAXenter: Instana ist eine „wissensbasierte“ Monitoring-Lösung. Was genau bedeutet das?

Fabian Lange: Die gerade beschriebene Kausalkette ist nur ein einfaches Beispiel. In der IT-Realität sind diese Zusammenhänge viel komplizierter und manchmal komplett unbekannt. Instana enthält Expertenwissen um diese Abhängigkeiten und Beziehungen zu verstehen. Instana sammelt Daten nicht einfach nur als Zahlenwerte, sondern bringt eine Semantik mit; z.B., ob ein konstant hoher Wert besser als ein schwankender Wert ist. Dazu wendet Instana verschiedene statistische Verfahren an, um bekanntes Wissen zu validieren und zu erweitern. Die Herausforderung hierbei ist und bleibt allerdings das Standardproblem der Statistik: Korrelation ist nicht Kausation. Nutzt man allerdings Expertenwissen, kann man dies gut kompensieren.

 

Fabian Lange entwickelt bei Instana eine Lösung für den Betrieb von IT-Systemen, die mittels Machine Learning und Wissensbasis selbst komplexe Umgebungen einfach visualisieren kann. Er baut leidenschaftlich schnelle Software und hilft durch Vorträge und Artikel anderen, das Gleiche zu tun. Er liebt Open Source und kann von sich behaupten in jeder Bibliothek, die er nutzt, schon mindestens ein Issue gemeldet zu haben.

Verwandte Themen:

Geschrieben von
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.