Service Mesh und Istio für Einsteiger

Von Patrick Arnold , 05.08.2019, 10:21
Istio

Das Thema Service Mesh und dafür konzipierte Tools wie Istio erleben in den letzten Monaten einen starken Hype. Große Anbieter wie AWS sind mit neuen Angeboten in diesem Bereich auf den Markt gegangen und bieten entsprechende Lösungen an. Dies ist ein Indikator dafür, sich spätestens jetzt mit dem Thema auseinanderzusetzen.

Für alle, die mit dem Thema neu in Berührung kommen, stellen sich unter anderem die folgenden Fragen: Wie hängen Service Meshes mit Kubernetes zusammen? Welche Unterschiede gibt es bei Service-Mesh-Werkzeuge wie Istio oder Linkerd? Und, nicht zuletzt, welche Vorteile hat der Entwicklungsansatz mit Service Mesh am Ende für Softwareprodukte? Die Antworten sind wie folgt zu finden und bieten eine erste grundlegende Orientierung im Service-Mesh-Kosmos.

 

Was ist ein Service Mesh und welche Vorteile bietet es?

Service Mesh ist gewissermaßen die Lösung für spezifische Architekturanforderungen, die aus dem Einsatz von Microservices-Architekturen hervorgehen. Microservices ersetzen sogenannte monolithische Architekturmuster, in welchen alle Funktionen eines Programmes enthalten sind. Stattdessen werden einzelne Funktionalitäten beziehungsweise Dienste – die Microservices – miteinander verknüpft. Diese lassen sich austauschen und warten, ohne dass es für die Gesamtstruktur einer Veränderung bedarf.

Die Verwaltung von großen und komplexen Microservices-Architekturen stellt allerdings eine gewisse Herausforderung dar. Die Softwarearchitektur muss sicherstellen, dass die Bezüge der Microservices untereinander stimmen und sie am Ende eine einheitliche Anwendung für die User abbilden. Außerdem zu beachten ist die Verknüpfung der Microservices mit den Datenbanken. Für jeden Microservice kann nämlich eine dedizierte Datenbank erforderlich sein.  

Service Mesh ist die Bezeichnung für den entsprechenden Architekturstil, mit dem sich die Microservices verwalten lassen. Die Vorteile dieser Herangehensweise bestehen unter anderem darin, dass mehr Transparenz bezüglich der Struktur der Microservices vorhanden ist, sich die Folgen der Änderung eines einzelnen Microservices besser abschätzen lässt und die Skalierung einer Anwendung leichter fällt – zum Beispiel wenn der Bedarf nach zusätzlichen Funktionalitäten vorhanden ist. 

 

Die Tools Istio und Linkerd im Vergleich

Um eine Service-Mesh-Architektur aufzubauen, ist das Tool Istio derzeit für viele Architekten und Entwickler erste Wahl. Insbesondere der IT-Konzern Google, aus dessen Entwicklungsabteilung die Open-Source-Lösung stammt, trägt derzeit stark zur Verbreitung und Beliebtheit von Istio bei, beispielsweise durch Beiträge auf Konferenzen.

Istio besticht vor allem in zwei Themenbereichen: Zum einen bei der Integration der Telemetriedaten; sprich, die Datensammlung und -einsicht fällt durch die Daten-Integration in unterschiedliche Werkzeuge wie Prometheus, Grafana & Co. einfacher. Zum anderen ist das Traffic Management in Istio gut gelöst, sodass es leicht möglich ist, relativ schnell gewissen Nutzergruppen neue Features zur Verfügung zu stellen. Dies kann Test- und Releasezyklen deutlich verkürzen.

Eine interessante Alternative zu Istio ist derzeit Linkerd. Hier besteht der Vorteil gegenüber Istio vor allem in der schnelleren Performance. Allerdings ist im Gegensatz zu Istio keine voreingestellte Integration zu den Telemetriedaten vorhanden, sodass diese hauptsächlich manuell erarbeitet werden muss. Zudem fehlt bei Linkerd die Unterstützung namhafter Softwarekonzerne wie Google, sodass die Weiterentwicklung etwas langsamer und in geringerem Umfang von statten geht als bei Istio.  

 

Wie gut ist Istio in Kubernetes integriert?

Zwar fällt das Schlagwort Istio häufig im Zusammenhang mit Kubernetes. Istio muss allerdings nicht zwangsläufig auf einer Kubernetes-Umgebung laufen, sondern auch auf anderen Plattformen aufsetzen. Istio weist aber durchaus eine Nähe zu Kubernetes auf – schließlich stammen beide Lösungen ursprünglich aus dem Hause Google und entsprechend einfach ist die Integration. Zudem ist Istio für Erweiterungen mit Spezialwerkzeugen und Plugins konzipiert, wofür es ein eigenes Plugin-System gibt, die sogenannte Mixer-Komponente. Eine Kubernetes-Plattform mit Istio lässt sich also schnell und einfach erweitern beziehungsweise mit Plugins auf den neuesten Stand bringen.

Wie auch immer die Entwicklung weiter gehen wird, ist eines ziemlich sicher: Ohne Service-Mesh-Architektur und damit Tools wie Istio wird es in Zukunft nicht gehen. Ob Istio oder ein anderes Werkzeug sich als Standardlösung durchsetzen wird, bleibt noch abzuwarten. Aber ein Blick darauf lohnt sich heute schon in jedem Fall!

Neuen Kommentar schreiben

Ich habe die Datenschutzhinweise zur Kenntnis genommen. Ich stimme zu, dass meine Angaben und Daten zur Beantwortung meiner Anfrage elektronisch erhoben und gespeichert werden.