Blue Green Deployment

Software in Produktivumgebungen sicher ausrollen

René Büst ist Senior Analyst und Cloud Practice Lead bei Crisp Research mit dem Fokus auf Cloud Computing und IT-Infrastrukturen. Er ist Mitglied des weltweiten Gigaom Research Analyst Network und gehört weltweit zu den Top 50 Bloggern in diesem Bereich. Seit Ende der 90er Jahre konzentriert er sich auf den strategischen Einsatz der Informationstechnologie in Unternehmen.
Im Zeitalter des Cloud Computing und der Entwicklung von Cloud-Infrastrukturen und -Applikationen anhand von Infrastructure as Code sollten Cloud-Architekten ebenfalls Konzepte berücksichtigen, um Software im Rahmen des Continuous Deployment bereitzustellen. Damit könnten sie Anforderungen an eine höhere Anzahl von Releases erfüllen und die Geschwindigkeit der Releasezyklen beschleunigen. Zu dieser Form von Deploymentstrategien zählen auch "Blue Green Deployments".

Was ist ein Blue Green Deployment?

Blue Green Deployment ist eine Strategie für die Bereitstellung und das Veröffentlichen von Software. Das Konzept basiert auf zwei separaten, aber produktionsfähigen Umgebungen, die in der Lage sind die jeweiligen Applikationen bereitzustellen. Die einzelnen Umgebungen werden als Blue und Green bezeichnet und sind im besten Fall identisch.

Nur eine der beiden Umgebungen ist zu einem Zeitpunkt aktiv (Blue) und nimmt die Anfragen an die produktiven Anwendungen entgegen. Vor den Endpunkten jeder Umgebung befindet sich ein Router oder Load Balancer, um den Datenverkehr entsprechend an die aktive Umgebung weiterzuleiten.

Wird ein neues Software-Release entwickelt, wird es zunächst auf der nicht aktiven Umgebung (Green) bereitgestellt. In einem Blue Green Deployment ist die nicht aktive Umgebung als die finale "Staging" Umgebung zu verstehen. Sie bildet die Produktionsumgebung (die aktive Umgebung) so nah wie möglich ab und wird gleichzeitig für den finalen Test genutzt.

Sobald die neue Software-Version getestet wurde und als stabil gilt, kann das neue Release als produktive Version bereitgestellt werden, indem der Router/Load Balancer den Datenverkehr an die "Green"-Umgebung weiterleitet. Die vorherige aktive Umgebung (Blue) wird inaktiv und die vorherige Staging Umgebung (Green) wird zur produktiven Umgebung.

Das prinzipielle Konzept eines Blue Green Deployments.
Das prinzipielle Konzept eines Blue Green Deployments.
Foto: Crisp Research AG, 2016

Ab diesem Zeitpunkt ist die vorherige Software-Version zwar nicht mehr aktiv, aber weiterhin verfügbar. Sollte die neue Version unerwartete Anomalien oder ernsthafte Probleme zeigen, lässt sich der letzte Stand durch eine einfache Neukonfiguration beziehungsweise Umschalten des Routers/Load Balancers auf die alte Umgebung wiederherstellen.

Trash your Blue Green Environment

Blue Green Deployment ist kein neues Konzept und in der professionellen Softwareentwicklung bekannt. Mit dem Siegeszug der Cloud und dem Einsatz virtueller Infrastruktur nimmt die Bedeutung dieser Deploymentstrategie jedoch immer mehr zu. Verstärkt wird dies mit dem Konzept "Trash your Servers". Wie der Name vermuten lässt, geht es tatsächlich darum, die vormals genutzten Server nicht zu behalten, sondern wegzuschmeißen und stattdessen neue Server für jedes neue Deployment zu nutzen. Hierbei spielt eine virtuelle Umgebung die Hauptrolle. Denn ständig einen physikalischen Server zu entsorgen und einen neuen aufzusetzen ist schließlich zu zeitaufwendig und zu teuer. In einem Blue Green Deployment wird die aktuelle inaktive Umgebung somit auf Basis einer neuen virtuellen Umgebung aufgebaut, auf welcher dann die neue Software-Version bereitgestellt wird. Sobald diese aktiv geschaltet wird, können die Server der vorherigen produktiven Umgebung prinzipiell heruntergefahren werden. Es sei denn, diese sollen als Fallback für einen bestimmten Zeitraum vorgehalten werden.

Sowohl "Blue Green Deployments" als auch "Trash your Servers" verfolgen beide denselben Ansatz: Den Aufbau einer Hot-Standby-Umgebung für das Continuous Deployment von Software-Releases. Beide Konzepte vereinfachen hierzu nicht nur das Infrastrukturmanagement, sondern helfen auch dabei, für jedes neue Release das Desaster Recovery auf Anwendungsebene zu optimieren.

Blue Green Deployment und Continuous Deployment im eCommerce-Umfeld

Insbesondere im eCommerce-Umfeld sind "Blue Green Deployments" ein gutes Konzept, um das Continuous Deployment neuer Releases zu unterstützen. Denn die führenden eCommerce Shops spielen Updates, neue Funktionen und Features schon lange nicht mehr nur einmal im Quartal ein, sondern haben einen Prozess etabliert, der dafür sorgt, dass Releases kontinuierlich ausgerollt werden. Dies liegt insbesondere an dem Fakt, dass die Innovations- und Wettbewerbsfähigkeit von eCommerce-Unternehmen heute eng an eine kurze Taktfrequenz neuer Releases geknüpft ist. Doch nur, wenn sich diese ebenfalls unterbrechungsfrei in den laufenden Betrieb einfügen lassen sind die Anstrengungen auch von Erfolg gekrönt.

Statische Shops mit wenigen Releases pro Jahr stehen auf dem Abstellgleis. Denn die Fähigkeit, neue Funktionen im Wochen-, Tages- oder Stundenrhythmus zu integrieren und damit das eigene Geschäftsmodell flexibel weiterzuentwickeln, werden im Zeitalter des eCommerce und der Digitalisierung immer wichtiger. Ein Continuous Deployment unterstützt von einer "Blue Green Deployment" Strategie hilft eCommerce-Unternehmen und Betreibern von Webshops dabei, dieses Ziel zu erreichen. (hal)