Die Gründe, warum ein Service nicht im eigenen Rechenzentrum erbracht, sondern aus der Cloud bezogen wird sind vielfältig. Wirtschaftliche Überlegungen, die Skalierbarkeit oder fehlende personelle Ressourcen können Auslöser für die Migration in die Cloud sein. Lösen sich damit alle Probleme? Wo liegen neuen Herausforderungen? Eine der Herausforderungen ist die Einhaltung von SLAs und das Wissen über den aktuellen Zustand eines Service. Observability ist das neue Buzzword.
Ist ein Service in die Cloud migriert, geht es darum ihn in die Betriebsabläufe zu integrieren und zu überwachen. Oft wird ein Service mit der Verlagerung in die Cloud in Microservices zerlegt und in Containern betrieben. Hier stösst das klassische Monitoring an seine Grenzen. Die Überwachung der Performance eines Systems über einen definierten Zeitraum reicht nicht mehr aus. Mit Observability wird, anhand von externen Ausgabewerten, der interne Zustand eines Systems eingeschätzt. Observability liefert Informationen, welche die Entwicklung von Services, vor allem in DevOps Umgebungen unterstützen und helfen die Einhaltung von SLAs zu überprüfen.
Ein SLA beschreibt die Bedingungen, welche für den betroffenen Service einzuhalten sind. Dies kann z.B. die Verfügbarkeit eines Service (z.B. 99.99%) sein. SLAs sind vielfach Vertragsbestandteil und die Nichteinhaltung würde zum Vertragsbruch und damit verbundenen Strafzahlungen führen. Was nicht gemessen werden kann, kann nicht überwacht und verwaltet werden. Deshalb wird die Erfüllung eines SLAs mit definierten KPIs (Key Performance Indicators) gemessen. In traditionellen Datacenter Umgebungen sind entsprechende Prozesse und Systeme etabliert, um die Daten zu sammeln und auszuwerten, die als Basis für die KPIs dienen. Das Monitoring ist fester Bestandteil des Betriebes einer klassischen Datacenter Umgebung. Bei verteilten Systemen kommt nun Observability hinzu, um jederzeit den Status eines Service definieren zu können.
Da Services in hybriden oder reinen Cloud Umgebungen oft auf der Basis vieler einzelner Microservices dargestellt werden, reicht es nicht mehr aus, CPU- und Speicherauslastung einzelner Systeme per Monitoring zu überwachen. Administratoren, Entwickler und Analysten benötigen einen systemübergreifenden, ganzheitlichen Einblick in Funktion und Status der auf den verteilt arbeitenden Systemen realisierten Anwendungen. Die vernetzten Systeme verfügen über eine Vielzahl an Verbindungen, die unterschiedliche Bedeutung für die Gesamtfunktion der Anwendungen haben. Diese Interconnections gilt es im Blick zu behalten. Observability bietet entsprechende Lösungen und ermöglicht eine umfassende Kontrolle der komplexen Systeme.
Um Erkenntnisse über den Zustand eines Gesamtsystems gewinnen zu können, benötigt Observability
- Logging Daten: In Textform vorliegende Aufzeichnungen eines Events
- Metriken: Zahlenwerte, welche über einen bestimmten Zeitraum gemessen werden
- Traces: Darstellung des vollständigen Weges einer Anfrage durch ein verteiltes System
von den Einzelnen Systemen und Anwendungen. Eine Observability Lösung diese Daten erfasst, sammelt und korreliert diese Daten und wertet sie aus. Die Analyseergebnisse werden grafisch in einfachen Dashboards dargestellt. Für die Analyse der Daten können Verfahren der künstlichen Intelligenz (KI) und des maschinellen Lernens (ML) eingesetzt werden. In weiter entwickelten Systemen werden identifizierte Probleme automatisch behoben.
Observability ist somit ein gutes Beispiel, wie die Verschiebung von Services in die Cloud eine IT-Abteilung vor neue Herausforderungen stellen kann. Monitoring allein reicht plötzlich nicht mehr aus. Denn Monitoring überwacht lediglich den allgemeinen Zustand eines Service. Observability liefert zusätzlich einen Einblick in den allgemeinen Zustand eines dynamischen und verteilten Systems. Informationen, welche für Entwickler wie auch für Betreiber moderner IT-Umgebungen unerlässlich sind.