Categories
Trending

Was ist Blue Green Deployment und welche Vor- und Nachteile hat es?

Bei der Bereitstellung werden Code und andere Aktivitäten auf dem Server aktualisiert, um Software zur Verwendung verfügbar zu machen.

In der gegenwärtigen Situation steigt die Nachfrage nach kontinuierlicher Bereitstellung, um mit Software-Updates auf dem neuesten Stand zu bleiben und dem Benutzer eine qualitativ hochwertige Anwendungserfahrung zu bieten. Hierfür stehen auf dem Markt viele Techniken zur Verfügung. In diesem Artikel werden wir uns mit Blue Green Deployment befassen.

Was ist Blue-Green-Bereitstellung?

Blue Green Deployment ist ein Software-Release-Modell, das aus zwei identischen Produktionsumgebungen besteht. Blau und Grün, so konfiguriert, dass eine Umgebung aktiv ist und sich die andere im Staging-Status (Leerlauf) befindet.

Die Idee dahinter ist, den Datenverkehr zwischen zwei Umgebungen umzuleiten, die mit einer anderen Version der Anwendung ausgeführt werden.

Dieser Prozess eliminiert Ausfallzeiten und verringert das Risiko, das durch die Bereitstellung entsteht. Falls bei der neuen Version ein Fehler auftritt, können wir durch Austauschen der Umgebung sofort auf die stabile Version zurücksetzen.

In einigen Organisationen wird es auch als Red Black Deployment bezeichnet.

Funktionsweise von Blue Green Deployment:

Um die Blue-Green-Bereitstellung zu implementieren, sollten zwei Umgebungen vorhanden sein. Dies erfordert auch einen Router oder Load Balancer, damit der Datenverkehr in die gewünschte Umgebung geleitet werden kann.

Im Bild haben wir zwei Produktionsumgebungen, Blau und Grün. In der blauen Umgebung wird die aktuelle (sagen wir Version 1) Umgebung der Anwendung ausgeführt und ist auch live. Der gesamte Datenverkehr der Anwendung wird vom Router oder Load Balancer (gemäß Infraset Up) an Blue geleitet. In der Zwischenzeit wird Version 2 der Anwendung bereitgestellt und in Green Environment getestet.

Derzeit können wir die blaue Umgebung als “Live” und “Grün” als “Leerlauf” oder “Staging” bezeichnen.

Sobald der Code für Version 2 getestet wurde und für die Produktion bereit ist, leiten wir den Datenverkehr von Blue Environment zu Green Environment um, sodass Green als Live und Blue als Staging-Umgebung verwendet werden. Wenn nach der Veröffentlichung von Version 2 ein Problem mit der Infrastruktur oder Anwendung festgestellt wird, können wir durch einfaches Austauschen der Umgebung auf die vorherige Version zurücksetzen.

Die blau-grüne Bereitstellung erfüllt alle Anforderungen an nahtlose, sichere und vollständig umkehrbare Bedingungen für eine ideale Bereitstellung. Es gibt jedoch einige Vorgehensweisen, die für einen reibungslosen Prozess angewendet werden müssen, z. Automatisierung des Workflows so, dass nur minimale menschliche Eingriffe möglich sind, wodurch die Wahrscheinlichkeit manueller Fehler verringert wird.

Darüber hinaus ist es wichtig, die Überwachung für die Anwendung von Blaugrün aufrechtzuerhalten.

Tools und Services für die Einrichtung:

Basierend auf Infrastruktur und Anwendung stehen verschiedene Dienste zur Verfügung, d. H. Docker, Kubernetes, Cloud, Cloudfoundryetc, die zur Implementierung der Blaugrün-Bereitstellung verwendet werden können.

Wir werden die Bereitstellung von Blue Green in der Cloud und die Schritte zur Implementierung weiter diskutieren.

Das Aufkommen von Cloud in Blue-Green Deployment:

Das Aufkommen von Cloud Computing in der Bereitstellung hat dem System geholfen, die damit verbundenen Risiken zu verringern.

Die Cloud-Dienstprogramme für Infra-Management, Abrechnung und Automatisierung haben die Implementierung von Blue-Green Deployment vereinfacht und die Aufgabe schneller und kostengünstiger gemacht.

AWS Services für die blaugrüne Bereitstellung:

Durch die Verwendung von AWS für die Blaugrün-Bereitstellung können wir auf viele Dienste zugreifen, die bei der Automatisierung der Bereitstellung und Infrastruktur helfen, z. B. AWS CLI, SDK, ELB, Elastic Beanstalk und CloudFormation usw. Es gibt eine Reihe von Lösungen, die AWS bereitstellt. Einige von ihnen sind:

  • DNSRouting withRoute53
  • Tauschen der AutoscalingGroup gegen ELB
  • Verwenden von Elastic Beanstalk und Austauschen der Anwendung
  • Blaugrüne Bereitstellung mit AWS Code Deploy
  • Klonen des Stacks inOpsWork und Aktualisieren des DNS.

Wir werden diskutierenVerwenden von Elastic Beanstalk und Austauschen der Anwendungim Detail:

Verwenden von Elastic Beanstalk und Austauschen der Anwendung

Elastic Beanstalk bietet uns die Verwaltung der Anwendung und eine einfache Bereitstellung. Sobald wir Anwendungscode mit Version 1 auf Elastic Beanstalk hochgeladen haben, wird unsere Anwendung in Blue Environment bereitgestellt und im Falle eines Webservers in unserer Infrastruktur wird eine URL bereitgestellt.

Die obige Umgebungskonfiguration wird dann kopiert und mit der neuen Version der Anwendung gestartet, d.h. Grüne Umwelt. Die neue grüne Umgebung hat eine eigene URL.

Sobald die Anwendung betriebsbereit ist, stellt Elastic Beanstalk die URL bereit. Zu diesem Zeitpunkt verfügt unsere Anwendung über zwei Umgebungen und URLs, der Datenverkehr wird jedoch nur in die blaue Umgebung geleitet.

Um die Umgebung auf Grün umzuschalten, müssen Sie die Umgebungs-URL aus der Elastic Beanstalk-Konsole auswählen. Sobald die DNS-Änderungen vorgenommen wurden, können wir die blaue Umgebung beenden.

Für das Rollback müssen wir die Switch-Umgebungs-URL erneut aufrufen.

Schritte zur Durchführung der blau-grünen Bereitstellung in AWS:

  • Öffnen Sie die Elastic Beanstalk-Konsole in AWS und wählen Sie die Region aus, in der eine Umgebung eingerichtet werden soll.
  • Entweder können wir eine neue Umgebung starten oder die vorhandene Umgebung klonen.
  • Stellen Sie die neue Anwendungsumgebung bereit und testen Sie sie. Für die Bereitstellung wählt die neue Version Umgebung und Name aus der Liste aus. Klicken Sie auf Hochladen und bereitstellen.
  • Wir können das Bildschirmformular verwenden, um das Quellpaket hochzuladen.
  • Wählen Sie auf der Seite Übersicht die Aktion Umgebung und dann Umgebungs-URL austauschen.
  • Wählen Sie den Umgebungsnamen unter Spalte zum Austauschen einer Umgebung auswählen und klicken Sie auf Tauschen.

Wer kann von Blaugrün-Bereitstellungen profitieren?

Die blau-grüne Bereitstellung bietet uns minimale Ausfallzeiten und eine zuverlässige Bereitstellung.

Die blau-grüne Bereitstellung hat sich als nützlich erwiesen, wenn eine Anwendung für Entwicklungsteams bereitgestellt wird. Sie kann jedoch unter den folgenden Szenarien verwendet werden:

  • Es sollte sich um identische und isolierte Umgebungen handeln.
  • Dies sollte die Bereitstellung für Router oder Load Balancer sein.
  • Das System sollte mit Continuous Update arbeiten.

Verschiedene Arten der Bereitstellung

In der Branche werden eine Reihe von Bereitstellungstechniken zum Bereitstellen der Anwendung verwendet. Als DevOps-Ingenieur wird es wichtig, die Erkenntnisse über verschiedene Techniken zu kennen, die auf unserer Infrastruktur basieren, und die richtige Technik entsprechend den Auswirkungen auf den Endbenutzer auszuwählen.

  1. Blaugrüne Bereitstellung: Die Blaugrüne Bereitstellung bietet uns Hochverfügbarkeit und Rollback bei kritischen Fehlern. Es besteht aus zwei parallel laufenden Umgebungen. Eine Umgebung wird live sein und andere werden sich in der Bereitstellung befinden, wodurch die Ausfallzeit unserer Anwendung frei wird.
  2. A / B-Bereitstellung: Die A / B-Bereitstellung ähnelt der blau-grünen Bereitstellung, mit dem Unterschied, dass wir eine geringe Menge an Datenverkehr an einen anderen Server (eine andere Umgebung) senden. Die Verwendung der A / B-Bereitstellung erfolgt im Allgemeinen, wenn die Verwendung der Funktionen in der Anwendung überprüft werden muss.
    Darüber hinaus kann damit auch das Feedback der Benutzer zur neuen Version überprüft werden.
  3. Canary Deployment: Canary Deployment wird verwendet, wenn die vollständigen Funktionen der Anwendung in Teilmengen veröffentlicht werden müssen. Im Allgemeinen haben wir in Canary eine Reihe von Servern, die einer anderen Gruppe von Benutzern zugewiesen sind. Diese Bereitstellung ist wichtig, wenn wir Funktionen bereitstellen und Feedback einholen müssen
  4. Rolling Deployment: InRolling Deployment gibt es einen Prozess, bei dem der aktuell ausgeführte Codeserver im Tandem durch eine neue Version ersetzt wird. Das Anhalten der Bereitstellung ist dabei viel einfacher.

Vorteile der blau-grünen Bereitstellung

  1. Keine Ausfallzeitbereitstellung: Bei der Blue Green-Bereitstellung wird der Datenverkehr immer dann in andere Umgebungen umgeleitet, wenn auf dem Produktionsserver ein kritischer Fehler auftritt. Dies führt zu keinen Ausfallzeiten für den Endbenutzer.
  2. Standby: Bei einem Systemausfall können wir sofort einen Rollback durchführen und sicher wiederherstellen, ohne den Endbenutzer zu stören. Bei der Bereitstellung von Blue Green ist die ältere Version der Anwendung nach dem Wechsel zur neuen Anwendungsversion weiterhin verfügbar. Daher können wir im Falle einer Wiederherstellung die Umgebung problemlos austauschen und den Datenverkehr auf die alte Version zurückleiten. Blue Green hat nachweislich das Risiko im Anwendungsentwicklungsprozess effektiv reduziert.
  3. Sofortiges Rollback: In einigen Fällen, in denen die neue Funktion nicht ordnungsgemäß funktioniert, können wir durch Ausführen eines Rollbacks zur älteren Funktion der Anwendung wechseln.
  4. Testen in der Prod-Umgebung: Es gibt Szenarien, in denen die Bereitstellung eines neuen Codesatzes auf lokaler Ebene einwandfrei funktioniert. Bei der Bereitstellung in der größeren Infrastruktur wird dies jedoch problematisch. Durch die Verwendung von Blue-Green Deployment können wir die Leistung des Codes auf dem Prod-Server überprüfen, ohne die Benutzer zu stören.

Nachteile der blau-grünen Bereitstellung:

Da viele Leute auf die Bereitstellung von Blaugrün zusteuern, wird dieser Prozess in einigen Fällen nicht empfohlen.

In einigen Fällen besteht ein Risiko, das die Bereitstellung anfälliger für Ausfälle und Ausfälle macht.

  1. Datenbanksynchronisierung: – Schemaänderungen sind komplex zu entkoppeln. Bei der Bereitstellung von Blue Green sollte die Synchronisierung von Datenbank- und Datenänderungen zwischen der Blue- und der Green-Umgebung synchronisiert werden. Bei relationalen Datenbanken kann es zu Unstimmigkeiten kommen.
  2. QA / UATIdentify of Failure: In einigen Szenarien mit LargeInfra ist es möglich, dass QA-Testfälle in einer nicht aktiven Umgebung manchmal keine Fehler / Bugs erkennen
  3. Erforderliches Dashboard: Da wir zwei identische Produktionsumgebungen mit einer anderen Codeversion haben, wird es während der Ausführung der Bereitstellung wichtig, die Einblicke in Pakete und Code zu jedem Zeitpunkt des Auslösens zu überwachen.
  4. Kosten: Für die Blue-Green-Bereitstellung werden zwei Umgebungen gleichzeitig parallel ausgeführt, wodurch sich die Kosten für zwei Produktionsumgebungen erhöhen und diese warten.

Fazit:

Es gibt keinen festen Ansatz für Bereitstellungen, der in jedem Szenario geeignet ist und funktioniert.

Die Teams müssen zusammenarbeiten und an der Auswahl der richtigen Technik für ihre Anwendung arbeiten, um die beste Lösung zu finden, die zum Nutzen der Organisation und der Anwendung funktioniert.

Leave a Reply

Your email address will not be published. Required fields are marked *