Viele Leute interessieren sich sehr für das Konzept „DevOps“. Als ich mich mit einigen von ihnen zusammensetzte, entwickelte sich das Gespräch in viele interessante Richtungen.
Sie begannen, über Best Practices für die Bereitstellung, Rollbacks, Hot Deployments usw. zu sprechen.

Aber als die Sprache auf „Blue-Green Deployment“ kam, herrschte völlige Stille.
Das brachte mich auf die Idee, dem Rest der Welt mitzuteilen, dass Blue-Green Deployment trotz all der Microservices, der nativen Cloud und anderer Technologien keine Wunderwaffe ist, sondern ein nützliches Element.
Wie?
Nun, lesen Sie weiter.
Was verstehen wir unter Blue-Green Deployment?
Blue-Green Deployment ist ein Managementansatz für die Freigabe von Softwarecode.
Bei Blue-Green Deployments, die auch als A/B-Deployments bekannt sind, werden zwei identische Hardwareumgebungen exakt gleich konfiguriert.
Es ist immer nur eine der Umgebungen live, wobei die Live-Umgebung den gesamten Produktions-Traffic bedient. Wenn beispielsweise Blau gerade live ist, befindet sich Grün im Leerlauf und umgekehrt.
Blue-Green Deployments werden in der Regel für kundenorientierte Anwendungen und Anwendungen mit kritischen Uptime-Anforderungen eingesetzt. Der neue Code wird in die inaktive Umgebung geliefert, wo er vollständig getestet wird.
Wie wird das Risiko reduziert?
Die Automatisierung und kontinuierliche Bereitstellung auf jeder Produktionsebene ist ein heiliger Gral, und die Vermeidung von Ausfallzeiten und Risiken steht ganz oben auf der Prioritätenliste. Blue-Green Deployment bietet Ihnen einfache Möglichkeiten, diese Ziele zu erreichen, indem es Risiken eliminiert, die bei der Bereitstellung auftreten.
- Sie werden nie auf überraschende Fehler stoßen
Welche Daten geben Sie an, wenn Sie ein Online-Formular ausfüllen? Ihren Namen, Ihre Telefonnummer, Ihre Adresse, Ihre Straße und wahrscheinlich Ihre Bankdaten, wenn Sie einen Online-Kauf tätigen. Richtig?
Sie drücken den Button „Jetzt bezahlen“ und aktivieren das Kontrollkästchen „Spam-E-Mails erhalten“, aber leider konnte Ihre Bestellung nicht wie gewünscht bearbeitet werden. Wenn Sie Glück haben, erhalten Sie eine Fehlermeldung wie „Anwendung ist wegen Wartungsarbeiten offline“, und all Ihre Mühe und Zeit sind umsonst. Aber mit Blue-Green Deployment müssen Sie sich nie wieder um diesen Wartungsbildschirm kümmern.
Es gibt eine Liste von Artikeln, und mit einem Klick auf den nächsten können Sie das neue Menü sehen, das Sie hinzufügen. So verhindern Sie, dass Ihr Posteingang mit wütenden E-Mails über den Fehlerbildschirm überflutet wird.
- Testen der Produktionsumgebung
Es ist nicht nur wichtig, sondern auch unerlässlich, dass Ihre Pre-Production-Umgebung so nah wie möglich an Ihrer Produktionsumgebung ist. Mit Hilfe von Blue-Green Deployment ist diese Aufgabe leicht zu bewerkstelligen. Der Benutzer kann jede Anwendung testen, während sie vom Haupt-Traffic getrennt ist. Das Team hat sogar die Möglichkeit, den Test zu laden, wenn es dies wünscht.
- Stellt sicher, dass der Traffic nahtlos ist
Die Bedürfnisse und Wünsche der Kunden sind globaler denn je, und es gibt keine wirklich gute Zeit mehr für die Bereitstellung, insbesondere wenn Sie in einem Unternehmen arbeiten, in dem der Betrieb rund um die Uhr laufen muss. Wenn Sie eine kundenorientierte Anwendung haben, besteht die Möglichkeit, dass Ihre Kunden ihre Plattform auf eine andere Website verlagern, wenn sie nicht finden, was sie suchen. Dies bedeutet einen Rückgang des Umsatzes und des Geschäfts.
Blue-Green Deployment stellt sicher, dass Ihr Traffic nie aufhört. Der Kunde kann seine Bestellung problemlos und ohne Unterbrechung aufgeben. Das bedeutet, dass die Mitarbeiter in Übersee ihre Arbeit ohne Unterbrechung fortsetzen können, was den Unternehmen Geld spart.
- Einfache Wiederherstellung
Es kann vorkommen, dass Sie auf Bugs und Viren stoßen. Wir können entweder viel Geld für deren Behebung ausgeben oder sie unvermeidlich finden und beheben. Mit Hilfe von Blue-Green Deployment haben wir unsere ältere und stabilere Version unserer Anwendungen, die im Handumdrehen wieder online gehen kann, wodurch wir uns den Aufwand für ein Rollback einer Bereitstellung ersparen.

Wie funktioniert dieser Prozess?
Wie wir wissen, beinhaltet die Blue-Green-Deployment-Technik das Ausführen von zwei identischen Produktionsumgebungen, die auf die gleiche Weise konfiguriert sind. Nehmen wir daher an, dass sich die aktuelle Bereitstellung in der grünen Umgebung in der Version 2.3 befindet. Die nächste Bereitstellung würde in einer blauen Umgebung in der Version 2.4 erfolgen.
Die Umgebung würde dann getestet und evaluiert, bis bestätigt wird, dass sie stabil ist und reagiert. Sobald sie in Produktion ist, wird der Server umgeleitet und wird so zur neuen Produktionsumgebung, zu der die Benutzer geleitet werden.
Das gesamte Design dient dazu, schnelle Rollbacks zu ermöglichen, falls eine Bereitstellung fehlschlägt oder eine Qualitätssicherung nicht besteht. Wenn die Bereitstellung fehlschlägt oder kritische Fehler festgestellt werden, wird ein Rollback in die grüne Umgebung eingeleitet. Sobald die Fehler behoben sind, wird die Version erneut in der blauen Umgebung bereitgestellt und der Traffic wird zurückgeleitet, sobald sie stabil ist.
Bei der Bereitstellung der vorhergehenden Version, d. h. Version 2.5, würde die Bereitstellung in die grüne Umgebung wechseln und ausgiebig getestet und evaluiert werden. Der Traffic würde in die grüne Zone umgeleitet, sobald sie die Qualitätsprüfung bestanden hat.
Auf diese Weise werden sowohl die grüne als auch die blaue Umgebung regelmäßig zwischen Live-Versionen und Staging zur nächsten Version gewechselt.

Blue-Green Deployment hilft Ihren Drupal-Websites
Stellen wir uns vor, Sie haben eine Website mit Hilfe von Drupal erstellt und erhalten nun viel Traffic. Normalerweise folgen Sie für die Entwicklung, Aktualisierung und das Testen einer Website (ohne die Live-Integrität zu gefährden) diesen Schritten:
Entwicklung: Der Entwicklungsprozess beginnt damit, dass Entwickler in der lokalen Umgebung an neuen Funktionen, Fehlerbehebungen, Theming und Konfiguration arbeiten. Dies ermöglicht es, einfach zum vorherigen Entwicklungsstand zurückzukehren.
Testen: In der Regel ist diese Umgebung nicht für die Anzeige durch den Kunden verfügbar und dient zum Testen der Entwicklungsarbeit auf einem lateralen Host.
Staging: Diese Phase wird verwendet, um dem Kunden die Änderungen zur Genehmigung vorzustellen. QA (Qualitätssicherung) und UAT (Benutzerakzeptanztests) werden meistens in der Staging-Phase durchgeführt.
Produktion: Dies ist die Live-Site im Web, die für Besucher verfügbar ist. Sie enthält neue Funktionen, die sich als sicher erwiesen haben, um live zu gehen.
Wie Sie sehen, kann dieser Prozess langwierig und zeitaufwendig sein, und die Wartung und der Aufbau einer Website kann irritierend sein. Daher rettet Sie Blue-Green Deployment in solchen Zeiten.
Es würde nahezu keine Ausfallzeiten verursachen und einfache Rollback-Funktionen bieten. Die grundlegende Idee hinter Blue/Green Deployment ist es, den Traffic zwischen zwei identischen Umgebungen zu verschieben, die in verschiedenen Anwendungen unterschiedlich laufen.

Einige der Implementierungen für Ihre Drupal-Website
Blue-Green Deployment für Drupal-Websites mit Docker
Drupal-Deployments sind schwierig. Der Benutzer muss sicherstellen, dass der Code bereitgestellt, Composer-Abhängigkeiten abgerufen, Schema-Updates abgerufen, Schema-Updates durchgeführt und alle Caches geleert werden.
Und das alles, während die Website für die Benutzer erreichbar und reaktionsschnell bleibt. Aber was, wenn etwas schief geht und Sie ein Rollback durchführen möchten? Stoppen Sie dann die Bereitstellung? Nun, nein, Blue-Green Deployment ist die Antwort darauf.
Docker macht es einfach, Anwendungen zu erstellen, zu verschieben und auszuführen. Auf der EC2-Instanz gibt es immer zwei erhöhte Docker-Container von „Blau“ und „Grün“, und ngnix fungiert als Reverse-Proxy auf derselben Instanz. Der Benutzer kann eine Drupal-Site erstellen, die parallel in der „blauen“ und „grünen“ Umgebung läuft und beide von der MySQL-Datenbank bedient. Wir installieren Apache, PHP und Drupal in baseimage-docker.

Drupal mit Blue-Green Deployment in AWS Beanstalk
Mit Hilfe von ECS kann der Benutzer Task-Definitionen erstellen, die einer docker-compose.yml-Datei sehr ähnlich sind.
Eine Task-Definition ist eine Sammlung von Containern, von denen jeder einen Namen hat, das Docker-Image ausführt und die Möglichkeit hat, den Einstiegspunkt und den Befehl des Images zu überschreiben. Die Container-Definition ist auch der Ort, an dem der Benutzer Umgebungsvariablen, Portzuordnungen, zu mountende Volumes, Speicher- und CPU-Zuweisung definieren kann und ob der jeweilige Container als wesentlich betrachtet werden soll, was ECS mitteilt, ob die Aufgabe fehlerfrei ist oder neu gestartet werden muss.
Die Amazon Web Service-Lösung ermöglicht es dem Benutzer, die Bereitstellung und Skalierbarkeit von Webplattformen schnell und einfach zu verwalten. Die Bereitstellung hilft bei der Konfiguration einer hochverfügbaren Umgebung, die eine Drupal-Website nahtlos ausführt. Das Ausführen einer DB-Instanz, die sich außerhalb von Elastic Beanstalk befindet, entkoppelt die Datenbank vom Lebenszyklus der Umgebung und ermöglicht es dem Benutzer, sich von mehreren Umgebungen aus mit derselben Datenbank zu verbinden, eine Datenbank gegen eine andere auszutauschen und eine Blue-Green-Bereitstellung durchzuführen, ohne die Datenbank zu beeinträchtigen.
Das folgende Bild zeigt, wie Green-Blue Deployment in einer AWS-Umgebung funktioniert.

Einige der Best Practices für eine reibungslose Freigabe
Nachdem wir nun verstanden haben, wie Blue-Green Deployment funktioniert, wollen wir einige der Best Practices behandeln, die damit zusammenhängen:
Load Balancing
Load Balancing hilft Ihnen, automatisch einen neuen Server einzurichten, ohne von einem anderen Mechanismus abhängig zu sein, ohne von dem DNS-Mechanismus abhängig zu sein. Der DNS-Eintrag zeigt immer auf den Load Balancer und der Benutzer würde nur die Server dahinter ändern. Auf diese Weise können sie absolut sicher sein, dass der gesamte Traffic in die neue Produktionsumgebung gelangt und nicht in die alte.
Rolling Update
Um Ausfallzeiten zu vermeiden, kann der Benutzer ein Rolling Update durchführen, was bedeutet, dass er anstelle eines einzigen Cut-offs von allen blauen Servern zu allen grünen Servern mit einer integrierten Umgebung arbeiten kann. Dies deutet darauf hin, dass der Benutzer anstelle eines einzigen Cut-offs von allen blauen Servern zu allen grünen Servern mit einer integrierten Umgebung arbeiten kann
Überwachung der Umgebung
Die Überwachung der produktiven sowie der nicht-produktiven Umgebung ist wichtig. Da dieselbe Umgebung sowohl als Produktions- als auch als Nicht-Produktionsumgebung fungieren kann, müssen Sie lediglich die Benachrichtigungen zwischen den beiden Zuständen umschalten.
Automatisieren
Der Benutzer kann so viele Aktionen wie möglich im Hexenprozess skripten, anstatt einen manuellen Satz von Aktionen durchzuführen. Dies bringt enorme Vorteile. Der Prozess wird schneller, einfacher, sicherer und ermöglicht Self-Service.
Bereitstellung in der Cloud
Wenn Ihre Server in der Cloud laufen, gibt es eine interessante Variante der Blue-Green-Methode, bei der Sie, anstatt zwischen zwei statischen Umgebungen hin und her zu wechseln, die nächste Umgebung einfach von Grund auf neu erstellen können.
Dieser Prozess ist auch wertvoll, um die Gefahr zu vermeiden, dass Server zu Snowflakes werden, d. h. zu Servern, die eine eindeutige Konfiguration haben, die nirgendwo dokumentiert ist. Sobald diese Snowflakes aus irgendeinem Grund gelöscht werden, haben Sie keine einfache Möglichkeit, sie ordnungsgemäß wiederherzustellen. Was auch immer die Wahl sein mag, es ist wichtig, die neuesten Test- und Release-Technologien zu verwenden, um sicherzustellen, dass die Freigabe reibungslos verläuft.
Fazit
Bereitstellungen sind einer der wichtigsten Teile des Softwareentwicklungslebenszyklus, daher sollten alle beteiligten Aktivitäten gründlich recherchiert und getestet werden, um sicherzustellen, dass sie perfekt zu Ihrer Systemarchitektur und Ihrem Unternehmen passen.
Bei OpenSense Labs haben wir einen Pool von Drupal-Entwicklern und -Experten, die an Technologien arbeiten, die diese Tools und Dienstleistungen nutzen. Kontaktieren Sie uns jetzt unter [email protected], unsere Experten beraten Sie gerne bei Fragen zu diesem Thema.
Abonnieren
Verwandte Blogs
Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…
Erklärbare KI-Tools: SHAPs Stärke in der KI

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…
KI-Chatbots: Präzision und Persönlichkeit in Perfektion

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…