Grundlagen von Cloud und Containern

Welcher Weg, die Software auf Produktionsservern zu aktualisieren, entspricht dem Gedanken der Immutable Infrastructure?

  1. ASich per SSH an den laufenden Produktionsservern anmelden, die Pakete aktualisieren und dann den Dienst neu starten
  2. BAus einem neuen Image, das das Update enthält, neue Server erzeugen, auf diese umschalten und die alten Server unverändert verwerfen
  3. COhne die Produktionsserver anzuhalten, die Konfigurationsdateien von Hand ändern und die Änderungen in einem Arbeitsprotokoll festhalten
Antwort und Erläuterung anzeigen

Antwort: B. Aus einem neuen Image, das das Update enthält, neue Server erzeugen, auf diese umschalten und die alten Server unverändert verwerfen

Bei Immutable Infrastructure werden einmal erzeugte Server (virtuelle Maschinen oder Container) nie verändert; ist eine Änderung nötig, werden aus einem Image mit der Änderung neue erzeugt und eingewechselt. Da jeder Server aus demselben Image entsteht, driften die Konfigurationen nicht durch angehäufte manuelle Unterschiede von Server zu Server auseinander. Tritt ein Problem auf, stellt die Neuerzeugung aus dem vorherigen Image den alten Zustand wieder her. Was erhalten bleiben muss, etwa Logs und Daten, wird in Speicher oder Datenbanken außerhalb der Server abgelegt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. 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?
  2. 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?
  3. 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?
  4. 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?
  5. 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?