Observability

End-to-End-Monitoring zur Software-Überwachung

von - 13.08.2020
Programmcode und Computertastatur
Foto: isak55 / shutterstock.com
Ganzheitliches End-to-End-Monitoring bringt einige Vorteile für Unternehmen. Unter anderem kann dies die Grundlage zum Aufsetzen einer durchweg positiven Kundenerfahrung bilden.
Dieser Beitrag wurde erstellt von Gregory Ouillon, CTO, EMEA bei New Relic.
Gregory Ouillon ist CTO, EMEA bei New Relic. In dieser Funktion unterstützt er Kunden in der gesamten EMEA-Region bei der Einführung moderner Technologien und der digitalen Transformation.
(Quelle: New Relic )
Moderne Software- und IT-Architekturen sind in ihrer Komplexität und Dynamik nahezu biologisch. Sie sind zudem quasi in Echtzeit für den Endnutzer zugänglich und erfahrbar. Die Architekturen erfordern deshalb eine Art Nervensystem, das jedes einzelne Organ oder jede einzelne Komponente in Echtzeit erfassen, messen und überwachen kann. Dieses sensible System sollte zudem die Beschaffenheit und Leistung der biologischen Anwendung auf der Grundlage all dieser Informationen in Echtzeit bestimmen können.
Dies bildet die Grundlage für ein End-to-End-Monitoring - auch Observability genannt. Erfolgreich implementiert, ermöglicht Observability den Unternehmen, proaktiv Zero-Downtime zu erreichen, die Verwaltung einer optimalen Anwendungsleistung zu gewährleisten sowie die Grundlage für eine durchwegs positive Kundenerfahrung aufzusetzen. Darüber hinaus unterstützt es Unternehmen dabei, effizienter zu sein sowie die digitale Transformation und Innovation zu beschleunigen.

Das Monitoring an Anwendungsarchitekturen und DevOps anpassen

Um erfolgreich zu sein, sollte die Art und Weise der Überwachung von Anwendungen auf die Struktur angepasst werden, mit der diese kreiert und bereitgestellt wurden. Moderne, vielschichtige Software- und IT-Architekturen bedingen fast immer ein End-to-End-Monitoring, um eine holistische und detaillierte Übersicht der Gesamt-Performance zu erhalten.
Anfangs war Software monolithisch und meistens in einer einzigen Programmiersprache geschrieben. Die Software-Entwicklung brachte meist, wegen langer Entwicklungs- und Qualitätssicherungs-Zyklen nur ein paar wenige Releases pro Jahr heraus - auch, um die Stabilität zu gewährleisten. Applikationen basierten auf simplen, typischerweise 3-tier IT-Architekturen mit ein paar wenigen Servern und Storage-Möglichkeiten. Sie ließen lediglich eine vertikale Skalierung zu. Zudem war das Fachwissen über diese Applikationen und die betreffende IT-Architektur auf wenige Personen begrenzt. Monitoring wurde in erster Linie bei Netzwerk- und Infrastrukturkomponenten als Ergänzung zu den herstellerspezifischen Element-Managern eingesetzt.

So war es früher

Die Anwendungen haben sich seither deutlich weiterentwickelt, um schnellere Innovation, bessere Skalierbarkeit und höhere Leistung zu ermöglichen.
Heute sind jedoch kurze Entwicklungszyklen, verschiedene Sprachen und Codes, mehrere Releases pro Monat und komplexe Server- sowie Cloud-Architekturen die Realität. Software ist mittlerweile hochgradig modularisiert und in „Microservices“ zerlegt - gestützt auf architektur-übergreifende API-Aufrufe. Zudem ist jede Komponente in der Sprache geschrieben, die am besten zum Team und zum Zweck des Codes passt.
Aktuelle Microservice-Architekturen setzen vermehrt auf Container, also leistungsfähige Technologien zur Virtualisierung und Abstraktion. Einige Unternehmen starten und betreiben täglich mehrere 100000 dieser Container. Die Standortunabhängigkeit und die Möglichkeit der horizontalen Skalierbarkeit sind zum Regelfall geworden - die automatisierte Erstellung von Server- und Containerinstanzen in Echtzeit sorgen für eine dynamische und schnelllebige Umgebung.
Darüber hinaus erfolgt die Entwicklung mit hunderten hochspezialisierten Best-of-Breed-Komponenten, entweder proprietär oder Open Source, als Cloud-PaaS, Managed Services oder Code. Netzwerke, Proxies, Message Queues, SQL und No-SQL, Caches, Webserver und Load Balancer sind nur einige dieser Bereitstellungsmöglichkeiten.
Die meisten Unternehmen veröffentlichen den Code mindestens auf monatlicher Basis. Manche veröffentlichen neue Anwendungskomponenten sogar bis zu 100 Mal pro Tag. Mit dieser Vielschichtigkeit und Komplexität bieten traditionelle Monitoring-Lösungen, die sich auf Infrastruktur und Applikations-Logs beschränken, keine zeitgemäße Lösung mehr.
Heutige Systeme sind äußerst komplex und beeinflussen die Erfahrung der Endnutzer. Deshalb benötigen Entwickler- und Operations-Teams eine Art zentrales Nervensystem, das jedes einzelne Organ oder jede einzelne Komponente in Echtzeit erfasst, misst und überwacht. Das gibt ihnen die Möglichkeit, auf Grundlage all dieser Informationen das Verhalten, den Zustand und die Leistung der Anwendung ebenfalls in Echtzeit zu bestimmen. Hierin liegt der große Vorteil des modernen Monitorings, das sich zur Observability hin entwickelt. Es bietet, was Teams zunehmend benötigen, um hochkomplexe und volatile moderne Anwendungen in Echtzeit vollständig zu verstehen und zu betreiben.
Verwandte Themen