Coding Grundlagen Einfach erklärt

Blue-Green Deployment vs. Rolling Update

Titelbild Blue-Green Deployment vs. Rolling Updates

Mit einem Deployment stellst du deine entwickelte Anwendung für Endnutzer*innen zur Verfügung. Bei diesem Prozess wird deine Software von der Entwicklungsumgebung auf einen Live-Server oder ein Endgerät übertragen und installiert.

Dir stehen dafür unterschiedliche Deployment-Strategien zur Verfügung, wie zum Beispiel Blue-Green Deployment oder Rolling Update.

Ziel einer Deployment-Strategie ist es, neue Softwareversionen mit minimalen bis keinen Ausfallzeiten sicher auszurollen.

Blue-Green Deployment (Blau-Grün-Bereitstellung)

Bei dieser Deployment-Strategie verwendest du nahezu identische Produktionsumgebungen:

  • Blaue Umgebung: Die aktuelle Softwareversion.
  • Grüne Umgebung: Die neue Softwareversion.

Vorgehensweise

  • Deine aktuelle Softwareversion läuft in der blauen Umgebung, die aktiv für deine Endnutzer*innen ist. Du kannst hierfür zum Beispiel Docker Container nutzen.
  • Du bringst deine neue Softwareversion in die grüne Umgebung, die zunächst inaktiv für deine Endnutzer*innen ist. In diesem Schritt wird das Docker Image mit der neuen Softwareversion verwendet, um Docker Container hochzufahren.
  • In der grünen Umgebung testest du die Anwendung gründlich, bis du mit dem Ergebnis zufrieden bist.
  • Sobald alles bereit ist, aktivierst du die grüne Umgebung und deaktivierst die blaue. Mittels Load Balancer wird der Traffic von der blauen auf die grüne Umgebung umgeleitet, sodass alle Endnutzer*innen die neue Version verwenden.
  • Sollte es während des Rollouts zu Problemen kommen, aktivierst du die blaue Umgebung und deaktivierst die grüne. Ein weiteres Deployment ist für diese Aktivierung nicht notwendig.

Vorteile

  • Null Ausfallzeiten: Die Umschaltung erfolgt nahtlos.
  • Einfache Rückrollmöglichkeiten: Bei Problemen kannst du schnell zur blauen Umgebung zurückkehren.

Nachteile

  • Höhere Infrastrukturkosten: Du benötigst doppelte Ressourcen.
  • Komplexe Datenbankverwaltung: Änderungen an der Datenbank müssen sorgfältig behandelt werden.

Rolling Update

Bei dieser Deployment-Strategie verwendest du nur eine Produktionsumgebung. Sobald du das Deployment startest, laufen die aktuelle und die neue Softwareversion parallel. Nach und nach wird die aktuelle Version durch die neuen ersetzt.

Vorgehensweise

  • Deine Anwendung muss vor dem Deployment umfassend getestet werden, etwa auf einer Testumgebung.
  • Du startest das Deployment und aktualisierst schrittweise Instanzen, zum Beispiel über Docker Container. In diesem Schritt wird das Docker Image mit der neuen Softwareversion verwendet, um Docker Container hochzufahren.
  • Deine Docker Container mit der alten Softwareversion werden nach und nach durch Docker Container mit der neuen Softwareversion abgelöst.
  • Sollte es während des Rollouts zu Problemen kommen, musst du ein Rollback auf die letzte funktionierende Version anstoßen. Der Deploymentprozess wird erneut ausgeführt.

Vorteile

  • Ressourcenschonend: Es werden keine zusätzlichen Umgebungen benötigt.
  • Flexibel: Ideal für kontinuierliche Integration in Microservices-Architekturen.

Nachteile

  • Mögliche Komplikationen durch gemischte Versionen: Deine Nutzer*innen können unterschiedliche Versionen sehen.
  • Langsamere Rollouts: Dein Deployment kann länger dauern, da es schrittweise erfolgt.

Anwendungsbeispiele

  • Blue-Green Deployment wird häufig in kritischen Anwendungen wie E-Commerce oder Finanzdienstleistungen eingesetzt, wo Ausfallzeiten vermieden werden müssen.
  • Rolling Updates sind ideal für Microservices-Architekturen, wo kontinuierliche Verfügbarkeit erforderlich ist.

Technische Details

Beide Strategien kannst du mit Tools wie Kubernetes oder CI/CD-Pipelines implementieren. Load Balancer spielen eine zentrale Rolle, um den Traffic effizient zwischen den verschiedenen Versionen zu steuern. Somit stellst du auch eine reibungslose User Experience sicher.

Monitoring und Rollback

  • Überwache während des Deployments den Zustand der neuen Version, insbesondere bei Rolling Updates.
  • Definiere einen klaren Rollback-Prozess, damit du bei Problemen schnell zur letzten stabilen Version zurückkehren kannst.

Zusammenfassung der Unterschiede

MerkmaleBlue-Green DeploymentRolling Update
Anzahl der UmgebungenZwei (blau und grün)Eine
AusfallzeitenKeine Minimal
RollbackSchnell und einfachKomplexer
KostenHöher (doppelte Infrastruktur)Geringer

Welche Strategie für dich in Frage kommt, hängt von deinen Anforderungen ab. Im E-Commerce Umfeld, mit Microservices-Architekturen, habe ich tatsächlich schon beide Strategien erlebt.

Quelle Hintergrund des Titelbilds: kostenlose Hintergrundfotos von .pngtree.com

Annika

Ich bin IT-Quereinsteigerin nach einem Coding-Bootcamp. Neben meiner Tätigkeit als Software Engineer bei REWE digital, setze ich mich u.a. in meiner Mentorinnen-Rolle für die Vernetzung von Frauen im IT-Umfeld ein. Zusätzlich betreibe ich coding.anni, um anderen den (Quer-) Einstieg zu erleichtern. Durch das Teilen meiner Erfahrungen und praktischen Tipps, will ich die Vielfalt in der IT vorantreiben.

Was dir auch gefallen könnte...

WordPress Cookie Hinweis von Real Cookie Banner