Microservices
Ein Architekturmuster, bei dem eine Anwendung aus vielen kleinen, unabhängigen Services besteht, die jeweils eine spezifische Aufgabe erfüllen.
Eine dedizierte Infrastrukturschicht, die die Kommunikation zwischen Microservices übernimmt – inklusive Load Balancing, Verschlüsselung, Observability und Traffic-Management.
In einer Microservices-Architektur kommunizieren Dutzende oder Hunderte Services miteinander. Jede Verbindung braucht Retry-Logik, Timeouts, Verschlüsselung und Monitoring. Diese Logik in jeden Service einzeln einzubauen ist fehleranfällig und aufwändig. Ein Service Mesh löst das, indem es diese Querschnittsaufgaben aus dem Anwendungscode herausnimmt und in eine eigene Infrastrukturschicht verlagert.
Das Kernprinzip ist das Sidecar-Pattern: Neben jedem Service-Container läuft ein kleiner Proxy-Container (meist Envoy). Dieser Proxy fängt allen ein- und ausgehenden Traffic ab und kümmert sich um Verschlüsselung, Load Balancing, Retries und Telemetrie – ohne dass der Service-Code angepasst werden muss.
Data Plane vs. Control Plane:
| Ebene | Aufgabe | Beispiel |
|---|---|---|
| Data Plane | Verarbeitet tatsächlichen Traffic | Envoy-Proxies |
| Control Plane | Konfiguriert und überwacht die Proxies | Istio Pilot |
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: llm-service
spec:
http:
- route:
- destination:
host: llm-service
subset: v2
weight: 10 # 10% Canary Traffic
- destination:
host: llm-service
subset: v1
weight: 90 Ein Service Mesh ist wie ein Postamt zwischen Abteilungen eines Unternehmens: Jede Abteilung gibt ihre Briefe ab, und das Postamt kümmert sich um Zustellung, Nachverfolgung, Verschlüsselung und Fehlermeldungen – ohne dass die Abteilungen selbst wissen müssen, wie das alles funktioniert.
Übernimmt Netzwerkkommunikation zwischen Services als separate Schicht
Sidecar-Proxy-Muster: Jeder Service bekommt einen eigenen Proxy (z. B. Envoy)
Bietet Observability, mTLS-Verschlüsselung, Retries und Circuit Breaking out-of-the-box
Zero-Trust-Netzwerk
Automatische mTLS-Verschlüsselung zwischen allen Services ohne Code-Änderungen
Traffic Management
Canary Deployments und A/B-Tests auf Netzwerkebene steuern
Debugging verteilter Systeme
Distributed Tracing über alle Service-Calls hinweg ohne Instrumentierung im Code
Erst ab einer gewissen Komplexität sinnvoll: viele Services, strenge Sicherheitsanforderungen oder Debugging-Probleme in verteilten Systemen. Für kleine Setups mit 3-5 Services ist der Overhead meist nicht gerechtfertigt.
Ein API Gateway sitzt am Rand (Nord-Süd-Traffic: extern zu intern), ein Service Mesh regelt die interne Kommunikation (Ost-West-Traffic: Service zu Service). Beide ergänzen sich.
Ein kleiner Proxy-Container (meist Envoy), der neben jedem Service-Container läuft und dessen gesamten Netzwerkverkehr abfängt. Der Service selbst merkt davon nichts – er kommuniziert wie gewohnt, der Sidecar übernimmt den Rest.