Blue/Green-Deployment in AWS Einführung in Continuous Deployment, Teil 2

Bue-/Green-Switching in AWS.

Blue/Green-Deployments sind eine spannende Strategie zur Realisierung von Continuous Delivery. In der Public Cloud mit Amazon Web Services, kurz AWS, lassen sie sich sogar mit vertretbarem Aufwand umsetzen. Was aber theoretisch ganz nett klingt, wirft in der Praxis dann doch häufig Fragen auf.

Nicht selten wird das Konzept von Blue/Green-Deployments missverstanden, und auch die Begrifflichkeiten sind nicht immer einheitlich. Der Streaming-Anbieter Netflix beispielsweise spricht von A/B-Deployments.

Grundsätzlich sollte aber klar sein, dass man unter Blue/Green-Deployment ein Konzept versteht, bei dem der Traffic-Flow zwischen zwei weitgehend identischen Deployment-Sets geswitched wird. Dabei kann man unter „Deployment“ alles Mögliche verstehen, vom einzelnen Servern bis zu einer Gruppe von virtuellen Maschinen, neudeutsch auch Multi-Tier-Applikationen aus Web-Server, App-Servern und DB-Servern genannt.

Wichtig ist das Verständnis, dass Blue/Green-Deployments kein Konzept auf Applikations-Ebene, sondern auf „Hardware“-Ebene ist, auch wenn es sich in der Praxis um VMs oder Container handelt. Im Verantwortungsbereich der Applikation liegt der inkrementelle Rolloutvon Features oder das Testing, nicht aber das Aktivieren oder Deaktivieren von Features, da jeglicher Traffic „immer“ zum ersten oder zum zweiten Set geht.

Essenziell ist aber, dass der Übergang (Switch) „sauber“ passiert, wie nach dem Umlegen eines Hebels – und hier liegt der Hase im Pfeffer. Im Folgenden demonstrieren wir verschiedene Switchover-Methoden bei in Amazon Web Services realisierten Blue/Green-Deployments. Im zweiten Teil dieses Beitrages soll ein solches Deployment in AWS dann gezielt realisiert werden.

Blue/Green-Deployments in AWS

Für den Prozess des eigentlichen Switchovers bieten sich verschiedene Verfahren an. Amazon als derzeit größter Public-Cloud-Betreiber stellt vorgefertigte Konzepte zur Realisierung von Blue/Green-Deployments (Whitepaper) bereit, aber auch Pivotal mit CloudFoundry und andere Cloud-Anbieter haben entsprechende Konzepte entwickelt. So propagiert Amazon AWS je nach Anforderung mehrere Modelle für das Traffic-Routing in Blue/Green-Deployments, z. B.

1. via DNS-Redirection mit AWS Route 53, Amazons skalierbarer Hosted-DNS-Service

2. über Load-Balancer, z. B. Amazon AWS Elastic Load Balancers (ELB) sowie

3. durch eine Kombination von ELB und AWS Auto Scaling.

Version-Switching durch Ändern von DNS-Records

Eines der populärsten Verfahren – und in AWS relativ einfach zu realisieren – ist das Switching via DNS-Redirection. Dabei lässt sich das Blue/Green-Switching durch Anpassen des CNAME-Records im DNS erreichen. Hierbei definiert man eine Hosted-DNS-Zone in Route 53 sowie ein entsprechendes „Ressource Record“, um dem jeweiligen Set in einem öffentlichen Subnetz (Public Subnet) den Domain-Namen bekannt zu machen und festzulegen, wie der Traffic für diese DNS-Domain zu routen ist.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.