tostphoto - stock.adobe.com

So überwachen Sie containerisierte Microservices

Bevor Sie sich an den Vorteilen von Microservices in Containern erfreuen können, müssen Sie einige Hürden bei der Überwachung dieser komplexen Infrastruktur bewältigen.

Container sind im Trend und immer mehr Unternehmen betreiben Microservices auf ihnen, um die Vorteile der leichtgewichtigen Virtualisierung voll auszunutzen. Das verändert jedoch nicht nur die Art und Weise, wie IT-Teams Anwendungen designen, bereitstellen und verwalten, sondern erfordert einen angepassten Ansatz für deren Überwachung und die zugehörige Berichterstattung.

Anwendungen auf physischen Computern und virtuellen Maschinen waren relativ isolierte Einheiten, besonders im Hinblick auf Monitoring. Jede Anwendung war in sich geschlossen – selbst wenn der Zugriff von Clients kam, während die Anwendung auf Servern lief und ihrerseits von einer Datenbank abhängig war.

Die Virtualisierung schuf mehr Abhängigkeiten entlang des gesamten Anwendungspfads und führe auch dazu, dass Anwendungen miteinander bei der Ressourcennutzung in Konflikt geraten konnten. Sie waren dabei aber immer als klar umrissene Einheiten definierbar, und die Überwachung konnte sich auf die Aktivitäten innerhalb dieser Grenzen konzentrieren.

Microservices sind anders. Statt eine Anwendung als eine einzige Umgebung zu entwickeln, teilten IT-Architekten sie in eine Reihe von lose verbundenen, funktionalen Bausteinen auf, die zusammen eine zusammengesetzte Anwendung bilden. Microservices sollen effizienter sein als herkömmliche Infrastrukturen.

Jeder Microservice läuft auf einem gemeinsam genutzten Satz zugrundliegender Ressourcen – einschließlich Betriebssystemressourcen – und lässt sich in mehreren Anwendungen zeitgleich verwenden. Daher sind weniger Gesamtressourcen erforderlich, um ähnliche oder identische Funktionen auszuführen, und die Aktualisierung eines einzelnen Microservices verbessert mehrere Prozesse gleichzeitig.

Mehr Effizienz, mehr zu überwachen

Da physische und VM-Umgebungen eine spezielle Funktion innerhalb einer Anwendung haben, bildet sich schnell eine erwartete Grundleistung. Jede Abweichung von diesem Niveau lässt sich schnell erkennen, um automatisierte Warnungen an die Verantwortlichen auszulösen. Wenn die dedizierte Funktion beispielsweise 20 Prozent mehr Netzwerkressourcen oder 30 Prozent mehr Speicherressourcen benötigt, deutet dies auf ein Problem hin, das die Administratoren lösen sollten.

Bei der Überwachung von containerisierten Microservices müssen Sie sich jedoch andere Fragen stellen. So müssen IT-Teams beispielsweise die Quelle jeder Baseline-Abweichung ermitteln. Sie könnte auf ein Problem zurückzuführen sein, zum Beispiel auf Ihre neueste Anwendung, die den besagten Microservice nutzt. Oder eine der zahlreichen bestehenden Anwendungen, die dieselbe Funktion nutzen, belastet den Microservice aufgrund eines zyklischen oder unerwarteten Ereignisses.

Hochgradig verteilte Anwendungen erfordern ein Überwachungssystem, das mit größerer Genauigkeit arbeitet und Abhängigkeiten besser versteht – ein System, das die Grundursache eines Problems finden und entscheiden kann, wie es am besten zu lösen ist.

Das ausgewählte System muss jeden Microservice einzeln betrachten, aber auch das Netz komplexer Abhängigkeiten. Das System muss erkennen, wenn neue zusammengesetzte Anwendungen bereitgestellt werden, die den Microservice nutzen, und seine zu erwartende Ressourcennutzung neu daran ausrichten, um Nutzungsmuster zu prognostizieren. Es muss die Ressourcen flexibel anpassen, um den Anforderungen mehrerer Prozesse gerecht zu werden, die jeden Microservice in Anspruch nehmen, und gleichzeitig über die Fähigkeit verfügen, einen bestimmten Microservice zu drosseln oder sogar ganz zu stoppen.

Vergessen Sie nicht die Container

Ihr System sollte berücksichtigen, wie Container funktionieren. Dazu gehört, die richtigen Patches zu implementieren und Aktualisierungen in laufenden Containern durchzuführen. Wenn ein Container ausfällt, muss das Programm automatisch erkennen, warum dies der Fall ist, und den Fehler beheben.

Die Wiederherstellung erfordert einen einfachen Neustart des Containers, manchmal ist sie jedoch komplexer. So ist es in bestimmten Fällen nötig, eine neue Version des Dienstes auf einem anderen Teil der Plattform zu platzieren, um den Ausfall der physischen Ressourcen zu vermeiden, die das ursprüngliche Problem verursacht haben. Das alles sollte dieselbe Überwachungsplattform leisten – mehrere Systeme gleichzeitig könnten einander blockieren oder ins Gehege kommen.

Daneben ist es wichtig, dass die Überwachungssoftware die Abhängigkeiten der Microservices untereinander berücksichtigt und dass sie bei jeder Migration mit den Containern umziehen, um eine genaue und funktionale Betriebsumgebung aufrechtzuerhalten.

Dieses komplexe Netz von Anforderungen benötigt ein voll funktionsfähiges und eng integriertes Container-Microservices-Orchestrierungssystem. In einer DevOps-Umgebung sind diese besser verfügbar. Wichtige Funktionen sind:

  • eine schnelle Erkennung von bestehenden physischen und virtuellen Umgebungen;
  • das Identifizieren und Zuordnen von Abhängigkeiten entlang eines zusammengesetzten Anwendungsworkflows;
  • die Fähigkeit, neue Microservices, Container und zusammengesetzte Anwendungen zu übernehmen, sobald sie bereitgestellt sind;
  • ein hochfunktionales Dashboard mit Analyse- und Berichtsfunktionen;
  • schnelle und effektive Identifizierung der Grundursache eines jeden Problems;
  • die Fähigkeit, den Zustand von Microservices und Containern zu erhalten, und
  • vollständiges Lifecycle-Management, einschließlich Patching der zugrunde liegenden Ressourcen, Container und Microservices.

KI betritt den Schauplatz

Künstliche Intelligenz hilft bei der Verwaltung einer containerisierten Microservices-Umgebung. Die meisten Zuordnungen und Erkenntnisse basieren auf Wissen, das im Laufe der Zeit aufgebaut wurde. Dieser Ansatz versagt in Umgebungen, die sich zu schnell ändern. Folglich benötigen IT-Teams eine intelligente Vorhersage der Gesamtauswirkungen von Änderungen auf die Produktionsumgebung; hier können KI-Tools ansetzen.

Darüber hinaus bieten die um Docker herum aufgebauten Funktionen wie Swarm und Compose Orchestrierungsfunktionen. Kubernetes enthält eine Reihe von Funktionen für diejenigen, die in der Lage sind, das etwas komplexe Tool zu bedienen und zu erlernen. HashiCorp Nomad hat eine breite Palette von Funktionen für die Verwaltung einer Container-Microservices-basierten Umgebung im Angebot.

Microsoft Azure, Amazon Web Services und Google Cloud bieten ihre eigenen Systeme an, die teilweise auf den oben genannten Lösungen aufbauen. Alternativ können die Benutzer ihre eigene Software installieren, was bei der Verwaltung einer hybriden Cloud-Umgebung mehr Sicherheit bietet.

Erfahren Sie mehr über Cloud Computing