Die Container-Manie ist ungebrochen. Im Hinblick auf Applications und Architekturen bedeutet das jedoch möglicherweise nicht das, was Sie denken.
Es besteht weiterhin die Tendenz, Container mit Microservices gleichzusetzen. Und mit gleichsetzen meine ich „austauschbar verwenden“.
Das ist eine falsche Annahme.
Sie sehen, ein erheblicher Prozentsatz der heutigen Container wird tatsächlich zum Bereitstellen vorhandener Applications verwendet. Wie im Container Journal vermerkt, ergab eine IDC-Umfrage, dass weniger als die Hälfte (46 %) der Container für neue Applications verwendet wurden. Auf den übrigen wurden vorhandene Applications ausgeführt. (Quelle: IDC-Umfrage zeigt, dass Container die treibende Kraft hinter unternehmenskritischen Apps sind ) Die oft zitierte Erklärung für diese seltsame Kombination? Modernisierung.
Zahlreiche Studien und Untersuchungen weisen darauf hin, dass die Anzahl „neuer“ Applications , die als Cloud-native-Anwendungen entwickelt werden, noch immer relativ gering ist – laut der Untersuchungen von Cap Gemini liegt sie bei weniger als 1 von 5. Aktuelle Untersuchungen von Diamanti haben ergeben, dass 31 % der IT-Leiter Container speziell für die Modernisierung älterer Applications in Betracht ziehen. Das ist keine Überraschung. Wir befinden uns in einem Zeitalter der Mehrgenerationen-IT, das fünf verschiedene Generationen von Application unterstützt.
Es gibt also all diese herkömmlichen Apps – und es werden immer mehr –, die letztendlich möglicherweise in Containern bereitgestellt werden.
Ich behaupte, das ist eine gute Sache, weil Container und verwandte Technologien wie Service Meshes die Modernisierungsbemühungen tatsächlich unterstützen können.
Falls Sie damit nicht vertraut sind, besteht die Beobachtbarkeit aus drei allgemein anerkannten Säulen, die von Cindy Sridharan in „ Distributed Systems Observability “ ausführlich beschrieben werden:
Zu diesem Thema gibt es reichlich Inhalt – auch zu den Herausforderungen, die mit den durch Protokolle und die Emission von Telemetriedaten generierten großen Betriebsdatenmengen verbunden sind –, deshalb werde ich hier nicht näher darauf eingehen. Es genügt zu sagen, dass Sie alle drei benötigen, um das volle Potenzial der Beobachtbarkeit auszuschöpfen.
Es genügt auch zu sagen, dass in diesem letzten Punkt – Spuren – vorhandene und ältere Applications im Nachteil sind. Die meisten von ihnen waren nämlich nicht dafür ausgerüstet, die Telemetriedaten zu übermitteln, die nötig wären, um eine Transaktion auf ihrem Weg von ihrem Ursprung bis zu ihrer Erfüllung zu verfolgen. Ereignisprotokolle und Metriken können unabhängig von der Application und -umgebung viel einfacher generiert und abgerufen werden. Dies sind Standardoptionen in nahezu jeder Web- und Application . Aber Instrumentierung? Dies impliziert normalerweise eingebetteten Code oder Agenten mit Einblick in den Echtzeitverkehr.
Dies ist eines der Dinge, die ein Service Mesh bieten kann.
Wenn Sie sich erinnern, besteht ein Service Mesh hauptsächlich aus Sidecar-Proxys innerhalb einer Container-Orchestrierungsumgebung. Diese Proxys leiten grundsätzlich die gesamte eingehende und ausgehende Kommunikation für einen Container. Auf diese Weise skalieren diese Proxys nicht nur die Dienste, sondern bieten auch einen idealen Ort zur Instrumentierung des Datenverkehrs, um eine vollständige Beobachtung zu ermöglichen. Sie können Nachrichten, die die Container-Umgebung durchlaufen, mit detaillierten Tags und anderen Metadaten anreichern, die es Systemen ermöglichen, den Datenverkehr über mehrere Systeme und Dienste hinweg zu verfolgen und zu korrelieren.
Und das Beste daran: Dies lässt sich mit nur sehr geringen Änderungen an der Application erreichen. In einigen Fällen, beispielsweise bei Java-Apps, gibt es konfigurationsbasierte Optionen zum Einfügen der entsprechenden Funktionen ohne Codeänderung.
Die Fähigkeit, Spuren aus vorhandenen Applications auszugeben, ist eine Schlüsselfunktion auf dem Weg zu echter Beobachtbarkeit. Wenn vorhandene Applications in Containern bereitgestellt werden, überlegen Sie, wie ein Service Mesh bei der Modernisierung helfen kann.