Grundlagen von Cloud und Containern

Mit einem deklarativen IaC-Werkzeug (Infrastructure as Code) wurde eine Umgebung erstellt, indem eine Datei angewendet wurde, die ein Netzwerk und zwei virtuelle Maschinen definiert. Unmittelbar danach wird dieselbe Datei ohne jede Änderung noch einmal angewendet. Was geschieht?

  1. AEs gibt keinen Unterschied zwischen Definition und Ist-Zustand, daher wird nichts geändert
  2. BEin weiterer identischer Satz wird erzeugt, sodass es vier virtuelle Maschinen gibt
  3. CDa die Umgebung bereits existiert, bricht die zweite Anwendung mit einem Fehler ab
Antwort und Erläuterung anzeigen

Antwort: A. Es gibt keinen Unterschied zwischen Definition und Ist-Zustand, daher wird nichts geändert

Bei deklarativer IaC beschreibt der Code die Soll-Konfiguration statt der Schritte, und das Werkzeug vergleicht sie mit dem Ist-Zustand und erzeugt, ändert oder löscht nur, was abweicht. Dieselbe Definition beliebig oft anzuwenden, liefert daher dasselbe Ergebnis (Idempotenz), und die zweite Anwendung ändert nichts. Ändert jemand eine Einstellung von Hand und weicht der Ist-Zustand dadurch von der Definition ab (Konfigurationsdrift), stellt die nächste Anwendung den definierten Zustand wieder her. Verwaltet man die Definitionen in Git, lassen sich außerdem der Änderungsverlauf prüfen und Reviews durchführen, genau wie bei Programmen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. Welcher Weg, die Software auf Produktionsservern zu aktualisieren, entspricht dem Gedanken der Immutable Infrastructure?
  2. 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?
  3. 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?
  4. 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?
  5. 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?