Was ist ein Service Mesh?

Autoren

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Service Mesh, definiert

Ein Service Mesh ist eine Softwareschicht in einer modernen Anwendungsarchitektur, die Konnektivität zwischen Microservices verwaltet und das Funktionieren von Anwendungen ermöglicht. Service Meshes bieten viele kritische Funktionen, wie z. B. Service-to-Service-Kommunikation, Service-Erkennung, Lastausgleich und Authentifizierung.

Eine der größten Herausforderungen, vor denen App-Entwickler in der modernen Geschäftswelt stehen, ist die Skalierbarkeit. Mit zunehmender Anzahl von Anwendungsbenutzern wird es für Ingenieure in DevOps (der Softwareentwicklungsmethode, die die App-Bereitstellung durch Automatisierung beschleunigt) schwierig, die Leistung zu überwachen. Ein Service Mesh bietet Hauptmerkmale, die bei der Überwachung und Verwaltung kritischer Dienste wie Protokollierung, Nachverfolgung und Datenverkehrssteuerung helfen.

Da Anwendungen für die digitale Transformation unerlässlich geworden sind, hat die Bedeutung von Service Meshes zugenommen. Heute sind sie die wichtigsten Voraussetzungen für einige der fortschrittlichsten Anwendungstechnologien auf dem Markt, darunter cloudnative Anwendungen, Microservices und Container.

Laut Forbes verfügten im Jahr 2022 70 % der Unternehmen bereits über ein Service Mesh und 19 % prüften eines.1

Die neuesten Tech-News – von Experten bestätigt

Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben sich angemeldet.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

Was sind Microservices?

Microservices, auch bekannt als Microservices-Architektur, ist ein Cloud-nativer Architekturansatz, bei dem Anwendungen aus vielen unabhängigen, kleineren Komponenten oder Diensten erstellt werden. Dieser Ansatz ermöglicht es Entwicklern, Code einfacher zu aktualisieren und Features und Funktionen hinzuzufügen oder zu entfernen, ohne den Rest der Anwendung zu beeinträchtigen, was zu einer hohen Skalierbarkeit führt.

Service Meshes sind für die Microservices-Architektur von entscheidender Bedeutung. Sie bieten eine hochgradig konfigurierbare Infrastrukturebene, auf der sich alle Dienste in der Microservice-Anwendung verbinden und Informationen austauschen können. Neben einem Service Mesh wird auch die Microservices-Architektur zusammen mit der Container-Technologie und ihrer beliebtesten Plattform, Kubernetes, verwendet.

Anwendungsentwicklung

Steigen Sie ein: Entwicklung von Enterprise-Anwendungen in der Cloud

In diesem Video erläutert Dr. Peter Haumer, wie die moderne Entwicklung von Unternehmensanwendungen in der Hybrid Cloud heute aussieht, indem er verschiedene Komponenten und Praktiken demonstriert, darunter IBM Z Open Editor, IBM Wazi und Zowe. 

Was sind Container und Kubernetes?

Die Technologie, bekannt als Container, und eine der beliebtesten Container-Orchestrierungsplattformen, Kubernetes, sind für die Funktionalität von Service Mesh unverzichtbar geworden, da sie Entwicklern die Verwaltung komplexer, auf Microservices basierender Anwendungen ermöglichen.

Container sind ausführbare Einheiten der Anwendung, die den Code zusammen mit seinen Bibliotheken und Abhängigkeiten verpacken, sodass er in jeder Computerumgebung ausgeführt werden kann. Mit der Verbreitung von Containern in der modernen Anwendungsarchitektur wurde die Verwaltung großer Containergruppen schnell zu einer Herausforderung.

Hier kommt Kubernetes (auch bekannt als k8s oder Kube) ins Spiel, eine Container-Orchestrierungsplattform, die zu einer der beliebtesten Orchestrierungslösungen geworden ist, die heute auf dem Markt erhältlich sind. Kubernetes-Cluster – Sammlungen von Knoten, die physische und virtuelle Maschinen (VMs)darstellen – werden auf der Steuerungsebene verwaltet.

Ein weiterer wichtiger Aspekt der Service Mesh-Funktionalität ist die Art und Weise, wie der Zugriff auf Dienste innerhalb eines bestimmten Clusters verwaltet wird, ein Prozess, der als Ingress bekannt ist.

Wie funktioniert ein Service Mesh?

Die beliebtesten Anwendungen von heute erfordern, dass viele Workloads oder Rechenaufgaben und -prozesse gleichzeitig bereitgestellt werden. Eine Microservice-Architektur ermöglicht es Entwicklern, jede Anwendung als Sammlung kleiner, unabhängiger Microservices zu erstellen, die einfacher zu verwalten sind.

Damit der Anwendungscode funktioniert, müssen Microservices jedoch schnell und genau kommunizieren, und hier ist die Service-Mesh-Architektur kritisch. Service Meshes sind so konzipiert, dass Entwickler mehr Kontrolle über die Service-to-Service-Kommunikation innerhalb einer Anwendung haben.

Auf ihrer grundlegendsten Ebene stützen sich Service Meshes auf eine Art von Kommunikation, die als proxybasierte Kommunikation bekannt ist, um die Verwaltbarkeit und Steuerung von Microservice-basierten Anwendungen zu verbessern. Funktionen der Kommunikation auf Proxy-Basis umfassen Proxy-Server (auch als Proxies bezeichnet), die als Vermittler zwischen einem Microservice und dem Netzwerk eines Unternehmens fungieren und es ermöglichen, den Datenverkehr zu und von einem Dienst über Proxies zu leiten. Diese als Netzwerk-Proxy-Kommunikation bezeichnete Fähigkeit ist entscheidend für die Aufrechterhaltung der Verwaltbarkeit, Beobachtbarkeit und Sicherheit vieler Anwendungen.

Neben Proxys stützt sich eine Service-Mesh-Architektur auf zwei primäre Komponenten, die ihre Funktionsfähigkeit ermöglichen: die Steuerungsebene und die Datenebene.

Steuerungsebene

Die Steuerungsebene ist der Teil des Computernetzwerks, der steuert, wie Daten zwischen Benutzern und Geräten (auch bekannt als Knoten) weitergeleitet werden. Kontrollebenen folgen Routing-Regeln oder -Protokollen, die von Algorithmen beeinflusst werden, die die beste Route für Daten bestimmen, um ein Netzwerk zu übernehmen.

In einem Service Mesh umfasst die Kontrollebene speziell entwickelte Proxys, so genannte Sidecar-Proxys, die bestimmte Funktionen wie Überwachung und Sicherheit abstrahieren, um sie effizienter zu gestalten. Wenn ein Service mit einem anderen Service in einem Service Mesh kommunizieren muss, fängt der Sidecar-Proxy die Anfrage ab und erstellt einen sicheren und verschlüsselten Kanal, über den sie weitergeleitet werden kann.

Datenebene

Die Datenebene, auch als Forwarding Plane bekannt, ermöglicht das Senden von Daten im Netzwerk über Geräte wie Router und Switches. Datenebenen verwenden Sidecar-Proxys, um den Nachrichtenaustausch zwischen Diensten und wichtigen Funktionen wie Unterbrechung der Verbindung und Erneut versuchen zu verwalten. Auf der Datenebene werden auch wichtige Funktionen wie Lastverteilung, Diensterkennung und Routing ausgeführt.

Service Mesh versus API Gateway

Neben der Datenebene und der Steuerungsebene ist das API Gateway (Application Protocol Interfaces) ein weiterer wichtiger Bestandteil der Microservices-Architektur, der eng mit der Service-Mesh-Funktionalität verbunden ist.

APIs sind Protokolle, die es Software-Anwendungen ermöglichen, zu kommunizieren und Daten auszutauschen. API-Gateways sind Tools, die als Vermittler zwischen API-Clients fungieren – z. B. der beliebten REST-API, die Entwicklern beim Erstellen von Anwendungen hilft – und Backend-Diensten, die sich auf einem Server befinden.

API Gateways und Service Meshes sind sich insofern ähnlich, als sie beide eine effizientere Anwendungenentwicklung ermöglichen. Während jedoch ein API-Gateway den Zugriff auf APIs steuert, verbindet ein Service-Mesh Microservices innerhalb der Anwendung. Service-Meshes und API Gateways werden häufig gemeinsam bereitgestellt, um die Flexibilität und Observability in einem Anwendungsentwicklungs-Ökosystem zu erhöhen.

Vorteile eines Service Mesh

Service Meshes und die von ihnen ermöglichte Microservices-Architektur bieten einem Unternehmen viele entscheidende Vorteile. Hier sind ein paar der häufigsten.

Observability

Ein Service Mesh bietet integrierte Observability, ein tieferes Verständnis des Zustands eines komplexen Systems, für eine gesamte Microservices-Architektur. Auf diese Weise können Entwickler wichtige Metriken wie Abhängigkeiten, Latenz und Fehlerraten überwachen, die für das Verständnis der Funktionsweise einer App wichtig sind.

Observability hilft auch bei der Fehlerbehebung, Leistungsoptimierung, Telemetrie (Aufzeichnung des Systemverhaltens) und Debugging, indem sie Entwicklern einen vollständigen und ungehinderten Einblick in die internen Abläufe eines Microservice-Ökosystems bietet.

Steuerung

Damit Apps ordnungsgemäß funktionieren, müssen Entwickler und Anwendungsadministratoren kontrollieren, wie Dienste innerhalb der App miteinander kommunizieren. Ein Service Mesh erweitert die Governance-Funktionen für Unternehmen, die Microservice-Architekturen bereitstellen – zum Beispiel die Art und Weise, wie Teams Sicherheits- und Compliance-Anforderungen in stark regulierten Sektoren durchsetzen.

Darüber hinaus bieten Service Meshes dedizierte Infrastrukturschichten, die speziell für die Anforderungen der Service-to-Service-Kommunikation mit Anwendungen geeignet sind – Anwendungen, die auf mehr als einem verbundenen Computer gleichzeitig ausgeführt werden.

Sicherheit

Service Meshes tragen durch Funktionen wie Mutual-Transport-Layer-Security-(mTLS-)Verschlüsselung und Authentifizierung zur sicheren Kommunikation zwischen Diensten bei. Die mTLS-Authentifizierung trägt dazu bei, dass der Datenverkehr in einer Anwendung in beiden Richtungen zwischen Client und Server sicher und vertrauenswürdig ist.

mTLS gewährleistet auch Datenvertraulichkeit, indem es die Informationen verschlüsselt, die über eine Service-to-Service-Kommunikation gesendet werden. Es ermöglicht Administratoren, Autorisierungsrichtlinien wie den Zugriff auf bestimmte Endpunkte durchzusetzen, ein Prozess, der als Endpunktsicherheit bezeichnet wird.

Serviceerkennung

Service Meshes verfügen über die sogenannte automatisierte Serviceerkennung, die den Arbeitsaufwand für die Verwaltung von Service-Endpunkten reduziert, der den Ort im Service Mesh bezeichnet, an dem ein bestimmter Microservice erreicht werden kann. Eine Service Registry ermöglicht es, dass Services automatisch finden und miteinander kommunizieren, unabhängig davon, wo sie sich befinden, sodass Entwickler neue Services schnell und einfach bereitstellen können.

Lastausgleich

Load Balancing, die Verteilung des Netzwerkverkehrs auf mehrere Server zur Optimierung der App-Leistung, ist eine wichtige Funktion von Service Meshes. Mithilfe von Algorithmen hilft das Service Mesh, die Workload zwischen den Knoten auszugleichen, Ressourcen zu optimieren und allgemein die Hochverfügbarkeit einer Anwendung sicherzustellen.

Traffic Management und Traffic Splitting

Service Meshes bieten erweiterte Funktionen für das Traffic Management und die Traffic Splitting, um den Informations- und Ressourcenfluss in einem Netzwerk zu optimieren. Obwohl sowohl Traffic Management als auch Traffic Splitting zur Kontrolle des Informationsflusses in einem Netzwerk verwendet werden, gibt es einen wichtigen Unterschied, den Sie beachten sollten. Das Verkehrsmanagement konzentriert sich auf langfristige, systemische Änderungen an der Infrastruktur, um den Informationsfluss zu verbessern, während das Traffic Splitting die gewichtsbasierte Verteilung des Datenverkehrs auf Backends oder Dienstversionen umfasst.

Service Meshes bieten eine feingranulare, hochspezifische Kontrolle über Routing und Verkehrsverhalten und ermöglichen so reibungslosere Übergänge, wenn eine Anwendung auf eine neuere Softwareversion aktualisiert wird. Zum Beispiel wird in der weit verbreiteten Canary-Bereitstellung eine neue Version einer App nur für eine kleine Gruppe von Benutzern veröffentlicht, um Funktionen und Leistung zu testen, bevor sie allen anderen zur Verfügung gestellt wird.

Die Wahl der richtigen Service-Mesh-Lösung

Der globale Markt für Service-Mesh-Anbieter ist bereits stark und wächst schnell. Laut einer aktuellen Umfrage wurde es im Jahr 2023 auf 0,22 Mrd. USD geschätzt und soll bis 2032 auf 5,05 Mrd. USD anwachsen, was einer durchschnittlichen jährlichen Wachstumsrate (CAGR) von 41,3 % entspricht.2

In einer Branche, die so rasant wächst, kann die Auswahl der richtigen Service-Mesh-Lösung eine Herausforderung sein. Zu den wichtigsten Faktoren, die berücksichtigt werden müssen, gehören Kosten, einfache Implementierung, Kompatibilität mit bestehenden Technologien, Sicherheit, Leistung und Support.

Hier sind 5 der beliebtesten verfügbaren Service-Mesh-Lösungen und ein kurzer Überblick darüber, was sie einzigartig macht.

Istio

Das beliebteste verfügbare Service Mesh ist Istio. Dank seiner großen Auswahl an Funktionen ist es sowohl hochgradig anpassungsfähig als auch gut für Workload auf Unternehmensebene geeignet. Istio ist bekannt für seine fortschrittlichen Funktionen zur Verwaltung des Datenverkehrs, seine Sicherheitsfunktionen und seine Erweiterbarkeit, die durch sein großes Ökosystem von Mitwirkenden noch verbessert wird.

Wie einige andere Service-Mesh-Angebote ist Istio ein Open-Source-Projekt, was bedeutet, dass es durch offene Zusammenarbeit entwickelt und gepflegt und für jedermann nutzbar gemacht wurde. Es funktioniert gut mit Kubernetes und vielen anderen Service-Mesh-nahen Technologien.

Linkerd

Linkerd ist leichter und einfacher als Istio und ist eine einfache Service-Mesh-Lösung, die die Leistung verbessert und gleichzeitig geringe Latenz beibehält. Linkerd verfügt über alle grundlegenden Funktionen, die Unternehmen von einem Service Mesh erwarten, einschließlich Load Balancing, Service Discovery, Verschlüsselung und mehr. Wie Istio ist auch Linkerd Open Source.  

NGINX Service Mesh

NGINX ist umfassender als die meisten anderen Service Meshes. Es funktioniert sowohl als Webserver als auch als Reverse-Proxy, was bedeutet, dass es eine größere Bandbreite an Protokollen anbieten kann als andere Service Meshes. NGINX wurde für maximale Leistung und Stabilität entwickelt und wird von vielen stark frequentierten Websites verwendet. Wie Linkerd, Istio und andere Service-Mesh-Lösungen ist es Open Source.

Consul

Consul wurde vom beliebten, cloudbasierten Infrastrukturunternehmen HashiCorp entwickelt und ist ein Multi-Cloud-Service-Mesh, das viele der gleichen Funktionen wie andere beliebte Service-Meshes bietet. Consul ist eine der flexibelsten Service-Mesh-Lösungen auf dem Markt und kann auf vielen verschiedenen Betriebssystemen (OS) eingesetzt werden, darunter Windows, Linux, macOS, FreeBSD und Solaris. Consul ist ebenfalls Open Source und vor allem für sein beliebtes Prometheus-Plug-In bekannt, das die Überwachungsfunktionen erweitert.

AWS-App-Mesh

AWS App Mesh wurde speziell für die Cloud-Bereitstellung von Amazon Web Services (AWS) entwickelt und ist ein Service Mesh mit vielen der gleichen Funktionen wie Linkerd, Istio und andere, einschließlich verbesserter Sicherheit, Verkehrsmanagement und Observability. AWS ist jedoch nicht flexibel und wird nur für Unternehmen als gut geeignet angesehen, die bereits in die AWS-Architektur integriert sind.

Weiterführende Lösungen
IBM Enterprise Application Service für Java

Ein vollständig verwalteter, mandantenfähiger Service für die Entwicklung und Bereitstellung von Java-Anwendungen.

Java-Apps erkunden
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Services für die Entwicklung von Unternehmensanwendungen

Die Entwicklung von Cloud-Anwendungen bedeutet: einmal erstellen, schnell iterieren und überall bereitstellen.

Services für die Anwendungsentwicklung
Machen Sie den nächsten Schritt

IBM Cloud Application Development Consulting Services bieten fachkundige Beratung und innovative Lösungen zur Optimierung Ihrer Cloud-Strategie. Arbeiten Sie mit den Cloud- und Entwicklungsexperten von IBM zusammen, um Ihre Anwendungen zu modernisieren, skalieren und beschleunigen und so transformative Ergebnisse für Ihr Unternehmen zu erzielen.

Mehr zu Services zur Anwendungsentwicklung Erste kostenlose Schritte beim Erstellen auf IBM Cloud
Fußnoten

Service Mesh As The Bridge To App Modernization, Forbes, März 2023

2 Service Mesh Market Report, Business Research Insights, Oktober 2024