Jump to section

Was versteht man unter Blue/Green Deployment?

URL kopieren

Blue/Green Deployment (Blau/Grün-Bereitstellung) ist ein Anwendungsversionsmodell, das den Nutzerverkehr schrittweise von einer früheren Version einer App oder eines Microservices auf eine nahezu identische neue Version überträgt, die beide in der Produktivumgebung ausgeführt werden. 

Die alte Version kann als „blaue Umgebung" und die neue als „grüne Umgebung" bezeichnet werden. Sobald der produktionsrelevante Datenverkehr vollständig von Blau nach Grün übertragen wurde, kann Blau im Falle eines Rollbacks als Standby verwendet oder aus der Produktivumgebung entfernt und aktualisiert werden, um zur Vorlage zu werden, auf der das nächste Update aufbaut.

Dieses kontinuierliche Bereitstellungsmodell (Continuous Deployment, CD) hat jedoch seine Nachteile. Nicht alle Umgebungen besitzen die Verfügbarkeitsanforderungen oder Ressourcen, um CI/CD-Prozesse wie Blau/Grün ordnungsgemäß auszuführen. Viele Apps entwickeln sich jedoch in Richtung einer solchen kontinuierlichen Bereitstellung, ermöglicht durch die stetige digitale Transformation der Unternehmen, die sie unterstützen.

 

Blue green deployment model

Man kann sich das folgendermaßen vorstellen: Sie haben eine einfache cloudnative App entwickelt – eine Mobil-App, bei der Nutzer Punkte sammeln, indem sie auf mehrfarbige Luftballons tippen, die über den Bildschirm fliegen. Das Backend des Spiels wird von mehreren containerbasierten Microservices unterstützt, die Spielergebnisse, Punkte, Mechanik, Kommunikation und Spieler-IDs verwalten.

Hunderte von Nutzern spielen nach der Erstveröffentlichung das Spiel. Sie führen jede Minute Tausende von Transaktionen durch. Ihr DevOps-Team hat Sie ermutigt, frühzeitig und häufig Updates herauszubringen. Aus diesem Grund veröffentlichen Sie ein kleines Update für den Mechanik-Microservice, das Größe und Geschwindigkeit des roten Ballons erhöht.

Anstatt bis Mitternacht zu warten, um das Update in die Produktivumgebung zu übertragen (wenn die geringste Anzahl von Nutzern aktiv ist), verwenden Sie ein Blue/Green Deployment-Modell, um die App direkt während der Spitzenlast zu aktualisieren. Und Sie tun dies ohne Ausfallzeiten. 

Dies gelingt Ihnen, weil Sie den Mechanik-Microservice in der Produktivumgebung (blau) in einen identischen, aber separaten Container (grün) kopiert haben. Nachdem Sie in der App Größe und Geschwindigkeit der roten Luftballons in der grünen Umgebung erhöhten, durchlief das Update die Q/A und das Staging (möglicherweise automatisiert durch einen Open Source-Belastungstest wie Jenkins), bevor es über die aktive blaue Umgebung in die Produktivumgebung verschoben wurde. 

Das Operations-Team kann einen Load Balancer verwenden, um die nächste Transaktion aller Nutzer von Blau nach Grün umzuleiten. Sobald der gesamte produktionsrelevante Datenverkehr durch die grüne Umgebung gefiltert wurde, wird die blaue Umgebung offline geschaltet. Blau kann entweder als Disaster-Recovery-Option im Standby-Modus laufen oder den Container für das nächste Update bilden.

Kubernetes ist eine natürliche Ergänzung zu allen Elementen, die zum Blau/Grün-Bereitstellungsprozess gehören, darunter cloudnative Apps, Microservices, Container, Continuous Integration, Continuous Delivery, Continuous Deployment, SRE und DevOps. Als Open Source-Plattform, die Operationen für Linux®-Container automatisiert, hilft Kubernetes nicht nur bei der Orchestrierung der Container, in denen die Microservices von cloudnativen Apps enthalten sind, sondern Kubernetes wird auch von einer Sammlung von Architekturmustern (Patterns) unterstützt. Diese können die Entwickler wiederverwenden, statt die Anwendungsarchitekturen von Grund auf neu zu erstellen.

Eines dieser Kubernetes Patterns ist als Declarative Deployment bekannt. Da Microservices von Natur aus klein sind, können sie sehr schnell vermehrt werden. Das Pattern „Declarative Deployment" reduziert den manuellen Aufwand für die Bereitstellung neuer Pods – der kleinsten und einfachsten Einheit in der Kubernetes-Architektur.

Weil wir die führende Kubernetes-Unternehmensplattform – Red Hat® OpenShift – mit CI/CD-Funktionen im Kern gehärtet haben. Wir haben bereits schrittweise die Eingabeaufforderungen und Argumente für die Einführung von Blue/Green Deployments in Ihrer Red Hat OpenShift Umgebung dokumentiert.

Und wenn Sie die Kubernetes-Unternehmensplattform als Open Source-Lösung beibehalten, behalten Sie die Kontrolle über die gesamte Plattform und aller abhängigen Prozesse, sodass Ihre Anwendungen und Services einfach funktionieren – unabhängig davon, wo sie sich befinden oder was sie unterstützt.

Nur zu: Sie können den Quellcode unserer Technologien nach Lust und Laune prüfen, ändern und verbessern. Über 90 % aller Fortune 500 Unternehmen* vertrauen bei ihrer Infrastruktur auf die Produkte und Technologien von Red Hat, die auch Ihnen ungeahnte Möglichkeiten bieten.

Weiterlesen

ARTIKEL

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Apps eine Rolle spielen.

ARTIKEL

Was ist CI/CD?

CI/CD sorgt für eine kontinuierliche Automatisierung und Überwachung über alle Phasen des App-Lifecycles hinweg, von der Integration und Tests bis hin zur Bereitstellung und Implementierung.

ARTIKEL

Was ist ein DevOps-Ingenieur?

DevOps-Ingenieure besitzen verschiedene besondere Fähigkeiten und Kenntnisse, die für eine bessere Zusammenarbeit, mehr Innovationen und kulturelle Verschiebungen innerhalb einer Organisation sorgen können. 

Mehr über DevOps erfahren

Produkte

Ein fokussierter Intensiv-Workshop mit Red Hat Experten, bei dem Sie lernen, eine agile Methodik und Open Source-Tools zu verwenden, um die geschäftlichen Probleme Ihres Unternehmens anzugehen.

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Ressourcen