Lange wurde Infrastruktur per Hand eingerichtet: Klicks in Verwaltungskonsolen, Einstellungen nach Anleitung, Anpassungen nach Bedarf. Das Ergebnis sind Umgebungen, die sich in Details unterscheiden, deren Konfiguration kaum jemand vollständig kennt und deren Neuaufbau lange dauert. Infrastructure as Code überträgt Methoden der Softwareentwicklung auf die Infrastruktur: Sie wird als Code beschrieben, versioniert, geprüft und automatisch ausgerollt. Besonders in Cloud-Umgebungen, in denen Ressourcen schnell entstehen und wieder verschwinden, ist dieser Ansatz verbreitet.
Wie funktioniert Infrastructure as Code?
- Deklarativ: Der gewünschte Zielzustand wird beschrieben, etwa drei virtuelle Maschinen, ein Netzwerk und bestimmte Firewall-Regeln. Das Werkzeug ermittelt selbst, welche Änderungen nötig sind. Bekannte Beispiele sind Terraform beziehungsweise OpenTofu sowie Bicep für Microsoft Azure.
- Imperativ: Skripte legen die einzelnen Schritte fest, etwa in PowerShell.
- Konfigurationsmanagement: Werkzeuge wie Ansible richten Software und Einstellungen auf bestehenden Systemen ein.
Ein typischer Ablauf: Eine Änderung wird in einer Datei vorgenommen, in einer Versionsverwaltung wie Git gespeichert und von einer zweiten Person geprüft. Eine Vorschau zeigt die geplanten Auswirkungen, danach rollt eine Pipeline die Änderung aus. Gute IaC ist idempotent, das heißt, mehrfaches Anwenden führt zum selben Ergebnis. Abweichungen durch manuelle Eingriffe, sogenannter Drift, lassen sich so erkennen.
Typische Beispiele
- Die Cloud-Umgebung für einen neuen Standort entsteht aus einer bewährten Vorlage.
- Eine Testumgebung wird identisch zur Produktion aufgebaut und danach wieder entfernt.
- Netzwerk- und Firewall-Regeln liegen versioniert vor, jede Änderung ist nachvollziehbar.
- Nach einem schweren Ausfall lässt sich die Infrastruktur aus dem Code neu aufbauen, als Baustein der Disaster Recovery. Die Daten selbst brauchen weiterhin ein Backup.
Worauf Unternehmen achten sollten
- Keine Passwörter oder Schlüssel im Code ablegen. Auch Zustandsdateien mancher Werkzeuge können sensible Daten enthalten und müssen geschützt werden.
- Manuelle Änderungen vermeiden oder nachträglich in den Code übernehmen, sonst entsteht Drift.
- Änderungen über das Vier-Augen-Prinzip und das Change Management steuern.
- Klein anfangen, etwa mit neuen Cloud-Ressourcen, statt alle Altsysteme auf einmal umzustellen.
- Code ersetzt die IT-Dokumentation nicht vollständig: Warum etwas so gebaut ist, gehört weiterhin beschrieben.
Abgrenzung
Ein einzelnes Skript, das einmal ausgeführt wird, ist noch kein Infrastructure as Code. Entscheidend sind Versionierung, Wiederholbarkeit und dass der Code den Sollzustand verbindlich beschreibt.
Cloud-Leistungen ansehen