Das Jahr des Service-Mesh

Im Zuge digitaler Transformationsstrategien boomen Microservices. Doch viele Unternehmen stellen fest, dass nicht alles reibungslos verläuft. Microservices können mehr Flexibilität und Skalierbarkeit bieten, aber auch mehr Komplexität mit sich bringen. Hier kommt das Service-Mesh ins Spiel.

Werkzeuge  –  11 Kommentare
Das Jahr des Service-Mesh

Die Fähigkeit eines Service-Mesh, komplexe Container zu vereinfachen und die Netzwerkfunktionen zu verbessern, macht die Technik zu einer wichtigen Infrastrukturebene. Es darf allerdings nicht vergessen werden, dass Service-Meshes noch am Anfang ihrer Entwicklung stehen. Unternehmen wie Netflix und Twitter sind Vorreiter bei Service-Mesh-Implementierungen, aber deren Verständnis und Know-how ist noch nicht überall verfügbar.


Bevor man auf die heutige Bedeutung von Service-Meshes blicken kann, ist es zunächst wichtig zu untersuchen und zu verstehen, wie sie sich entwickelt haben, wo sie derzeit stehen und welche Rolle ein Service-Mesh in Microservice-Applikationen spielt. Die Geschichte beginnt mit der Containerorchestrierung Kubernetes, die sich für den produktiven Einsatz von Containerapplikationen bewährt hat. Sie bietet eine umfangreiche Netzwerkebene, die Diensterkennung, Lastenausgleich, Health-Checks und Zugriffskontrolle vereint, um komplexe, dezentralisierte Applikationen zu unterstützen.

Was ist ein Service-Mesh?

In einem Service-Mesh wird jede Service-Instanz mit der eines Reverse-Proxy-Servers gekoppelt. Die Service-Instanz und der Sidecar-Proxy teilen sich einen Container, der wiederum von einem Container-Orchestrierungswerkzeug verwaltet wird. Die Service-Proxys sind für die Kommunikation mit anderen Service-Instanzen verantwortlich und können Funktionen wie Service -Erkennung, Lastausgleich, Authentifizierung und Autorisierung und sichere Kommunikation unterstützen.

Im Service-Mesh bilden die Service-Instanzen und ihr Sidecar-Proxy die Datenebene, die neben zudem die Verarbeitung und Beantwortung von Anfragen umfasst. Das Service-Mesh beinhaltet auch eine Ebene zur Steuerung der Interaktion zwischen den Diensten, die von ihren Sidecar-Proxies vermittelt wird.

Wenn die Operations-Teams jedoch Applikationen in der Produktion verwalten, benötigen sie oft eine bessere Kontrolle und Transparenz über das Netzwerk. Es besteht die Möglichkeit, jedem Microservice eine gemeinsame TLS (Transport Layer Security) hinzuzufügen, um Verbindungen zu verschlüsseln und zu authentifizieren. Zudem lassen sich OpenTracing-Agenten hinzuziehen, um detaillierte Nachweise über Transaktionen zu generieren.

Schwierig wird es, wenn jeder Microservice Prometheus-Metriken auf unterschiedliche Weise bereitstellt, weshalb Proxies wie NGINX einzusetzen sind, um Durchsatzbegrenzungen und zusätzliche Zugriffskontrollen hinzuzufügen. Jeder dieser Schritte stellt bei der Bewältigung jedoch eine Belastung für den Applikationsentwickler und das Operations-Team dar. Die Belastungen sind im Einzelfall leicht, weil die Lösungen gut verstanden werden, aber das Risiko steigt. Möglicherweise erreichen Unternehmen, die große, komplexe Applikationen betreiben, irgendwann einen Punkt, an dem dieser Ansatz zu schwer skalierbar ist.