Vereinfacht gesagt drückt sich Observability darin aus, wie gut sich ein System anhand seines Outputs auswerten lässt. In der Kontrolltheorie wird Observability als Bestimmungswert dafür definiert, wie präzise der externe Output eines Systems Rückschlüsse auf seinen internen Zustand liefert.
Observability gibt Entwickler:innen einen proaktiven Ansatz zur Analyse und Optimierung ihrer Systeme auf Grundlage der darin generierten Daten an die Hand. Mithilfe von Observability-Plattformen können Engineers Logs, Metriken und Traces an einem zentralen Ort aufbewahren, analysieren und visuell darstellen. Diese Möglichkeit sorgt für eine integrierte Darstellung aller operativen Daten im Softwaresystem und bietet darüber hinaus die Flexibilität, relevante Fragen zu Anwendungen und zur Infrastruktur zu stellen, die ihnen helfen, das Systemverhalten nachzuvollziehen und die richtigen Antworten zur Verbesserung der System-Performance zu erhalten.
Observability: Unverzichtbar für die digitale Wirtschaft
Moderne Softwaresysteme sind komplexe, cloudnative, Open-Source-Microservices, die auf Kubernetes-Clustern und Cloud-Infrastruktur fußen. Ihre Entwicklung und ihre Bereitstellung gehen mit immer höheren Cycle-Frequenzen einher, die von zunehmend verteilten Teams und Komponenten umgesetzt werden.
Unternehmen verlassen sich heute auf DevOps-Teams, Continuous Delivery und agile Entwicklung, was dem gesamten Prozess der Softwarebereitstellung ein noch nie gesehenes Tempo verliehen hat – das aber jedoch umgekehrt teils in der Entstehung befindliche Probleme kaschiert.
So war die Identifikation von Ursachen in Zeiten von Mainframes und statischem Betrieb noch weit weniger anspruchsvoll. Einleitbar war sie ganz einfach über vorkonfigurierte statische Alerts auf Grundlage bekannter Parameter. Das war vollkommen ausreichend, da Fehler zumeist in einer bereits bekannten Symptomatik auftraten.
Im Zuge komplexer werdender Systeme sollten Monitoring-Tools dann neue Klarheit in die Performance von Software bringen, etwa mit Tracing-Möglichkeiten und Zeitreihenanalysen. Ein durchaus skalierbarer Prozess.
Moderne Systeme sind heute von überwältigender Komplexität gekennzeichnet. Fehlern kann eine immense Bandbreite an Ursachen zugrunde liegen, die sich für die Betrachter geradezu in die Unendlichkeit erstrecken: Liegt es an einem Server, der ausgefallen ist? An einem Cloud-Provider? Oder ist gerade neuer Code live geschaltet worden, der sich negativ auf die Endbenutzer-UX auswirkt?
Bei der Arbeit mit diesen komplexen verteilten Systemen ist die Identifikation der problematischen, ursächlichen Lücke in der gesamten Technologiekette ohne Observability nahezu unmöglich. Mit der zunehmenden Verbreitung von Microservices-Architekturen wurden Zuständigkeiten teamübergreifend neu verteilt: Anwendungen haben keine klar definierten Eigentümer mehr und an allen Prozessen sind zahlreiche Teams beteiligt. Daher gilt es jetzt, Anwendungsbereiche im Detail zu erfassen, zu analysieren und enthaltene Fehler zu beheben, ohne die primäre Verantwortung hierfür zu haben. Moderne Tools wie Distributed Tracing werden benötigt, um Anfragen – und Engpässe – über sämtliche Aspekte eines verteilten Systems hinweg zu verfolgen.
Das Business Case für den Einsatz einer Observability-Lösung im Unternehmen ist ganz eindeutig. Im Observability Forecast 2023 wurde festgestellt, dass 40 % der Befragten der Ansicht waren, dass Observability die System-Uptime und die Zuverlässigkeit verbesserte. Eine noch deutlichere Sprache spricht die Tatsache, dass etwas mehr als die Hälfte der Befragten den Mehrwert ihrer Observability-Praxis auf 500.000 $ oder mehr bezifferte. Die Zahlen sind klar: Über alle Befragten hinweg lag der mediane ROI der Observability-Investitionen bei 100 %.
Unterschied zwischen Observability und Monitoring
Um den Unterschied zwischen Observability und Monitoring zu begreifen, ist es wichtig, sich die Lücken herkömmlicher Monitoring-Systeme vor Augen zu führen.
Probleme bei herkömmlichem Monitoring
Herkömmliches Monitoring kann nur „bekannte Unbekannte“ nachvollziehen. Somit stößt es in der komplexen Welt der Microservices und verteilten Systeme schnell an seine Grenzen. Denn Monitoring im traditionellen Sinne ist nur in der Lage, planbar erfassbare Konstellationen, Fragen und Anforderungen zu identifizieren wie „Welchen Throughput hat meine Anwendung?“, „Welche Computing-Ressourcen stehen zur Verfügung?“ oder „Bei Überschreiten eines bestimmtem Fehlerbudgets Alert ausgeben“.
Observability ist das A und O
Sie macht es möglich, auch Muster analysierbar zu machen, die zuvor noch niemand auf dem Schirm hatte – sozusagen die unbekannten Unbekannten.
So erfahren Sie nicht nur, dass etwas im Argen liegt, sondern können auch nachvollziehen, weshalb.
Observability PLUS Monitoring
Eines ist klar: Observability ist kein Ersatz für Monitoring. Vielmehr wird Monitoring zu einer der Techniken, die für das Enablement der höher geschalteten Observability grundlegend sind.
Eine nicht allzu geringe Vergleichbarkeit besteht mit Wortarten: Observability – ein Substantiv – bildet den Ansatz, um ein komplexes System zu verstehen. Monitoring – ein Verb – ist eine Aktion, die bei diesem Ansatz unterstützt.
Elemente optimierter Observability
In modernen Systemen besteht Observability aus vier Grundpfeilern: Metriken, Events, Logs und Traces – kurz als „MELT“ bezeichnet. Das alleine reicht allerdings nicht aus, um die nötigen Einblicke zu erhalten, um ein besseres Software-System zu entwickeln und zu betreiben. Eine Schwerpunktlegung auf die folgenden Aspekte verhilft zu optimaler Nutzung der Observability:
Offene Instrumentierung bezeichnet die Erfassung und Messung von Daten, die eine Anwendung durchlaufen, durch Code in Form von Agents. Das bedeutet auch, dass Telemetriedaten ohne Bindung an anbieterspezifische Entitäten erfasst werden, die diese Daten generieren. Beispiele für Open-Source- bzw. Telemetriedatenquellen sind anbieterunabhängige Observability-Frameworks wie OpenTelemetry und Prometheus.
Korrelation und Kontext
Ohne Gesamtbild keine Gesamtklarheit, die im Zusammenhang mit großen Enterprise-Anwendungen und ihren enormen Mengen an Telemetrie-Rohdaten natürlich umso wichtiger ist. Die Telemetriedaten selbst müssen auf Korrelation und Kontext analysiert werden, damit Engineering-Teams letztlich Muster und Anomalien klar ablesen können.
Programmability
Unternehmen müssen in der Lage sein, Custom-Anwendungen mit Ausrichtung auf ihre spezifischen Geschäftsziele zu entwickeln.
AIOps-Tools
Damit moderne Infrastruktur auch mit Verfügbarkeit glänzt, ist eine beschleunigte Incident Response von tragender Bedeutung. Mit AIOps-Lösungen kommen dabei auf maschinellem Lernen basierende Technologien zum Einsatz, die IT-Abläufe wie Korrelation, Aggregation und Priorisierung für Incident-Daten automatisieren. Unnötige Alerts werden so minimiert, Probleme proaktiv erfasst und im Ergebnis die mittlere Lösungszeit (MTTR) allgemein beschleunigt.
Welchen Wert bietet also ein Observability-Tool?
Besseres Kundenerlebnis
Observability-Tools unterstützen Engineers und Entwickler:innen dabei, trotz der zunehmenden Komplexität digitaler Unternehmen ein besseres Kundenerlebnis zu liefern. Mit Observability lassen sich Telemetriedaten aller Art erfassen, erkunden, korrelieren und Alerts setzen. Darüber hinaus hilft sie, das Verhalten von Benutzer:innen nachzuvollziehen, diesen ein besseres digitales Erlebnis zu liefern, und somit gleichzeitig Konversionsraten, Kundenbindung und Markentreue zu optimieren.
Weniger Downtime und raschere Problembehebung (MTTR)
Optimierungen im operativen Kontext lassen sich leichter erarbeiten und umsetzen, Innovation und Wachstum greifbarer steuern. So ist es etwa möglich, über eine Observability-Plattform Incidents von kritischer Relevanz zu prüfen und sie für die Zukunft präventiv zu adressieren.
Effizientere, innovativere Teams
Wird ein neuer Build live geschaltet, ist die Anwendungs-Performance direkt einsehbar. Ebenso werden nun auch Fehlerspitzen und abrupt hochschnellende Latenzzahlen genau nachvollziehbar. Liegt ein Node-Problem vor? Mit Observability ist feststellbar, an welchem genau.
Neben vielen weiteren Vorteilen hören wir von unseren Kunden besonders häufig, dass sie Folgendes schätzen:
- Eine Single Source of Truth für alle operativen Datenpunkte
- Verifizierbare Uptime und Performance
- Klarheit zu digitalen Performance- und Business-Fluktuationen
- Bessere teamübergreifende Zusammenarbeit bei der Fehlerbehebung
- Förderung einer Innovationskultur
- Skalierbare operative Effizienz zur Gestaltung hochwertiger Software-Erlebnisse und kürzere Release Cycles
- Details zur Entscheidungsfindung und Optimierung von Investitionen
Häufige Gründe für die Einführung von Observability-Lösungen
Im Observability Forecast für 2023 wurde festgestellt, dass fast die Hälfte (49 %) der 1.700 Befragten ein verstärktes Augenmerk auf Sicherheit, Governance, Risiko und Compliance als treibende Kraft für den Bedarf an Observability nennt.
Als weitere entscheidende Schlüsselfaktoren wurden unter anderem die Einbindung von Business-Apps in Workflows (38 %), die Verwendung von KI-Technologien (38 %), die Entwicklung cloudnativer Anwendungsarchitekturen (38 %), die Migration in eine Multi-Cloud-Umgebung (37 %) sowie ein verstärkter Fokus auf Customer Experience Management (35 %) ins Feld geführt.
Im Bericht wurde außerdem festgestellt, dass gerade einmal 1 % der Befragten der Ansicht waren, dass ihre Unternehmen alle 15 Merkmale einer ausgereiften Observability-Praxis einsetzten, wie unter anderem die folgenden Best Practices:
- Software-Deployment unter Einsatz von CI/CD-Praktiken (44 %)
- Infrastruktur, die mithilfe von Automatisierungstools bereitgestellt und orchestriert wird (43 %)
- Möglichkeit, Daten spontan abzufragen (35 %)
- Teilweise Automatisierung der Incident Response (34 %)
- Zusammenführung der Telemetrie (Metrics, Events, Logs und Traces) in einer Ansicht für alle Teams (31 %)
- Mit geschäftlichem Kontext angereicherte Telemetriedaten zur Bezifferung der geschäftlichen Auswirkungen von Events und Incidents (27 %)
- Breiter Zugriff auf Telemetridaten und Visualisierung durch Benutzer:innen (27 %)
- Automatisierte Instrumentierung (25 %)
- Erfassung der Telemetrie über den gesamten Tech-Stack (24 %)
- Erfassung von Daten hoher Kardinalität (21 %)
Die häufigsten Use Cases für Observability
SRE- und IT-Ops-Teams verantworten komplexe Systeme und mit ihnen ein ungemein breites Feld verschiedenster Anwendungen, auf deren Verfügbarkeit sich Benutzer:innen weltweit tagtäglich verlassen. Als Teil des Dev-Lifecycle ist Observability dabei aber für alle Beteiligten wichtiges Thema.
Denn mit ihr lassen sich Health und allgemeine Performance von Software-Systemen in ihrer Gänze nachvollziehen – vom Wann bis hin zum Warum für Fehler aller Art. Durch Analyse von System-Output wie Events, Metrics, Logs und Traces können Entwickler:innen erfassen, wie es um die Performance eines Systems bestellt ist.
Observability in kleinen Teams
Besonders kleine Teams mit knappen Ressourcen können enorm von Observability profitieren.
Bei kleinen, funktionsübergreifenden Teams müssen alle Mitarbeiter:innen mehrere Rollen übernehmen. Gerade in einem solchen Umfeld ist die Möglichkeit, die System-Performance zu überwachen und zu analysieren, von unschätzbarem Wert.
Observability-Tools bieten einen umfassenden Einblick in die Health und das Verhalten von Anwendungen und Infrastruktur, sodass Ihr Team Probleme rasch identifizieren und beheben kann. Das ist besonders relevant, weil kleine Teams in der Regel keine speziell für einzelne Komponenten des Stacks zuständigen Spezialisten haben.
Durch die Automatisierung der Datenerfassung und die Bereitstellung von Einblicken in Echtzeit können Entwickler:innen sich auf andere relevante Dinge konzentrieren und müssen weniger Zeit für das Prüfen und Debugging einzelner Server aufwenden.
Wie das in der Praxis funktioniert sehen Sie am Beispiel eines Kunden, der seine Effizienz mit New Relic erheblich verbessern konnte.
Observability-Tools versetzen kleine Teams in die Lage, ihre Produktivität zu maximieren, die Fehlerbehebung effizienter zu gestalten, und ein zuverlässiges Benutzererlebnis mit kürzeren Antwortzeiten zu bieten, ohne die eigenen begrenzten Ressourcen zu belasten.
Observability und DevOps
Mit dem Einsatz von mehr und mehr Microservice-basierten Strukturen hat auch die Anzahl der Deployments stark zugenommen. Um in diesen Umgebungen noch jeden möglichen Fehlermodus vorhersagen zu können, ändert sich hier viel zu viel dynamisch. Dabei müssen nicht nur der Anwendungs-Code, sondern auch Infrastruktur, Verbraucherverhalten und -nachfrage als kausal berücksichtigt werden.
Observability gibt DevOps-Teams die Flexibilität, die sie zum Testen ihrer Systeme in der Produktion benötigen – und um Problemen nachzugehen, die sie zuvor nicht hätten voraussehen können.
So unterstützt Observability DevOps-Teams konkret:
- Definition klarer Service-Level Objectives (SLOs) und Implementierung von Instrumentierung zur Vorbereitung
- Konzertiertere DevOps mit Team-Dashboards, gemeinsamer Incident Response und Messbarkeit für jede Code-Änderung
- Nahtloses Tracking, Analysen von Anwendungsabhängigkeiten und Infrastruktur-Ressourcen sowie kontinuierliche Optimierung der UX
Observability – kurz gefasst
Observability bietet einen proaktiven Ansatz zur Fehlerbehebung und zur effektiven Systemoptimierung. Alle operativen Daten in einem Software-System sind in Echtzeit und im Kontext aller Abhängigkeiten sichtbar, sodass spontane Anfragen zu Anwendungen und Infrastruktur problemlos gehandhabt werden können.
Heute ist es an der Tagesordnung, dass komplexe Systeme von verteilten Teams entwickelt werden. Da ist Observability nicht wegzudenken. Denn Observability geht weit über herkömmliches Monitoring hinaus. Damit können Engineers nicht nur nachvollziehen, welches Problem vorliegt, sondern auch, was die Ursache ist.
Observability nutzt offene Instrumentierung, Korrelierung, Kontextanalyse, Programmability und AIOps-Tools, um Telemetriedaten sinnvoll zu interpretieren. So wird das Kundenerlebnis verbessert, die Downtime reduziert, Teams werden effizienter und es wird eine Kultur der Innovation über alle Teams hinweg gefördert.
Ihr Start mit Observability: Testen Sie New Relic.
Moderne Observability gibt Entwickler:innen eine datengestützte Methodik für den gesamten Software-Lebenszyklus an die Hand. Dies zentralisiert alle Telemetriedaten von Metrics und Events über Logs bis hin zu Traces in einer zentralen Plattform. Diese Komplettansicht für alle Daten wird kombiniert mit Analyse-Tools für den gesamten Stack. Das Ergebnis: Software, die überzeugende digitale UX möglich macht, und somit auch Innovation sowie geschäftliches Wachstum.
Insights und Best Practices aus der Studie finden Sie im Observability Forecast Report 2023.
Das volle Potenzial der Technologie erschließt sich am besten, wenn man eine moderne Observability-Lösung selbst ausprobiert. Jetzt New Relic One testen
Die in diesem Blog geäußerten Ansichten sind die des Autors und spiegeln nicht unbedingt die Ansichten von New Relic wider. Alle vom Autor angebotenen Lösungen sind umgebungsspezifisch und nicht Teil der kommerziellen Lösungen oder des Supports von New Relic. Bitte besuchen Sie uns exklusiv im Explorers Hub (discuss.newrelic.com) für Fragen und Unterstützung zu diesem Blogbeitrag. Dieser Blog kann Links zu Inhalten auf Websites Dritter enthalten. Durch die Bereitstellung solcher Links übernimmt, garantiert, genehmigt oder billigt New Relic die auf diesen Websites verfügbaren Informationen, Ansichten oder Produkte nicht.