21. Mai 2019

Die Säulen der effektiven Überwachung in einer Cloud Native Welt (Teil 1)

Die Säulen der effektiven Überwachung in einer Cloud Native Welt (Teil 1) (sergeymansurov / shutterstock.com)

Der Designansatz in der Anwendungsentwicklung hin zu Microservices hat den Betrieb von Anwendungen grundlegend revolutioniert – im Bereich der Softwareerstellung ebenso wie im Bereich der Service Delivery. Und auch der Wechsel von monolithischen Anwendungen, die immer nur en bloc in Betrieb genommen oder aktualisiert werden konnten, hin zu dynamischen Architekturen basierend auf Microservices (Cloud Native Ansatz) ist Teil dieser Revolution. Dass von einem quartalsweisen Update-Zyklus zu mehrfach täglich durchgeführten Updates gewechselt wurde, ist nur eine der Folgen dieses Wandels. Die Aufteilung in x Micro-Anwendungen brachte dabei zusätzlich ganz neue Anforderungen für den Betrieb, insbesondere für das Monitoring und Logging mit sich.

CANCOM unterstützt seine Kunden beim Betrieb von hochverfügbaren Applikationen in Microservice Umgebungen auf Basis von Kubernetes® und übernimmt in diesem Rahmen die vollumfängliche Wartung der Container Plattform.

Keine traditionelle Überwachung in der Kubernetes® Welt

Durch den Einsatz von Kubernetes® und die damit verbundenen Autohealing- und Autoscaling-Eigenschaften sind Anwendungen im Allgemeinen stabiler und hochverfügbarer geworden. Im Gegenzug werden diese Architekturen mit zunehmender Komplexität unüberschaubarer, was auch für mögliche Fehlermodi gilt. Vor diesem Hintergrund ist es wichtiger denn je, eine effektive Überwachungsstrategie zu haben. In einer Kubernetes® Welt kann die traditionelle Überwachung, an die wir uns gewöhnt haben, nämlich einfach nicht mehr funktionieren. Eine umfängliche Überwachung setzt daher mindestens auf die folgenden Säulen:

  • Black Box Monitoring
  • White Box Monitoring (Metrikerfassung)
  • Zentralisierte Protokollierung
  • Request Tracing (Anfrageverfolgung)

Nicht immer werden alle Säulen benötigt. Jede für sich erlaubt eine einzigartige und sich ergänzende Ebene der Einsicht. Die besten Überwachungsstrategien basieren auf einer Kombination von mehreren Ansätzen, um einen umfassenden Einblick in die Anwendungen zu erhalten.

Black Box Monitoring: Externe Abfrage sorgt für hohe Transparenz

Es gibt eine breite Kategorie von Monitoring, die oft als Black Box Monitoring bezeichnet wird. Ein Beispiel dafür ist der typische WebCheck, der mit oder ohne Login die Verfügbarkeit einer Webanwendung prüft und bestenfalls einen ContentCheck ausführt. Dies erlaubt einen ersten effektiven Blick aus Sicht des Endbenutzers auf die Verfügbarkeit einer Anwendung. Auch können erste Performance Werte wie Latenzen, Übertragungsraten und Responsiveness gemessen werden.

Um eine komplexe Microservice Anwendung weitergehend zu verstehen, reicht dieser Ansatz aber nicht aus. Notwendig sind Metriken, die sich direkt auf einen Microservice beziehen. Nur so erfährt man mehr über den Zustand der Anwendung. Hier kommen Tools wie das von CANCOM als Service bereitgestellte Monitoring zum Einsatz.

White Box Monitoring: Der Anwendung unter die Haube geschaut

Im Gegensatz zum Black Box Monitoring werden viele der neueren Ansätze als White Box Monitoring bezeichnet. Es beinhaltet die Überwachung von innen heraus. Schon während der Softwareentwicklung werden für eine Anwendung Metriken definiert, die genaue Auskunft über die Verfügbarkeit und die Performance geben. So werden Engpässe eines einzelnen Moduls erkannt, bevor es sich auf die Gesamtanwendung auswirken kann. Im Kubernetes® Umfeld werden diese Metriken auch zur Autoskalierung verwendet werden oder als Basis für ein Performance Debugging der Anwendung dienen.

Open Source Tools wie Prometheus haben diesen Raum verändert. Im Kern handelt es sich um ein Überwachungs- und Alarmierungs-Toolkit, das Metriken mit einer mehrdimensionalen Zeitreihendatenbank speichert. Jede Zeitreihe wird durch ein Schlüssel-Wert-Paar identifiziert und verfolgt den Wert dieser Metrik im Zeitverlauf. Die Einfachheit dieses Modells ermöglicht die effiziente Erfassung einer Vielzahl von Kennzahlen.

Auch schließt Prometheus zusammen mit der automatisierten Integration in Kubernetes® die Lücke, wie immer neue PODS und Metriken automatisch aufgenommen werden können. Denn bei einer so hohen Änderungsrate kann dies nicht mehr manuell erfolgen.

Prometheus ist für diese Anforderung heute der Standard im Open Source Umfeld. Die erfassten Metriken liegen in der Regel weit über den üblichen Kennzahlen zur Ressourcennutzung, die wir traditionell bei der Überwachung berücksichtigen. Als Beispiel dafür, wie dies aussehen könnte, zeigt das beliebte Kubernetes® nginx ingress Projekt Metriken wie Upstream Latenz, Prozessverbindungen oder Anforderungsdauer und -größe. Dadurch, dass Prometheus de facto Standard ist, bietet es eine breite und vollständige Basis für Standard Monitoring einer Kubernetes® Umgebung. Darüber hinaus ist die Erweiterung um benutzerdefinierte Metriken für Ihre eigene Anwendung ein Kinderspiel.

Lesen Sie im zweiten Teil, wie die anderen beiden Säulen der effektiven Überwachung – Zentralisierte Protokollierung und Request Tracing – funktionieren und weshalb auch sie, genau wie Black Box und White Box Monitoring, für die Überwachung enorme Vorteile bieten.

(Volker Müller)

Keine Kommentare


Dein Kommentar:

* Pflichtfelder

Time limit is exhausted. Please reload CAPTCHA.