Istio ist das Ergebnis einer Zusammenarbeit zwischen IBM, Google und Lyft zur Unterstützung des Datenverkehrsmanagements, der Zugangskontrolle und der Aggregation von Telemetriedaten zwischen Microservices.
IBM und Google haben vorige Woche die Einführung von Istio angekündigt. Das ist eine offene Technik, die Entwicklern die Möglichkeit bietet, Netzwerke unterschiedlicher Microservices zu vernetzen, zu verwalten und zu sichern ? unabhängig von Plattform, Quelle oder Anbieter.
Die Idee hinter dem Hypethema Microservices sind möglichst kleine deploybare Softwareartefakte, die sich getrennt voneinander verteilen lassen. Die Softwareverteilung sollte dabei so unabhängig wie möglich sein ? idealerweise also, ohne dass andere Artefakte ebenfalls neu zu deployen oder zu starten wären.
Best of Breed
Istio ist das Ergebnis einer Zusammenarbeit von IBM, Google und dem kalifornischen Unternehmens Lyft zur Unterstützung des Datenverkehrsmanagements, der Zugangskontrolle und der Aggregation von Telemetriedaten zwischen Microservices. Das alles geschieht offenbar, ohne dass Entwickler Änderungen am Anwendungscode vornehmen müssen.
Die zentralen Istio-Features sind automatische Lastverteilung für HTTP-, gRPC- und TCP-Traffic, die Kontrolle über das Traffic-Verhalten über Routing-Regeln sowie die Auslieferung in die Tiefe gehender Telemetriedaten und Reportings. Darüber hinaus ist von Traffic-Verschlüsselung, Service-to-Service-Authentifizierung und die systemübergreifende Durchsetzung von Richtlinien die Rede.
In Istio sind die Arbeiten aus IBMs Projekt Amalgam8, Googles Service Control und von Lyfts Proxy und Kommunikations-Bus Envoy geflossen. Das IBM-Projekt kümmert sich um die Entwicklung eines vereinheitlichten Service-Mesh, das im vergangenen Jahr als Open-Source-Software vorgelegt wurde und sich intern wie extern bei A/B-Tests, Canary Releases und bei der Überprüfung der Widerstandsfähigkeit der Systeme nutzen lässt. Die Google Service Control ist ebenfalls ein Service-Mesh, das sich auf das Einhalten von Richtlinien wie Zugriffsteuerungslisten, Durchsatzratenbegrenzung und Authentifizierung konzentriert.
Der Envoy-Proxy hat wohl Lyft bei deren Reise unterstützt, eine monolithische App in ein Produktionssystem mit mehr als 10.000 VMs umzuwandeln, die mehr als 100 Microservices betreiben. Envoy wurde in C++11 geschrieben und funktioniert im Zusammenspiel mit Microservices in C++, Go, Java, PHP und Python. Die Applikations- und Netzwerküberwachung von Istio lässt sich in mit den Monitoring-Werkzeugen Prometheus und Grafana nutzen und es ist auch mit Zipkin integriert, um Latenzprobleme zu beheben.
Kubernetes und mehr
Istio läuft derzeit auf Kubernetes-Plattformen wie IBMs Bluemix Container Service. Jedoch ist das Design offensichtlich nicht plattformspezifisch. So sollen laut Projektplan auch weitere Plattformen wie CloudFoundry oder virtuelle Maschinen unterstützt werden. Derzeit hat das Istio-Projekt noch Alpha-Status. (ane)