Eine für alle

Istio 1.0 – Die lang ersehnte Produktionsreife für die Microservices-Plattform

Michael Hofmann

© 2018 Istio Authors

Die Furcht vor dem Service Mesh, also der fortschreitenden Unübersichtlichkeit einer Microservices-Architektur, ist in der Entwicklerwelt mittlerweile weit verbreitet. Abhilfe schafft bei Cloud-basierten Microservices-Anwendungen Istio, das nun in Version 1.0 erschienen ist. Damit wird die Microservices-Plattform endlich produktionsreif.

Istio 1.0 – Das ist neu

Mit dem Release 1.0 von Istio hat die Community den lang ersehnten produktiven Reifegrad erreicht. Laut Release Notes sind jetzt alle der sogenannten Kern-Features für den Einsatz in der Produktion geeignet. Leider gilt das nicht für den gesamten Funktionsumfang, da Istio als agiles Projekt betrieben wird und einige der Funktionalitäten noch nicht so weit fortgeschritten sind. Zu erkennen ist der jeweilige Fortschritt an der Auflistung der einzelnen Features und deren zugehörigen Status. Jedes Feature wird darin mit seinem Zustand Alpha, Beta oder Stable gekennzeichnet. Das Ziel für Version 1.0 war es, alle wichtigen Core Features entweder in den Zustand „Beta“ oder „Stable“ zu bringen. Die Priorität der Features wurde anhand des Feedbacks aus der Community festgelegt.

Das Release-Prinzip von Istio basiert nach folgendem Prinzip: Neben täglichen Builds werden im Abstand von ca. einem Monat ausgewählte Daily Builds ausführlicheren Tests unterzogen und bei ausreichender Qualität als Snapshot Release gekennzeichnet. Einmal pro Quartal wird ein sogenanntes Long Term Support (LTS) Release angestrebt, was dann im Anschluss auch mit Patches versorgt werden soll. Auf diese Weise ist im Mai 2018 Istio 0.8.0, das als LTS markiert worden ist, entstanden. Zukünftig können also diese LTS Releases für den produktiven Einsatz verwendet werden. Komischerweise ist Istio 1.0 nicht als LTS gekennzeichnet worden, was aber den produktiven Einsatz nicht verhindern sollte.

Parallel zu den Features wurde intensiv daran gearbeitet, nicht funktionale Anforderungen wie Performanz und Skalierbarkeit zu verbessern. In den Nightly Releases werden immer wieder die passenden Performance-Tests ausgeführt, um diesen wichtigen Aspekt immer unter Kontrolle zu haben. Damit die Anfangshürden für den Einsatz von Istio nicht zu hoch sind, wurde noch an der Dokumentation und an verschiedenen Getting-Started-Szenarien gearbeitet. Mittlerweile existieren
Installationsanleitungen für alle gängigen Kubernetes-Plattformen, wie z.B. Google Kubernetes Engine (GKE), IBM Cloud Kubernetes Service (IKS), IBM Cloud Private, OpenShift Origin, AWS (w/Kops), Azure und sogar Minikube. Seit Istio 0.8.0 wurde die Installation mit dem Package-Manager Helm als Standard-Installation eingeführt.

Hintergrund und Ausblick

Istio wurde 2016 von Google, IBM und Lyft mit dem Ziel ins Leben gerufen (erstes GIT-Release 0.1.0 war am 10.5.2017), Services oder auch Microservices effizient verwalten zu können. Obwohl der gewählte Name für das Projekt (Istio bedeutet im griechischen Segel) sich an Kubernetes (griechisch für Steuermann) orientiert hat, ist von Anfang an daran gedacht worden, Istio auf jeder möglichen Plattform betreiben zu können. Als Startplattform wurde Kubernetes gewählt, andere werden noch folgen. Auch der Support von hybriden Umgebungen steht noch auf dem Projektplan. Zukünftig soll es egal sein, ob die Services auf Kubernetes, mehreren VMs, oder im CloudFoundry betrieben werden. Auch die Lokation der Services wie zum Beispiel in der Private, Hybrid oder Public Cloud spielt dann keine Rolle mehr. Istio will eine einheitliche Sichtweise auf den gesamten Service Mesh bieten. „We want to reach a future state where Istio is woven into every environment, with service management available no matter what environment or platform you use“, sagt Sven Mawson, Istio Gründer und Technical Lead.

„Der Begriff Service Mesh umschreibt ein Geflecht von (Micro-)Services, welche über Netzwerkaufrufe miteinander interagieren und somit eine gesamtheitliche Anwendung bilden.“ (Quelle: Der Artikel von mir und meinem Kollegen Markus Lackner hier auf JAXenter) Die zugehörigen Verwaltungswerkzeuge sollten sprachagnostisch den Betrieb dieses Service Mesh gewährleisten. Durch die Verwendung von interagierenden Services wird die Komplexität der gesamten Anwendung zum Teil zwischen die Services verlegt, was die Notwendigkeit von passenden Verwaltungswerkzeugen unterstreicht. „2018 is the year of the service mesh“, nennt es Clayton Coleman, Red Hat OpenShift Platform Architect.

Istio bietet im Kern folgende Funktionalitäten an:

  • Traffic Management
  • Service Identity und Security
  • Policy Enforcement
  • Telemetry

Kernstück der Istio-Architektur sind dabei die Envoy Proxys, welche die Kommunikation vom und zum eigentlichen Service kontrollieren. Als Sidecars sind sie für den Service transparent und somit sprachagnostisch verwendbar. Die Services und Proxys bilden dabei die sogenannte Data Plane, die von der Control Plane ausfallsicher verwaltet wird. Zur Control Plane gehören die Komponenten Mixer, Pilot und Citadel. Mixer kümmert sich um das sog. Policy Enforcement und sammelt Telemetriedaten. Pilot ist für die Service Discovery zuständig und Citadel steuert die Security der Service-to-Service-Kommunikation. Damit werden verschiedene Funktionalitäten ermöglicht, wie beispielsweise Service Discovery, Load Balancing, Failure Handling, Fault Injection und Mutual TLS, um nur einen kleinen Auszug zu nennen.

Auf der einen Seite plant Istio die Integration mit API-Management-Werkzeugen wie zum Beispiel Google Endpoints und Apigee, auf der anderen Seite hat Istio zwischenzeitlich Einfluss auf viele andere Bereiche genommen. Die MicroProfile Community arbeitet gerade an einer eigenen Spezifikation, um die Abstimmung mit Istio zu optimieren. CloudFoundry übernimmt Teile von Istio und setzt damit ihre eigenen Funktionalitäten auf eine andere Grundlage. Knative als neue Serverless-Plattform setzt auch stark auf Kubernetes und Istio. Sieht also ganz danach aus, als hätte Istio damit einen Marktstandard gesetzt.

Geschrieben von
Michael Hofmann
Michael Hofmann
Michael Hofmann ist freiberuflich als Berater, Coach, Referent und Autor tätig. Seine langjährigen Projekterfahrungen in den Bereichen Softwarearchitektur, Java Enterprise und DevOps hat er im deutschen und internationalen Umfeld gesammelt. Mail: info@hofmann-itconsulting.de
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: