Ein Service Mesh ermöglicht es Serviceentwicklern, die Netzwerkkommunikation auszulagern und sich stärker auf die Geschäftslogik zu konzentrieren.

Was ist ein Service Mesh?

Ein Service Mesh ist eine konfigurierbare Infrastrukturschicht für eine Microservices-Anwendung. Es ermöglicht eine flexible, zuverlässige und schnelle Kommunikation zwischen Serviceinstanzen. Das Mesh bietet Service Discovery, Lastverteilung, Verschlüsselung, Authentifizierung und Autorisierung, Unterstützung für das Circuit-Breaker-Muster sowie weitere Funktionen.

Das Service Mesh wird in der Regel implementiert, indem für jede Serviceinstanz eine als Sidecar bezeichnete Proxyinstanz bereitgestellt wird. Sidecars übernehmen die Kommunikation zwischen den Services, das Monitoring und sicherheitsrelevante Aufgaben – also alles, was von den einzelnen Services abstrahiert werden kann. So können sich Entwickler um die Entwicklung, den Support und die Wartung des Anwendungscodes in den Services kümmern, während die Betriebsteams das Service Mesh verwalten und die Anwendung betreiben.

Istio, das von Google, IBM und Lyft unterstützt wird, ist derzeit die bekannteste Service-Mesh-Architektur. Kubernetes, das ursprünglich von Google entwickelt wurde, ist derzeit das einzige von Istio unterstützte Framework zur Container-Orchestrierung.

Video zum Service Mesh

Was ist ein Service Mesh in einer Microservices-Architektur?

Ein Service Mesh löst einige der zentralen Herausforderungen bei der Umsetzung einer Microservices-Architektur. Es bietet mehr Spielraum bei der Auswahl verschiedener Technologien zur Implementierung von Microservices und ermöglicht es, sich stärker auf die Geschäftslogik zu konzentrieren, anstatt mehr Zeit in Netzwerkfunktionen zwischen den Services zu investieren.

Service Mesh und Service Discovery

Ein Service Mesh arbeitet mit einem Service-Discovery-Protokoll zusammen, um Dienste zu erkennen, sobald sie verfügbar werden. Wenn sie nicht mehr verfügbar sind, entfernt das Mesh sie kontrolliert. Service Discovery ist ein Framework für die Containerverwaltung, das eine Liste der Instanzen führt, die bereit sind, Anfragen zu empfangen oder von anderen Diensten erkannt zu werden. Gemeinsam sorgen sie für eine ausfallsichere Kommunikation zwischen Diensten.

Quellen