Service-Mesh

Ein Service-Mesh ermöglicht es den Entwicklern von Diensten, die Arbeit der Netzwerkkommunikation abzuladen und sich mehr auf die Geschäftslogik zu konzentrieren.

Was ist ein Service-Mesh?

Ein Service Mesh ist eine konfigurierbare Infrastrukturebene für eine Microservices-Anwendung. Es macht die Kommunikation zwischen Dienstinstanzen flexibel, zuverlässig und schnell. Das Mesh bietet Service Discovery, Lastausgleich, Verschlüsselung, Authentifizierung und Autorisierung, Unterstützung für das Sicherungsmuster und andere Funktionen.

Das Service-Mesh wird in der Regel durch die Bereitstellung einer Proxy-Instanz, eines so genannten Sidecars, für jede Dienstinstanz implementiert. Sidecars übernehmen die Kommunikation zwischen den Diensten, die Überwachung und sicherheitsrelevante Belange – also alles, was von den einzelnen Diensten abstrahiert werden kann. Auf diese Weise können sich Entwickler um die Entwicklung, den Support und die Wartung des Anwendungscodes in den Diensten kümmern; Betriebsteams können das Service-Mesh warten und die Anwendung ausführen.

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 Container-Orchestrierungs-Framework, das von Istio unterstützt wird.

Video zum Service-Mesh

Was ist ein Service-Mesh in einer Microservices-Architektur?

Ein Service-Mesh befasst sich mit einigen der wichtigsten Herausforderungen bei der Realisierung einer Microservices-Architektur. Ein Service-Mesh erlaubt mehr Spielraum bei der Auswahl einer Vielzahl von Microservices-Implementierungstechnologien und konzentriert sich dabei mehr auf die Geschäftslogik, anstatt mehr Zeit in Netzwerkfunktionen zwischen den Diensten zu investieren.

Service-Mesh und Service Discovery

Ein Service-Mesh arbeitet mit einem Service-Discovery-Protokoll, um Dienste zu erkennen, wenn sie auftauchen. Das Mesh lässt sie dann ordnungsgemäß altern, wenn sie verschwinden. Die Service-Discovery ist ein Container-Management-Framework, das eine Liste von Instanzen führt, die bereit sind, Anforderungen zu empfangen oder von anderen Diensten entdeckt zu werden. Zusammen sorgen sie für Ausfallsicherheit bei der Kommunikation von Dienst zu Dienst.

Referenzen