Mehr Flexibilität und Skalierbarkeit durch Microservices
In Microservices-Architekturen prägen lose miteinander gekoppelte Codeblöcke das Gesamtbild einer Anwendung.
Weitere Informationen zum Thema Microservices finden Sie auf der Website der COMPUTERWOCHE: Legacy-Systeme modernisieren www.cowo.de/3544684 Microservices unter Beobachtung www.cowo.de/3331618 Microservices: SOA reloaded? www.cowo.de/3329840
Zusätzlich ist es notwendig, die Verbindungen der einzelnen Instanzen untereinander und deren allgemeinen Zustand zu überwachen. Auch hier gilt wieder: Im Idealfall überwacht man diese Metriken im direkten Zusammenhang. So ist es im Ernstfall leichter, den Auslöser eines Problems zu identifizieren. Zudem sollte man immer ein Auge auf vorund nachgelagerte Anwendungen haben: Hat das Problem eventuell seinen Ursprung in einer vorgelagerten Anwendung genommen? Oder hat es Auswirkungen auf nachgelagerte Dienste?
Auf der Codeebene helfen Traces zu sehen, wo Performance-Probleme bei einer Transaktion entstehen. Bei dieser Ablaufverfolgung kommt es besonders auf Genauigkeit an – und auf die Möglichkeit, tiefe Einblicke in die TraceDetails zu erlangen.
Traces nutzen eine automatische Instrumentierung auf Codeebene, um die Zusammenhänge zwischen dem Code, der Performance und auftretenden Fehlern zu beleuchten. Distributed Tracing führt diese Technik angepasst an Microservice-Architekturen fort. In einer Architektur, die auf Microservices basiert, bei der ein Request durch viele verschiedene Services geht, bis dem User eine vollständige Seite angezeigt wird, ist dieses Vorgehen essenziell. Ein Distributed Trace liefert die Information über sämtliche Dienste, Datenspeicher und andere Komponenten, die an einem Request beteiligt waren. So erlangt man ein umfassendes Verständnis für die Zusammenhänge aller involvierten Prozesse, wie lange diese dauern und wie sie voneinander abhängen.
Die wahre Stärke des Distributed Tracings liegt darin, dass Traces über Services, Container oder Applikationen hinweg verfolgt werden können. Besonders bei Microservices, die extern gehostet werden, ist das ein großer Vorteil. Speziell bei AWS Lambda besteht beispielsweise die Schwierigkeit, dass Entwicklerteams zu wenig Einblicke darin haben, was in der Lambda-Funktion geschieht und welche Abhängigkeit von anderen nativen Diensten eine solche Funktion beinhaltet. Mit Hilfe von Distributed Tracing können Entwicklerteams auch in diese „Black Box“Licht bringen.
Jeder Serviceausfall kostet Zeit und Geld
Microservices liefern Entwicklerteams genau das, was sie in der von Digitalisierung und Disruption geprägten Business-Welt brauchen: Schnelligkeit, Skalierbarkeit, Flexibilität, Produktivität und Zuverlässigkeit von Anwendungen. Doch Microservice-basierte Strukturen bringen ein hohes Maß an Komplexität mit sich.
Die Herausforderung für Entwickler ist es, diese Komplexität durch ein durchgängiges Monitoring mit aussagekräftigen Analysen zu bewältigen. Sie zeigen den Entwicklerteams, wo Probleme bestehen oder Prozesse verbessert werden können. Jeder Ausfall eines Service kostet Zeit, Geld und manchmal auch Kundenvertrauen. Deshalb ist es sinnvoll, in die Schnelligkeit, Flexibilität und Zuverlässigkeit von Microservice-Architekturen und ihre stringente Wartung zu investieren.