Was ist IaC (Infrastructure as Code)?
Verfahren, die Konfiguration von Infrastruktur wie Servern, Netzwerken und Speicher statt von Hand in Code (Definitionsdateien) zu beschreiben und sie mit Werkzeugen automatisch zu erzeugen und zu ändern. Bei deklarativen Werkzeugen schreibt man die Soll-Konfiguration, und das Werkzeug wendet nur die Differenz zum Ist-Zustand an; dieselbe Definition beliebig oft anzuwenden, liefert daher dasselbe Ergebnis (Idempotenz). Verwaltet man die Definitionen in Git o. Ä., werden Änderungsverlauf, Review und das Reproduzieren identischer Umgebungen einfach.
Japanische Bezeichnung: IaC(Infrastructure as Code)
„IaC (Infrastructure as Code)“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen von Cloud und Containern.
Fachgebiet: Grundlagen von Cloud und Containern
Deklarativ und prozedural
Im deklarativen Stil schreibt man das Ergebnis, etwa „zwei virtuelle Maschinen“, und das Werkzeug vergleicht es mit dem aktuellen Zustand, um die nötigen Schritte festzulegen. Im prozeduralen Stil schreibt man Operationen der Reihe nach, etwa „eine virtuelle Maschine erzeugen“, und muss den aktuellen Zustand berücksichtigen; zweimal ausgeführt, könnten so vier Maschinen entstehen. Für die Konfiguration von Infrastruktur sind deklarative Verfahren verbreitet, mit denen sich Idempotenz leicht erreichen lässt.
Häufige Fragen
Macht IaC manuelle Konfiguration überflüssig?
Ein Großteil der Arbeit lässt sich in Code fassen, manche manuellen Schritte bleiben aber, etwa die erste Einrichtung der Authentifizierung. Wichtig ist, manuelle Änderungen nicht stehen zu lassen, sondern in den Code zu übernehmen, damit Code und Ist-Zustand übereinstimmen.
Wie hängen IaC und Container zusammen?
Mit IaC baut man Grundlagen wie Netzwerke, virtuelle Maschinen und Cluster auf, und die darauf laufenden Anwendungen werden oft als Container-Images ausgeliefert. Auch Kubernetes-Manifeste folgen demselben Gedanken wie IaC, da sie einen Soll-Zustand deklarieren.