Observability ist die Fähigkeit, den internen Zustand eines komplexen Systems allein auf der Grundlage der Kenntnis seiner externen Ausgaben, insbesondere seiner Telemetrie, zu verstehen.
Observability spielt eine entscheidende Rolle bei der Aufrechterhaltung der Verfügbarkeit, Leistung und Sicherheit moderner Softwaresysteme und Cloud-Computing-Umgebungen.
Der Begriff „Observability“ stammt aus der Kontrolltheorie, einer technischen Theorie, die sich mit der automatischen Steuerung dynamischer Systeme befasst, z. B. der Regulierung des Wasserflusses durch ein Rohr auf der Grundlage der Rückmeldung eines Durchflusskontrollsystems.
Observability bietet tiefe Einblicke in moderne, verteilte Tech-Stacks für eine automatisierte, Echtzeit-Problemerkennung und -lösung. Je besser ein System beobachtbar ist, desto schneller und genauer können IT-Teams von einem identifizierten Leistungsproblem zu dessen Ursache gelangen – und das ohne zusätzliche Tests oder Codierung.
Im IT-Betrieb (ITOps) und Cloud Computing erfordert die Observability Softwaretools, die kontinuierliche Ströme von Leistungsdaten aus Anwendungen sowie der Hardware und Netzwerke, auf denen sie ausgeführt werden, zusammenfassen, korrelieren und analysieren. Teams können die Daten dann zur Überwachung, Fehlerbehebung und Debugging von Anwendungen und Netzwerken nutzen, um letztendlich die Customer Experience zu optimieren und Service Level Agreements (SLAs) sowie andere geschäftliche Anforderungen zu erfüllen.
Observability wird oft mit Application Performance Monitoring und Network Performance Management (NPM) verwechselt. Observability-Tools sind jedoch eine natürliche Weiterentwicklung der Anwendungsleistungsüberwachung und NPM-Datenerfassungsmethoden. Sie sind besser geeignet, um der zunehmend verteilten und dynamischen Natur von cloudnativen Anwendungsbereitstellungen gerecht zu werden.
Observability ersetzt andere Überwachungsansätze nicht, sondern verbessert und erweitert sie.
Observability-Plattformen ermitteln und erfassen kontinuierlich Leistungstelemetrie, indem sie sich mit in Anwendungs- und Infrastrukturkomponenten eingebauten Instrumenten integrieren und diese Komponenten mit Funktionen und Instrumenten versehen.
Observability konzentriert sich auf drei Haupttelemetrietypen:
Protokolle (Logs) sind granulare, vollständige und unveränderliche Aufzeichnungen von Anwendungsereignissen mit Zeitstempel. Protokolle können unter anderem verwendet werden, um eine detailgetreue, millisekundengenaue Aufzeichnung jedes Ereignisses zu erstellen, komplett mit dem umgebenden Kontext. Entwickler verwenden Protokolle zur Fehlerbehebung und zum Debugging.
Traces zeichnen die gesamte „Journey“ jeder Benutzeranfrage auf, von der Benutzeroberfläche oder mobilen Anwendung über die gesamte Architektur bis hin zum Benutzer.
Metriken (manchmal auch Zeitreihenmetriken genannt) sind grundlegende Messgrößen für den Zustand von Anwendungen und Systemen im Zeitverlauf. Metriken werden beispielsweise verwendet, um zu messen, wie viel Speicher oder CPU-Kapazität eine Anwendung in fünf Minuten verbraucht oder wie viel Latenzzeit eine Anwendung während einer Nutzungsspitze aufweist.
Observability-Tools erstellen auch Abhängigkeitskarten, aus denen hervorgeht, wie jede Anwendungskomponente von anderen Komponenten, Anwendungen und IT-Ressourcen abhängt.
Nach der Erfassung der Telemetriedaten korreliert die Plattform die Daten in Echtzeit und liefert DevOps-Teams, Site Reliability Engineering (SRE)-Teams und IT-Mitarbeitern umfassende Kontextinformationen. Teams verstehen das „Was, Wo und Warum“ aller Ereignisse, die auf ein Problem mit der Anwendungsleistung hinweisen, dieses verursachen oder beheben können.
Viele Observability-Plattformen erkennen auch automatisch neue Telemetriequellen, sobald diese im System auftauchen, beispielsweise wenn eine neue Anwendungsprogrammierschnittstelle (API) zum Netzwerk hinzugefügt wird. Zu den führenden Plattformen gehören auch Funktionen für künstliche Intelligenz für den Betrieb (AIOps), die Signale, die auf echte Probleme hinweisen, von „Rauschen“ unterscheiden können, also Daten, die keinen Bezug zu aktuellen oder potenziellen Problemen haben.
Observability-Tools automatisieren in der Regel drei Schlüsselprozesse, um Unternehmen dabei zu helfen, ihren Tech-Stack klarer zu verstehen:
Durch die kontinuierliche Datenerfassung wird Observability ermöglicht. Observability-Tools erleichtern die Erfassung und Aggregation von CPU-Speicherdaten, App-Protokollen, Hochverfügbarkeitszahlen, durchschnittlicher Latenz und anderen Metriken sowie den Zugriff darauf.
Teams müssen App- und Systemdaten relativ einfach einsehen können. Daher richten Observability-Tools Dashboards ein, um den Zustand der Anwendung, alle zugehörigen Dienste und alle relevanten Geschäftsziele zu überwachen.
Überwachungsfunktionen tragen auch dazu bei, die Zusammenarbeit von Diensten untereinander zu verdeutlichen, indem sie Tools wie Abhängigkeitsgraphen verwenden und sich in die Gesamtarchitektur einfügen.
Bisher wurden Datenanalyseaufgaben mithilfe von Application Performance Management (APM)-Tools durchgeführt, die die aus den einzelnen Datenquellen gesammelten Daten aggregierten, um übersichtliche Berichte, Dashboards und Visualisierungen zu erstellen, ähnlich wie die Überwachungsfunktionen in Observability-Software.
Da moderne Architekturen häufig auf containerisierten Microservices basieren, lagern Observability-Tools grundlegende Telemetriedaten oft an die Kubernetes-Ebene aus, sodass sich IT-Teams bei der Datenanalyse auf Service Level Objectives (SLOs) und Service Level Indicators (SLIs) konzentrieren können. Observability-Software sammelt Daten aus mehreren Quellen, überprüft sie auf ihre Relevanz und liefert den Entwicklungsteams umsetzbare Erkenntnisse.
Es ist erwähnenswert, dass die Automatisierung von Observability-Software über diese drei Prozesse hinausgehen. Observability-Tools können auch Debugging-Prozesse, Instrumentierung und die Aktualisierung von Monitoring-Dashboards automatisieren, wenn neue Dienste zum Netzwerk hinzugefügt werden. Sie verwalten die Agentenabwicklung, bei der Agenten kleine Softwarekomponenten sind, die in einem Ökosystem eingesetzt werden, um kontinuierlich Telemetriedaten zu erfassen, und vieles mehr.
In den letzten Jahrzehnten haben sich IT-Teams hauptsächlich auf APM-Tools verlassen, um Anwendungen zu überwachen und Fehler zu beheben. APM, das unter anderem die Überwachung der Anwendungsleistung umfasst, sammelt regelmäßig Anwendungs- und Systemdaten, die zur Identifizierung von Problemen mit der Anwendungsleistung beitragen können.
APM analysiert die Telemetriedaten anhand von Leistungsindikatoren (KPIs) und fasst die Ergebnisse in übersichtlichen Dashboards zusammen, die den Betrieb und die Support-Teams auf abnormale Zustände hinweisen, die zu Systemleistungsproblemen führen oder führen könnten.
APM-Tools sind effektiv für die Überwachung und Fehlerbehebung von monolithischen Apps und traditionellen, verteilten Anwendungen. In diesen Konfigurationen erfolgen neue Code-Releases in regelmäßigen Abständen, und Workflows und Abhängigkeiten zwischen Anwendungskomponenten, Servern und zugehörigen Ressourcen sind bekannt oder relativ einfach zu verfolgen.
Heutzutage setzen Unternehmen jedoch auf die digitale Transformation. Sie gehen schnell zu modernen Entwicklungspraktiken über, wie flexibel Entwicklung, Continuous Integration und Continuous Bereitstellung (CI/CD), DevOps und übernehmen cloudnativ Technologien wie Docker-Container und Serverlos Funktionen.
Moderne Anwendungen basieren häufig auf Mikroservice-Architekturen, die oft in containerisierten Kubernetes-Clustern ausgeführt werden. Als Ergebnis können Entwickler mehr Dienste schneller als je zuvor auf den Markt bringen.
Dabei setzen sie jedoch in der gesamten Architektur neue Anwendungskomponenten ein. Diese Komponenten arbeiten in unterschiedlichen Sprachen und Datenformaten und funktionieren für unterschiedlich lange Zeiträume, manchmal nur für Sekunden oder Sekundenbruchteile, wie bei serverlosen Funktionen. Das bedeutet mehrere Laufzeiten, wobei jede Laufzeit Protokolle in verschiedenen Orten innerhalb der Architektur ausgibt.
Die einmal pro Minute durchgeführte Datenerfassung und die herkömmlichen Überwachungsprotokolle von APM können mit einer so immensen Datenmenge nicht Schritt halten.
Stattdessen benötigen Unternehmen die feinkörnige, hochvolumige, automatisierte Telemetrie und die Generierung von Erkenntnissen in Echtzeit, die Observability-Tools bieten. Diese Tools ermöglichen es Entwicklungsteams, in Echtzeit kontextreiche, vollständig korrelierte Aufzeichnungen jeder Anwendung, Benutzeranfrage und Datentransaktion im Netzwerk zu erstellen und zu speichern.
Das Thema Observability ist zu einem zentralen Thema moderner DevOps geworden, das die Bereitstellung von Apps und Diensten beschleunigt, indem die Arbeit von Softwareentwicklungs- und IT-Betriebsteams kombiniert und automatisiert wird. Eine DevOps-Methodik nutzt gemeinsame Tools und Verfahren sowie kleinere, häufige Updates, um die Softwareentwicklung schneller, effizienter und zuverlässiger zu gestalten.
Eine effektive DevOps-Strategie erfordert, dass Teams potenzielle Leistungsengpässe und Probleme in der Endbenutzererfahrung identifizieren und mithilfe von Observability-Tools beheben. Mit einer Observability-Plattform können DevOps-Teams anhand relevanter Datenanalysen schnell problematische Komponenten und Ereignisse identifizieren.
Observability-Plattformen unterstützen DevOps-Teams außerdem mit Tools und Observability-Engineering-Methoden, um ihre Systeme besser zu verstehen. Zu diesen Tools und Methoden gehören die Vorfallanalyse, um Ursachen für unerwartete Systemereignisse zu finden und die Reaktion auf Vorfälle in Zukunft zu verbessern, Feature Flagging, mit dem Teams App-Funktionen aktivieren und deaktivieren können, ohne den Quellcode zu ändern, sowie die kontinuierliche Überprüfung, bei der maschinelles Lernen (ML) zur Analyse historischer Bereitstellungsdaten und zur Festlegung einer Leistungsbasislinie verwendet wird.
Hochwertige Einblicke in die Oberservability von Daten bedeuten schnelleres und besseres Feedback in den Softwareentwicklungs- und Testprozessen sowie eine effizientere CI/CD-Pipeline.
Künstliche Intelligenz verändert die Observability und integriert fortschrittliche Analysen, Automatisierung und Vorhersagefunktionen in den IT-Betrieb. Traditionelle Observability bietet einen detaillierten Einblick in die Systeme. Die KI verbessert diese Transparenz jedoch durch die intelligente Analyse von Daten, um Probleme vorherzusehen und zu verhindern, bevor sie auftreten.
KI-gestützte Observability ermöglicht es Entwicklungsteams, die IT-Infrastruktur von Unternehmen proaktiv zu schützen, anstatt Probleme zu lösen, sobald sie auftreten. Mithilfe von ML-Algorithmen können Observability-Tools umfangreiche Datenströme analysieren, um Muster, Trends und Anomalien zu finden und Erkenntnisse zu gewinnen, die ein Mensch übersehen könnte.
Zu den KI-gestützten Observability-Tools und -Funktionen gehören:
Observability-Tools können KI-Technologien nutzen, um die menschliche Entscheidungsfindung im Sanierungsprozess zu emulieren und zu automatisieren.
Nehmen wir an, ein Team verwendet eine DEM-Plattform (Digital Experience Management). Derzeit verwenden diese Plattformen eine Reihe von Sanierungsskripten, mit denen IT-Mitarbeiter Fixes mit einem Klick durchführen und den Benutzern Self-Service vorschlagen können.
Mithilfe einer kontinuierlichen Überwachung können KI-basierte Observability-Funktionen eingehende Daten analysieren, um Anomalien und Aktivitäten zu finden, die festgelegte Schwellenwerte überschreiten. Die Observability-Plattform kann dann eine Reihe von Korrekturmaßnahmen durchführen, ähnlich wie Remediation-Skripte, um das Problem zu beheben.
Wenn die Software das Problem aus irgendeinem Grund nicht beheben kann, wird automatisch ein Ticket mit allen relevanten Details erstellt. Zu diesen Details gehören der Ort des Problems, seine Prioritätsstufe und alle relevanten Erkenntnisse aus dem KI-Modell in der Problemmanagement-Plattform des IT-Teams.
Dieser Prozess ermöglicht es IT-Mitarbeitern, sich ausschließlich auf die Probleme zu konzentrieren, die die Software nicht bewältigen kann, und Probleme mit der Systemleistung so schnell wie möglich zu beheben.
LLMs sind hervorragend geeignet, um Muster in riesigen Mengen sich wiederholender Textdaten zu erkennen, die den Log- und Telemetriedaten in komplexen, dynamischen Systemen sehr ähnlich sind. Und die heutigen LLMs können für bestimmte IT-Prozesse trainiert werden oder durch Prompt-Engineering-Protokolle gesteuert werden, um Informationen und Erkenntnisse mithilfe menschlicher Sprachsyntax und Semantik zurückzugeben.
Fortschritte bei LLMs können Anwendern von Observability-Tools dabei helfen, Abfragen in natürlicher Sprache zu schreiben und zu untersuchen, wodurch komplexe Abfragesprachen überflüssig werden. Diese Entwicklung kann Nutzern aller Kompetenzstufen, insbesondere Personen mit begrenzten technischen Kenntnissen, erhebliche Vorteile bringen und ihnen dabei helfen, komplexe Daten effektiver zu verwalten.
LLMs sind noch nicht für Echtzeitanalysen und Fehlerbehebungen geeignet, da ihnen oft die Präzision fehlt, den vollständigen Kontext zu erfassen. Sie verfügen jedoch über erweiterte Textverarbeitungsfunktionen, um die Datenuntersuchung in Observability-Plattformen zu vereinfachen.
Durch leichter zugängliche Erkenntnisse lassen sich das Systemverhalten besser nachvollziehen und IT-Probleme und Fehlerquellen besser und umfassender verstehen.
Kausale KI ist ein Teilgebiet der KI, das sich darauf konzentriert, kausale Zusammenhänge zwischen Variablen zu klären und zu modellieren, anstatt lediglich Korrelationen zu identifizieren.
Traditionelle KI-Techniken, z. B. ML, stützen sich oft auf statistische Korrelation, um Vorhersagen zu treffen. Kausale KI zielt stattdessen darauf ab, die zugrunde liegenden Mechanismen zu finden, die Korrelationen erzeugen, um die Vorhersagekraft zu verbessern und eine gezieltere Entscheidungsfindung zu ermöglichen.
Die Integration von kausaler KI in Observability-Systeme kann die Einblicke von Unternehmen in ihre IT-Umgebungen erheblich verbessern.
Mit kausaler KI können IT-Teams die Beziehungen und Abhängigkeiten zwischen Infrastrukturkomponenten analysieren und so die Ursachen von Betriebs- und Qualitätsproblemen besser lokalisieren. Es ermöglicht Entwicklern, nicht nur das „Wann und Wo“ von Systemproblemen zu verstehen, sondern auch das „Warum“, wodurch Teams Probleme schneller lösen können und die Zuverlässigkeit des Systems erhöht wird.
Full-Stack-Observability kann dazu führen, dass ein System leichter zu verstehen und zu überwachen ist, sich leichter und sicherer mit neuem Code aktualisieren und leichter reparieren lässt. Es hilft IT-Teams dabei:
Eine wesentliche Einschränkung von Überwachungstools besteht darin, dass sie nur auf „bekannte Unbekannte“ achten – außergewöhnliche Bedingungen, auf die Sie bereits achten müssen. Observability-Tools entdecken Zustände, die Teams möglicherweise nie bemerken oder suchen würden, und verfolgen dann deren Zusammenhang mit bestimmten Leistungsproblemen. Diese Erkenntnis liefert einen besseren Kontext, um die Ursachen zu identifizieren und die Lösung zu beschleunigen.
Observability integriert die Überwachung in die frühen Phasen des Softwareentwicklungsprozesses. Diese Integration hilft DevOps-Teams dabei, Probleme in neuem Code zu erkennen und zu beheben, bevor sie sich auf die Customer Experience oder SLAs auswirken.
Mit Observability-Tools können Entwickler eine Vielzahl von Telemetriedaten erfassen, analysieren, korrelieren und aufdecken, um das Nutzerverhalten besser zu verstehen und die Nutzererfahrung zu optimieren.
Observability-Tools ermöglichen es Teams, beispielsweise die Instrumentierung und Datenaggregation in einer Cluster-Konfiguration festzulegen und Telemetriedaten vom Hoch- bis zum Herunterfahren zu erfassen.
IT-Teams können Observability mit AIOps, ML und Automatisierungsfunktionen kombinieren, um Probleme auf der Grundlage von Systemausgaben vorherzusagen und ohne menschliches Eingreifen zu beheben.
Observability-Lösungen beschleunigen die Prozesse zur Erkennung und Behebung von Problemen. Diese Beschleunigung hilft Teams dabei, die Verfügbarkeit von Anwendungen hoch, die durchschnittliche Reparaturzeit (MTTR) niedrig und Ausfälle auf ein Minimum zu reduzieren.
Observability-Lösungen verfolgen einen ganzheitlichen, cloudnativen Ansatz für die Protokollierung und Überwachung von Anwendungen. Sie ermöglichen eine nahtlose Prozessautomatisierung und arbeiten mit historischen Kontextdaten, um Teams dabei zu unterstützen, Unternehmensanwendungen in einer Vielzahl von Anwendungsfällen besser zu optimieren.