Ein Service Mesh ermöglicht es Dienstentwicklern, die Arbeit der 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 macht die Kommunikation zwischen Serviceinstanzen flexibel, zuverlässig und schnell. Das Mesh bietet Diensterkennung, Lastausgleich, Verschlüsselung, Authentifizierung und Autorisierung, Unterstützung für das Circuit-Breaker-Muster und andere Funktionen.

Das Service Mesh wird üblicherweise dadurch implementiert, dass für jede Serviceinstanz eine Proxyinstanz, ein sogenannter Sidecar, bereitgestellt wird. Sidecars kümmern sich um die Kommunikation zwischen Diensten, die Überwachung und sicherheitsrelevante Belange – also um alles, was von den einzelnen Diensten abstrahiert werden kann. Auf diese Weise können Entwickler die Entwicklung, den Support und die Wartung des Anwendungscodes in den Diensten übernehmen; Betriebsteams können das Service Mesh warten und die App ausführen.

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

Video zum Service Mesh

Was ist ein Service Mesh in einer Microservices-Architektur?

Ein Service Mesh bewältigt einige der wichtigsten Herausforderungen bei der Realisierung einer Microservices-Architektur. Ein Service Mesh bietet mehr Spielraum bei der Auswahl vielfältiger Technologien zur Implementierung von Microservices und ermöglicht gleichzeitig einen stärkeren Fokus auf die Geschäftslogik, anstatt mehr Zeit in Netzwerkfunktionen zwischen den Services zu investieren.

Service Mesh und Service Discovery

Ein Service Mesh arbeitet mit einem Service-Erkennungsprotokoll, um Dienste zu erkennen, sobald sie verfügbar sind. Wenn sie dann verschwinden, lässt das Netz sie anmutig altern. Service Discovery ist ein Framework zur Containerverwaltung, das eine Liste von Instanzen führt, die bereit sind, Anfragen zu empfangen oder von anderen Diensten erkannt zu werden. Zusammen sorgen sie für Belastbarkeit in der Kommunikation zwischen Diensten.

Referenzen