Wie funktioniert die Implementierung von Blue-Green-Deployments in Kombination mit Canary-Releases auf Kubernetes-Ebene?

Die Kombination aus Blue-Green- und Canary-Deployments auf Kubernetes wird primär über die Steuerung des Traffic-Managements auf Layer 7 realisiert. Während das Blue-Green-Prinzip zwei identische Umgebungen vorsieht, erlaubt der Canary-Ansatz eine graduelle Verschiebung des Nutzeraufkommens, um Risiken zu minimieren.

In der Praxis implementieren wir dies durch die Trennung von Deployment-Ressourcen und Service-Definitionen. Wir betreiben zwei separate Deployments (Blue für die stabile Version, Green für die neue Version), die über unterschiedliche Label gesteuert werden. Die eigentliche Steuerung erfolgt nicht über den Standard-Kubernetes-Service, da dieser lediglich ein Random-Round-Robin-Verfahren beherrscht, sondern über einen Ingress-Controller oder ein Service Mesh wie Istio.

PhaseAktionTraffic-Verteilung (Blue/Green)Ziel
VorbereitungDeployment von Green100% / 0%Infrastruktur-Validierung
Canary-StartTraffic-Split via VirtualService95% / 5%Fehlererkennung bei Realnutzern
SkalierungGraduelle Erhöhung50% / 50%Lasttest der neuen Version
AbschlussFull Switch0% / 100%Vollständiger Rollout
CleanupLöschen von Blue0% / 100%Ressourcenfreigabe

Für die präzise Steuerung nutzen wir Custom Resource Definitions (CRDs) wie den VirtualService in Istio. Hier definieren wir Weights, die bestimmen, welcher Prozentsatz der Anfragen an welches Subset geleitet wird. Die Überwachung erfolgt über Prometheus und Grafana, wobei automatisierte Rollbacks ausgelöst werden, sobald die Error-Rate der Green-Umgebung einen definierten Schwellenwert überschreitet. Diese Architektur ist ein Kernbestandteil moderner Cloud & Digital Workplace Strategien, um die Verfügbarkeit bei kontinuierlichen Releases zu sichern.

Die technische Umsetzung erfordert eine strikte Trennung von State und Application. Datenbankmigrationen müssen abwärtskompatibel gestaltet sein, da beide Versionen zeitgleich auf dieselbe Datenquelle zugreifen.

Wir empfehlen den Verzicht auf reine Blue-Green-Switches bei hochfrequentierten Systemen. Die binäre Umschaltung birgt ein zu hohes Risiko für kaskadierende Fehler. Die Integration eines Service Mesh für ein echtes Canary-Routing ist die einzige professionelle Lösung, um die Mean Time to Recovery (MTTR) zu minimieren und die Stabilität der Produktion zu garantieren.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt