Eberhard Wolff INNOQ

 „Istio ist eine vielversprechende Technologie. Sie löst die meisten Herausforderungen in einem Microservices-System. Dazu sind noch nicht einmal größere Änderungen am Code der Microservices nötig.“

Hanna Prinz INNOQ

„Auf der anderen Seite ist Istio eine komplexe Technologie. Die Komplexität liegt aber gar nicht so sehr in Istio begründet, sdondern in den Herausforderungen, die bei Microservices-Systemen gelöst werden müssen und die Istio so komplex machen.“

Die Flexibilität und die Geschwindigkeit von Microservices, haben den hohen Preis eines verteilten Systems. Während der Betrieb dank Kubernetes kaum herausfordernd ist, müssen andere Funktionen aufwendig mit Bibliotheken implementiert und Werkzeuge für die Datenauswertung installiert werden. Ein Service Mesh wie Istio hilft, indem es viele Funktionen in die Infrastrukturebene hebt und Analysetools mitbringt.

Es gibt sehr viele unterschiedliche Technologien für die Implementierung von Microservices-Architekturen. Kubernetes ist gerade für den Betrieb von Microservices eine hervorragende Infrastruktur: Docker-Container laufen nicht mehr auf einzelnen Knoten, sondern im Cluster; das erlaubt Ausfallsicherheit und Skalierung. Außerdem hilft Kubernetes beim Deployment der Anwendungen. Durch Rolling-Updates können neue Versionen schrittweise eingeführt werden, indem Container mit der neuen Version gestartet und dann die Container mit der alten Version entfernt werden.

Außerdem ermöglicht Kubernetes Service Discovery: Container können andere Container anhand des DNS-Namens finden. DNS dient auch im Internet zum Auflösen von Hostnamen zu IP-Adressen und hat daher eine breite Unterstützung über viele Programmiersprachen hinweg. Load Balancing löst Kubernetes ebenfalls: Die Last kann auf mehrere Instanzen verteilt werden; dabei wird der Netzwerkverkehr transparent auf IP-Ebene umgeleitet.

Aus diesen Gründen ist Kubernetes mittlerweile eine der wichtigsten Plattformen für Microservices: Ohne Eingriffe in den Code werden wichtige Herausforderungen für Microservices gelöst. So bleibt die Technologiefreiheit bestehen. Aber Kubernetes löst noch nicht alle Herausforderungen von Microservices.

Service Mesh: Proxies im Einsatz

Der Zweck von Kubernetes ist der zuverlässige Betrieb von beliebigen Containern. Der Orchestrierer bildet deshalb keine Microservice-spezifischen Funktionen ab. Genau dort setzt ein Service Mesh an. Es handelt sich um eine zusätzliche Infrastrukturebene für das Management der Service-zu-Service-Kommunikation. Anders als ein ESB ist ein Service Mesh jedoch dezentral und implementiert keine Geschäftslogik, da es typischerweise kein Content-basiertes Routing umsetzt. Ähnlich wie Kubernetes beliebige Container orchestriert, ist der Zweck eines Service Mesh, beliebige Microservices zu verwalten.

Im Detail betrachtet besteht ein Service Mesh aus zwei zusätzlichen Ebenen, die zwischen einem Orchestrierer wie Kubernetes und den Anwendungen liegen. Ein Service Mesh stellt jeder Service-Instanz einen sogenannten Sidecar-Container zur Seite. In Kubernetes wird dieser in den gleichen Pod, der Deployment-Einheit von Kubernetes, platziert. Daher laufen beide Container auf demselben physischen Host, teilen sich ein Netzwerkinterface und können sich Dateisysteme teilen. In dem Sidecar-Container befindet sich ein Service Proxy, durch den jegliche eingehende und ausgehende Kommunikation verläuft. Alle Service Proxies zusammen bilden die dezentrale Data Plane (Datenebene), die nicht nur Werte wie Quelle und Ziel einer Anfrage, Latenz und Fehlercodes erfassen, sondern den Verkehr auch steuern und manipulieren kann. Die zweite Ebene, die ein Service Mesh hinzufügt, ist die Control Plane (Kontrollebene). Sie enthält zentrale Komponenten, die die Sidecar Proxies auf der Data Plane konfigurieren. Dazu gehört, wie die gesammelten Daten verarbeitet werden sollen, aber auch wie Netzwerkverkehr auf Basis von Regeln geprüft, geändert oder gelenkt werden soll.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin Spezial Vol. 20: Kubernetes - "Kubernetes"

Alle Infos zum Heft
579891257Service Mesh und Istio
X
- Gib Deinen Standort ein -
- or -