Als natürliche Weiterentwicklung von Monitoring-Verfahren hat der Begriff "Observability" in Kreisen von Softwareentwicklern seit 2018 enorm an Bedeutung gewonnen.
Observability - Definition
Durch die Zusammenführung der Rohdaten von Metriken, Ereignissen, Logs und Traces ermöglicht Observability Entwicklern, sich in Echtzeit ein Bild davon zu machen, wie ihre Softwaresysteme funktionieren und wo Probleme auftreten könnten. Das Konzept selbst ist jedoch tief in den allgemeineren, technischen Prinzipien der Kontrolltheorie verwurzelt, wonach das Maß für den internen Zustand eines Systems nur anhand seines externen Outputs beobachtet werden kann. Die durch Microservices und Container getriebene Umstellung auf verteilte Softwaresysteme verleiht dem alten Mantra "Was Sie nicht messen können, können Sie nicht managen" neue Relevanz.
Observability vs. Monitoring
Observability mag im ersten Moment nach einem Rebranding von gewöhnlichem Anwendungs-Monitoring klingen - und eine solche Grundskepsis gegenüber Buzzwords scheint auch berechtigt. Es gibt jedoch einen kategorischen Unterschied zwischen den Begriffen: Während Monitoring ein Vorgehen beschreibt, ist mit Observability das Attribut eines Systems gemeint. Der Engineering Manager und Technik-Blogger Ernest Mueller schrieb 2018 dazu: "Observability beschreibt die Eigenschaft eines Systems. Man kann ein System mit verschiedenen Instrumenten überwachen, aber wenn sein Zustand verhindert, herauszufinden, was da drin eigentlich vor sich geht, dann steckt man fest."
Observability wird immer wichtiger, weil Entwickler ihre Anwendungen immer öfter in viele kleine Teile - sogenannte Microservices - zerlegen, sie in Containern auf verteilten Cloud-Servern hosten und sie kontinuierlich unter dem wachsamen Augen des Devops-Teams bereitstellen. "Durch den Trend zu verteilten Systemen entwickeln sich die Methoden für deren Aufbau und Betrieb schnell weiter - was transparente Services und Infrastruktur wichtiger denn je macht. Observability ist ein 'Superset' von Monitoring und gewährt nicht nur Einblicke in den Zustand des Systems, sondern auch in die impliziten Fehlermodi", schreibt die Softwareentwicklerin Cindy Sridharan in ihrem Buch "Distributed Systems Observability". Darüber hinaus liefere ein System mit Observability reichlich Kontext über seine innere Funktionsweise, so Sridharan, was die Möglichkeit eröffne, tiefere, systemische Probleme aufzudecken.
Observability - 3 Säulen
Es gibt drei allgemein anerkannte Säulen der Observability: Metriken, Traces und Logs. Für sich genommen repräsentiert jede Säule die Fähigkeit des Entwicklers, seine Systeme zu evaluieren und zu überwachen. Werden sie zusammengebracht und in (nahezu) Echtzeit dargestellt, kann ein System mit Observability ausgestattet werden. Dieser Vorgang ist allerdings kein Selbstläufer, wie Sridharan klarstellt: "Es geht nicht um Logs, Metriken oder Traces, sondern darum, beim Debugging datenorientiert zu agieren und Feedback zu nutzen, um das Produkt schrittweise zu verbessern."
Greg Ouillon, CTO beim Monitoring-Anbieter New Relic, sieht Observability als Produkt der durch das Cloud-Zeitalter hervorgebrachten Software-Engineering- und Monitoring-Trends. "Observability adressiert die resultierenden Herausforderungen, indem es Monitoring neu denkt und an das neue Technologie-Paradigma anpasst. Durch die Bereitstellung einer vollständig vernetzten Ansicht aller Software-Telemetriedaten an einem Ort ermöglicht Observability die proaktive Leistungskontrolle digitaler Architekturen in Echtzeit, die Beschleunigung von Innovation und Softwareentwicklung sowie die Reduzierung von Arbeitsaufwand und Betriebskosten."
Observability - Tools und Anbieter
Die Anbieterlandschaft ist sehr heterogen, denn die Hersteller von Logging-, Monitoring- und Application-Performance-Management-Software erheben alle den Anspruch, Observability Tools anzubieten. "Vor einem Jahr war Observability noch ein nützlicher Begriff, jetzt entwickelt er sich zu einem Buzzword", kommentiert Gartner-Analyst Josh Chessman.
Die Log-Monitoring-Spezialisten Splunk und Sumo Logic beispielsweise haben ihre Plattformen mit neuen Funktionen (und Akquisitionen) in Richtung End-to-End-Observability weiterentwickelt. Zu den Übernahmen von Splunk gehörten im Jahr 2020 Flowmill - ein Spezialist für Cloud-Netzwerk-Performance-Monitoring - und der User- und Application-Performance-Monitoring-Anbieter Plumbr. Der eine Milliarde Dollar schwere Zukauf des Echtzeit-Monitoring-Unternehmens SignalFx im Jahr 2019 verdeutlicht, dass Splunk zum "One-Stop-Shop" für Observability Tools werden will. Anbieter wie Dynatrace, Datadog, New Relic, SolarWinds, Scalyr (kürzlich vom Sicherheitsspezialisten SentinelOne übernommen) und der Newcomer Honeycomb wollen Observability ebenfalls als Service für Entwickler anbieten.
An der Open-Source-Front hat Grafana Labs eine sehr beliebte Plattform für Monitoring und Observability aufgebaut. Apache Skywalker ist ein weiteres, quelloffenes Observability Tool, das es Systemadministratoren ermöglicht, Probleme zu identifizieren, wichtige Warnmeldungen zu erhalten und den Gesamtzustand des Systems zu überwachen - mit oder ohne Service Mesh. Schnell an Popularität gewonnen hat außerdem die OpenTelemetry-Initiative. Das Sandbox-Projekt, das aus dem Zusammenschluss von OpenCensus und OpenTracing hervorging, gehört zur Cloud Native Computing Foundation (CNCF) und findet als aufstrebender Industriestandard für Observability breite Unterstützung. Für Entwickler, die ihr eigenes Observability Stack aufbauen wollen, können Open-Source-Werkzeuge wie Prometheus (Metriken), Logstash (Logs) und Jaegar (Tracing) die Bausteine liefern, die für die drei Säulen der Observability nötig sind.
Der Heilige Gral für alle Anwender und Anbieter im Bereich Observability besteht darin, so weit zu automatisieren, dass Probleme automatisch erkannt und behoben werden können, bevor sie sich auf die Anwender auswirken. Der Idealzustand wäre eine Software, die Fehler selbständig behebt, bevor die Entwickler diese bemerken.
Eine wachsende Gemeinschaft von Startups und Open-Source-Projekten befasst sich mit den kommenden Observability-Herausforderungen. Zum Beispiel die Open-Source-Plattform Signoz.io (Observability von Kubernetes und Microservices) oder Jeli - ein Projekt, das von einem ehemaligen Netflix-Ingenieur gegründet wurde und sich auf Tools fokussiert, mit denen Entwickler ermitteln können, an welchen Stellen ihr Code nicht zur Infrastruktur passt.
Observability - Kultur nicht vergessen
Dabei sollten Sie sich bewusst machen, dass drei Säulen nicht für Observability ausreichen. Menschen und Prozesse müssen ebenfalls auf gemeinsame Ziele ausgerichtet werden. Observability sollte als Mittel wahrgenommen werden, zuverlässigere Software für Kunden zu entwickeln und zu betreiben. "Der Wert der Observability eines Systems zeigt sich in erster Linie an dem geschäftlichen und organisatorischen Wert, der sich daraus ergibt", schreibt die Softwareentwicklerin Sridharan. "In der Lage zu sein, Produktionsprobleme schnell zu diagnostizieren, sorgt nicht nur für eine gute User Experience, sondern ebnet auch den Weg zur humanen und nachhaltigen Bedienbarkeit von Diensten."
Diese beiden Anreize - bessere Ergebnisse für die Kunden und ein potenziell leichteres Leben für die Software-Ingenieure - sollten ausreichen, um vielen Unternehmen die Nutzung von Observability Tools schmackhaft zu machen.
Dieser Artikel basiert auf einem Beitrag unserer US-Schwesterpublikation Infoworld.com.