Das Deployment einer neuen Version bedeutete früher ein Wartungsfenster, Benachrichtigung der Nutzer und Hoffen auf das Beste. Blue-Green Deployment eliminiert Downtime: zwei identische Umgebungen, ein Load-Balancer-Switch und sofortiges Rollback. Keine nächtlichen Deployments mehr.
Das Prinzip¶
Zwei Umgebungen: Blue (aktuelle Produktion) und Green (neue Version). Deployment auf Green, testen, Router/LB auf Green umschalten. Blue bleibt als sofortiges Rollback verfügbar. Problem? In Sekunden zurück auf Blue wechseln.
Implementierung mit Nginx¶
# Blue-Green Deployment — Releases ohne Downtime
upstream app {
server green-server:8080;
# server blue-server:8080; # commented out
}
# nginx -s reload
Datenbankmigrationen¶
Die größte Herausforderung. Beide Versionen müssen mit derselben Datenbank funktionieren. Regeln: Spalten hinzufügen (nicht entfernen), abwärtskompatible Änderungen, Flyway/Liquibase für versionierte Migrationen. Destruktive Änderungen erst nach erfolgreichem Umschalten.
Mit Docker und Swarm¶
Docker Swarm Rolling Update ist effektiv Blue-Green auf Container-Ebene. docker service update --image myapp:2.0 ersetzt Instanzen schrittweise.
Zero Downtime ist erreichbar¶
Blue-Green Deployment erfordert Investitionen in Infrastruktur und Disziplin bei Datenbankmigrationen. Aber die Eliminierung von Downtime und sofortiges Rollback sind es wert.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns