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.

CI/CD ist Stufe 1 von 6 Stufen der digitalen Transformation.

 

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.

Weitere Informationen finden Sie in Kapitel 3 dieses E-Books

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
Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Was ist Beobachtbarkeit? Vorteile für DevOps-Einsatz

Beobachtbarkeit (Observability) beschreibt die Fähigkeit, den Zustand von IT-Systemen oder Anwendungen mithilfe von Output, Logs und Metriken zu überwachen.

Was ist GitOps? | Überblick - Vergleich zu DevOps und CI/CD

GitOps ist ein Konzept zur Implementierung von CI/CD für cloudnative Anwendungen. Es nutzt Git als „Single Source of Truth“ für eine deklarative Infrastruktur.

Was ist eine CI/CD-Pipeline? Continuous Integration and Delivery

CI/CD-Pipelines optimieren die Entwicklung und Bereitstellung von Software während des gesamten Lifecycles mithilfe von Automatisierung. Entwickeln Sie Software schneller und sicherer mit CICD.

Ressourcen zu DevOps