<EbeneX/>
Architektur DevOps · Updated 11. März 2026

Blue-Green Deployment

Definition

Eine Deployment-Strategie mit zwei identischen Produktionsumgebungen – schneller Wechsel zwischen Versionen ohne Downtime und einfaches Rollback.

Fortgeschritten 3 Min. Lesezeit EN: Blue-Green Deployment

Einfach erklärt

Blue-Green Deployment nutzt zwei identische Produktionsumgebungen. Eine ist live (Blue), die andere wird vorbereitet (Green). Bei einem Release wird der Traffic umgeschaltet – in Sekunden, ohne Downtime.

Der Ablauf:

Zustand 1: Blue ist live
┌─────────────┐     ┌─────────────┐
│   BLUE      │ ←── │   Router    │ ←── Traffic
│   v1.0      │     └─────────────┘
│   (live)    │
└─────────────┘
┌─────────────┐
│   GREEN     │     (idle)
│   v1.0      │
└─────────────┘

Zustand 2: Deploy auf Green
┌─────────────┐     ┌─────────────┐
│   BLUE      │ ←── │   Router    │ ←── Traffic
│   v1.0      │     └─────────────┘
│   (live)    │
└─────────────┘
┌─────────────┐
│   GREEN     │     ← Deploy v2.0, Tests
│   v2.0      │
└─────────────┘

Zustand 3: Switch zu Green
┌─────────────┐
│   BLUE      │     (standby für Rollback)
│   v1.0      │
└─────────────┘
┌─────────────┐     ┌─────────────┐
│   GREEN     │ ←── │   Router    │ ←── Traffic
│   v2.0      │     └─────────────┘
│   (live)    │
└─────────────┘

Technischer Deep Dive

Kubernetes Blue-Green

# Blue Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-blue
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
      version: blue
  template:
    metadata:
      labels:
        app: myapp
        version: blue
    spec:
      containers:
        - name: app
          image: myapp:1.0
---
# Green Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-green
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
      version: green
  template:
    metadata:
      labels:
        app: myapp
        version: green
    spec:
      containers:
        - name: app
          image: myapp:2.0
---
# Service (Switch durch Selector-Änderung)
apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  selector:
    app: myapp
    version: blue  # Ändern zu "green" für Switch
  ports:
    - port: 80

Switch durchführen:

kubectl patch service myapp -p '{"spec":{"selector":{"version":"green"}}}'

Nginx Blue-Green

upstream blue {
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
}

upstream green {
    server 10.0.0.3:8080;
    server 10.0.0.4:8080;
}

# Aktive Umgebung (ändern für Switch)
upstream active {
    server 10.0.0.1:8080;  # Blue
    server 10.0.0.2:8080;
}

server {
    location / {
        proxy_pass http://active;
    }
}

AWS mit Terraform

resource "aws_lb_listener_rule" "blue_green" {
  listener_arn = aws_lb_listener.main.arn
  priority     = 100

  action {
    type             = "forward"
    target_group_arn = var.active_color == "blue" ? 
                       aws_lb_target_group.blue.arn : 
                       aws_lb_target_group.green.arn
  }

  condition {
    path_pattern {
      values = ["/*"]
    }
  }
}

# Switch: terraform apply -var="active_color=green"

Datenbank-Strategien

StrategieBeschreibungKomplexität
Shared DBBeide Versionen nutzen dieselbe DBNiedrig
Backward-Compatible MigrationsNeue Spalten optional, alte bleibenMittel
Expand-ContractErst erweitern, dann alte Spalten entfernenHoch
Separate DBsDaten-Sync zwischen Blue und GreenSehr hoch

Rollback

# Problem erkannt? Sofort zurück zu Blue:
kubectl patch service myapp -p '{"spec":{"selector":{"version":"blue"}}}'

# Oder mit AWS:
aws elbv2 modify-listener --listener-arn $ARN \
  --default-actions Type=forward,TargetGroupArn=$BLUE_TG

Rollback in Sekunden – kein Re-Deployment nötig.

Blue-Green Deployment ist wie zwei identische Bühnen im Theater: Während auf der blauen Bühne die Show läuft, wird die grüne vorbereitet. Bei Showwechsel dreht sich die Bühne – das Publikum merkt nichts vom Umbau.

Zwei identische Produktionsumgebungen (Blue und Green)

Traffic-Switch in Sekunden, Zero Downtime

Sofortiges Rollback durch Zurückschalten

Zero-Downtime Releases

Neue Version deployen ohne Unterbrechung

Schnelles Rollback

Bei Problemen sofort zur alten Version zurück

Disaster Recovery

Zweite Umgebung als Backup

Sicherheit

Alte Version für Audits verfügbar halten

Was ist der Unterschied zu Canary Deployment?

Blue-Green: 100% Traffic-Switch auf einmal. Canary: Gradueller Rollout (1% → 10% → 50% → 100%). Blue-Green ist schneller, Canary ist vorsichtiger.

Brauche ich doppelte Infrastruktur?

Ja, aber nicht permanent. Green kann nach erfolgreichem Switch heruntergefahren oder für das nächste Release vorbereitet werden. Cloud macht das flexibel.

Was passiert mit laufenden Requests beim Switch?

Bestehende Connections bleiben auf der alten Umgebung bis sie abgeschlossen sind (Connection Draining). Neue Requests gehen zur neuen Umgebung.

Wie handle ich Datenbank-Migrationen?

Schwierigster Teil! Backward-compatible Migrations, Feature Flags, oder kurze Maintenance-Fenster. Beide Versionen müssen mit dem DB-Schema arbeiten können.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.