Ein Service Mesh ermöglicht es Dienstentwicklern, die Arbeit der Netzwerkkommunikation auszulagern und sich stärker auf die Geschäftslogik zu konzentrieren.
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.
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.