Grundlagen von Cloud und Containern

Es werden zwei Umgebungen mit derselben Konfiguration wie die Produktion bereitgestellt; in der einen läuft weiter die aktuelle Version, in der anderen wird die neue Version installiert und geprüft, und dann wird der Load Balancer auf einen Schlag auf sie umgeschaltet. Bei Problemen führt das Zurückschalten sofort zur alten Version zurück. Wie heißt dieses Release-Verfahren?

  1. ABlue-Green-Deployment
  2. BCanary-Release
  3. CRolling Update
Antwort und Erläuterung anzeigen

Antwort: A. Blue-Green-Deployment

Beim Blue-Green-Deployment werden zwei Umgebungen (blau und grün) bereitgestellt, und der Verkehr der Nutzer wird auf einen Schlag auf die neue Umgebung umgeschaltet. Die alte Umgebung bleibt eine Weile unverändert bestehen; tritt ein Problem auf, genügt es, zurückzuschalten, um die alte Version wiederherzustellen. Andererseits werden rund um die Umschaltung Ressourcen für zwei Umgebungen benötigt, und Änderungen am Datenbankschema müssen in einer Form erfolgen, die sowohl die alte als auch die neue Version nutzen kann. Ein Canary-Release gibt die neue Version nur für einen Teil der Anfragen frei, und ein Rolling Update ersetzt die Server schrittweise.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. Ein Dienst, der 12.000 Anfragen pro Stunde erhält, führt ein Canary-Release einer neuen Version durch und leitet nur 5 % der Anfragen an sie. Die neue Version hat einen Fehler, durch den 3 % der erhaltenen Anfragen fehlschlagen; er wird nach einer Stunde bemerkt, und alle Anfragen werden auf die alte Version zurückgeleitet. Wie viele Anfragen sind in dieser Stunde wegen des Fehlers fehlgeschlagen?
  2. Ein Container-Image, das eine CI/CD-Pipeline gebaut hat, wurde in der Staging-Umgebung getestet und hat die Tests bestanden. Wie wird dieses Image am besten in die Produktion ausgeliefert?
  3. Wie oben gezeigt, wird das Verbindungsziel der Datenbank nicht in das Image geschrieben, sondern beim Start des Containers als Umgebungsvariable übergeben. Was ist der wichtigste Vorteil dieses Entwurfs?
  4. In einem System, in dem mehrere Dienste zusammenarbeiten, soll ermittelt werden, welche Dienste eine einzelne Nutzeranfrage in welcher Reihenfolge durchlaufen hat und wie viel Zeit sie jeweils darin verbracht hat. Welche der für Observability genutzten Daten eignen sich dafür am besten?
  5. Welche Kombination ordnet den Linux-Kernelfunktionen, auf denen Container beruhen, nämlich den Namespaces und den cgroups (Control Groups), ihre Aufgaben richtig zu?