Im Rahmen unserer Cloud-Migration durchleben unsere Anwendungen eine kontinuierliche Evolution und die großen Services werden immer mehr in kleinere Bestandteile zerlegt. Hierbei entstehen nicht nur klassische Microservices, oft handelt es sich um eine undogmatische modulare Zerlegung. Das Resultat dieses Vorgehens ist, dass die Logik innerhalb der einzelnen Module einfacher wird, damit werden unteranderem die Testbarkeit und die Nachvollziehbarkeit erhöht. Die Einführung von Grafana mit Prometheus und ELK-Stack, unterstützt unsere Teams dabei die einzelnen Anwendungen zu überwachen, die Veränderungen zu verfolgen und ggf. zeitnah zu reagieren.
Die Frage ist nun, wie gewinnt man den Überblick über die verteilte Architektur von kleinen Modulen, die mit einander agieren? Die Kommunikation zwischen den einzelnen Services, deren Performance und die Latenzzeiten sind nur einige Beispiele, die von Interesse sind.
Die nächsthöhere Ebene für Monitoring ist das Zusammenspiel der einzelnen Units der verteilten Servicearchitektur im Blick zu behalten. Dies ist insbesondere spannend bei den Services, deren Laufzeiten von Funktionsaufrufen kritisch sind. Hierzu nutzen wir Jaeger als Tracing-Tool, das einige Eigenschaften von Monitoring- und Logging-Tools kombiniert und uns genau diesen Überblick liefert, den wir für die Analyse benötigen.