DevOps trifft Performance-Management Microservice-Architekturen per Monitoring im Blick behalten

Autor / Redakteur: Thomas Joos / Stephan Augsten

Wenn Software in Microservices aufgesplittet wird, wollen die unabhängigen Prozesse auch überwacht sein. Es gilt, das Monitoring im Netzwerk auf die Dienste und deren Basis – zum Beispiel die einzelnen Container – auszuweiten.

Anbieter zum Thema

In Microservices aufgeteilte Anwendungen machen die Fehlererkennung nicht gerade einfacher.
In Microservices aufgeteilte Anwendungen machen die Fehlererkennung nicht gerade einfacher.
(Bild gemeinfrei: reidy68 - Pixabay.com / Pixabay )

Viele Unternehmen spalten ihre klassischen, monolithischen Anwendungen in Microservices auf. Microservices werden auch beim Einsetzen von DevOps häufig dazu verwendet, um Serverdienste aufzuschlüsseln und optimal bereitstellen zu können.

Unweigerlich werden dadurch allerdings zahlreiche Objekte im Netzwerk geschaffen, die das Back-End und das Front-End des Dienstes darstellen. Diese Objekte, beispielsweise einzelne Container, sollten überwacht werden. Dabei geht es nicht nur um Stabilität, sondern auch um die Leistung des Dienstes und seiner dazugehörigen Microservices.

Gartner gibt Empfehlungen zur Überwachung von Microservices mit Application Performance Monitor. Auch wenn diese Empfehlungen bereits einige Jahre alt sind, haben sie immer noch eine gewisse Bedeutung. Es lohnt sich also, die Empfehlungen im Auge zu behalten.

Monolithische Umgebungen lassen sich einfacher überwachen

Die Überwachung einer Microservices-Infrastruktur ist wesentlich komplizierter als die herkömmliche Überwachung von Netzwerken. Das liegt vor allem daran, dass es sehr viel mehr zu überwachende Objekte gibt, die sehr eng miteinander verwoben sind.

Werden beispielweise Updates in die Umgebung eingespielt, besteht die Gefahr, dass ein Update negative Auswirkungen hat, die vorher gar nicht in Erwägung gezogen wurden. Hier können herkömmliche Überwachungslösungen kaum helfen. Wenn neuer Code negative Auswirkung auf die Umgebung hat, muss die Überwachungslösung das erkennen.

Generell ist es sogar sinnvoll, dass die Monitoring-Lösung Änderungen erkennt und deren Auswirkungen gezielt analysieren kann. Denn während herkömmliche, monolithische Anwendungen in den meisten Fällen aus wenigen Objekten bestehen, ist eine Microservices-Infrastruktur oft sehr heterogen und komplex aufgebaut. Eine optimale Lösung muss also nicht nur die einzelnen Microservices sowie deren Schnittstellen und die verwendeten Daten überwachen, sondern auch das System komplett verstehen und Zusammenhänge erkennen.

Leistungsprobleme kosten Unternehmen Geld

Die Leistung spielt vor allem bei Apps oder Web-Anwendungen eine wichtige Rolle. Betreiben Unternehmen einen Online Shop, brechen Kunden in vielen Fällen den Kauf ab, sobald die Leistung nicht stimmt. Wird der Webshop als Microservices-Infrastruktur betrieben, kümmert sich ein Dienst eventuell um die Suche nach Produkten auf der Webseite, ein anderer Dienst verwaltet den Warenkorb, und ein Dritter schließt den Bestellvorgang ab.

Eine gute Monitoring-Lösung muss diese Dienste automatisch erkennen und deren Leistung überwachen. Wenn Kunden Produkte nicht schnell genug finden, in den Warenkorb packen und bezahlen können, werden sie wahrscheinlich den Webshop wieder verlassen und im schlimmsten Fall nicht wiederkehren. Mangelnde Leistung in solchen Systemen kosten also bares Geld. Aus diesem Grund sollten Unternehmen die Überwachung nicht vernachlässigen.

Um das Monitoring möglichst effizient zu gestalten, sollte eine Ende-zu-Ende-Überwachung erfolgen. Das Back-End der Umgebung muss genauso effizient und stabil zur Verfügung stehen wie das Front-End. Alle beteiligten Komponenten müssen transparent überwachbar sein, um Probleme in der Leistung und Stabilität zu erkennen.

DevOps spielt beim Monitoring eine wichtige Rolle

Entwickler und Administratoren sollten im Rahmen der Überwachung zusammenarbeiten, was in DevOps-Umgebungen ohnehin zum Standard gehören sollte. Der Vorteil dabei ist, dass Anwender und Kunden keine negativen Auswirkungen zu spüren bekommen, wenn etwas in der Umgebung nicht so funktioniert, wie es soll.

In Microservices-Umgebungen spielt die Überwachung vor allem dann eine Rolle, wenn große Datenmengen von verschiedenen Diensten benötigt werden und die Dienste aufeinander aufbauen. Da das bei fast allen Microservices-Umgebungen der Fall ist, besteht die Gefahr, dass Daten von einem Dienst blockiert werden, während ein anderer Dienst die Daten ebenfalls benötigt, oder dass Dienste auf die Verarbeitung von Daten anderer Dienste warten müssen.

Das ist einer der Gründe, warum Entwickler und Administratoren zusammenarbeiten sollten. Gemeinsam können sie sicherstellen, dass die notwendigen Schnittstellen im Unternehmen sowie die dazugehörigen Dienste effizient überwacht werden.

Während in monolithischen Anwendungen nur einzelner Stack überwacht werden muss, um Benutzeraktionen zu messen, reicht das in Microservices-Infrastrukturen nicht aus. Hier müssen mehrere Schnittstellen und deren Interaktion überwacht werden. Durch das Zusammenfassen der einzelnen Schnittstellen kann eine Überwachungslösung dann feststellen, warum der Benutzerzugriff zu langsam ist und welcher Bereich und Microservice dafür verantwortlich ist.

Visualisierung der Umgebung

Gute Lösungen zur Überwachung einer Microservices-Infrastruktur sind in der Lage, die Umgebung zu visualisieren sowie die Abhängigkeiten der Dienste zu erkennen. Über die Visualisierung der Umgebung sollte in der Überwachungslösung außerdem die Möglichkeit bestehen, direkt in den Problembereich zu zoomen. Dadurch muss das Problem sofort erkennbar sein – unabhängig davon, wie tief es im System verankert ist.

Benachrichtigungen optimal konfigurieren

Monitoring-Lösungen können verantwortliche Entwickler oder Administratoren über Probleme in der Umgebung informieren. Allerdings sollten die Benachrichtigungen möglichst effizient gestaltet werden. Es lohnt sich nicht, wegen jedem gefundenen Fehler oder ausgelasteter CPU in einem Cluster Administratoren zu benachrichtigen.

Bei einer zu hohen Anzahl von Benachrichtigungen gehen wichtige Informationen unter Umständen unter. Daher sollten nur die Benachrichtigungen aktiviert werden, die für Administratoren und Entwickler relevant sind. Andere Informationen sollten gebündelt gesammelt und in Ruhe analysiert werden.

(ID:44625068)