Zum Hauptinhalt springen

Blogs

Erkundung von Kubernetes-Bereitstellungsstrategien

Kubernetes als de facto Orchestrator containerisierter Anwendungen bietet zahlreiche Deployment-Strategien zur Sicherstellung hoher Verfügbarkeit, Fehler-Toleranz sowie reibungsloser Anwendungs-Updates. Diese Strategien zu verstehen ist unerlässlich für das Erhalten robuster als auch widerstandsfähiger Services. 

1. Rolling-Update-Strategien

Beschreibung: Als die Standard-Strategie Kubernetes' updatet das Rolling-Update stufenweise Pod-Instanzen und bringt sie auf den neuen Stand.

Wie funktioniert's: Neue Pods werden fortschreitend "ausgerollt" und die neuen dann terminiert. Währenddessen bleibt die Anwendung aktiv.

Nutzungs-Fall: Ideal für Produktionsumgebungen, bei welchen keinerlei Downtime hinnehmbar ist.

 

2. Blue/Green-Deployment

Beschreibung: Diese Methode reduziert das Risiko beim Deployment durch das Laufenlassen zwei identischer Umgebungen, wovon nur eine den Produktions-Traffic bedient. 

Wie funktioniert's: Die "blaue" Umgebung stellt das derzeitige Deployment dar, während die "grüne" die neue Version bildet. Sobald "Grün" hier fertig getestet und bereit zum Einsatz ist, wird der Verkehr einfach umgeleitet.

Nutzungs-Fall: Besonders geeignet für kritische Anwendungen, bei denen das Testen der neuen Version notwendig ist, bevor diese live-geschaltet werden kann.

 

3. Canary-Deployment

Beschreibung: Canary-Deployments rollt Updates nur für eine kleine Untergruppe an Nutzern aus, bevor diese dann graduell allen zugänglich gemacht wird.

Wie funktioniert's: Die Canary-Version wird parallel zur stabilen Produktions-Version veröffentlicht und die Produktion dann Stück für Stück dahinverlagert.  

Nutzungs-Fall: Anwendungen mit Nutzer-Fokus und dem damit verbundenen wichtigen Feedback eignen sich hierfür am besten.

 

4. A/B-Testing-Deployment

Beschreibung: Ähnelt dem Canary-Deployment aber legt den Fokus hier auf Experimentierung, um die Nutzer-Reaktion einzuschätzen.

Wie funktioniert's: Der Traffic wird zwischen zwei oder mehr Versionen ausgelagert, basierend auf etwaigen Kriterien wie zum Beispiel der Nutzer-Demografik.

Nutzungs-Fall: Für Anwendungen mit verschiedenen Features, welche unter verschiedenen Nutzersegmenten getestet werden müssen. 

 

5. Schatten-Deployment

Beschreibung: Schatten-Deployments involvieren das Einsetzen neuer Versionen zusammen mit der existierenden, ohne dass dabei Traffic von den Nutzern abgeleitet wird.

Wie funktioniert's: Der echte Traffic wird auf die neue Version gespiegelt. Dieser Ansatz eignet sich für's Testen von produktionsähnlichen Bedingungen, ohne dass dabei die Endnutzer etwas davon mitbekommen.

Nutzungs-Fall: Vorallem für das Testen von Performance sowie Lastentoleranz in echten Umgebungen nützlich. 

 

6. Stateful-Anwendungs-Deployment

Beschreibung: StatefulSets bilden Kubernetes-Objekte für Anwendungen, bei welchen Daten-Persistenz wie auch einzigartige Identität von höchster Wichtigkeit sind. 

Wie funktioniert's: Jeder Pod im StatefulSet hat einen einzigartigen, persistenten Identifikator und erhält so den Zustand während der Neueinplanung.

Nutzungs-Fall: Für Datenbanken und andere Stateful-Anwendungen ideal.

 

Zusammengefasst lässt sich sagen

Das Wählen sowie Verstehen der richtigen Deployment-Strategie in Kubernetes ist nicht zu ignorieren, wenn Ihr Anwendungs-Lifecycle-Management robust sein soll. Die gewählte Methode sollte den Anwendungsanforderungen und den operationstechnischen Fähigkeiten des Teams zusammenpassen.