
Warum Infrastructure as Code mit Terraform statt manueller Cloud-Konfiguration?
Direkte Antwort
Manuelle Konfiguration über die Cloud-Konsole (ClickOps) skaliert nicht über eine Handvoll Ressourcen hinaus, weil Änderungen nicht versioniert, nicht review-fähig und nicht reproduzierbar sind. Terraform macht jede Infrastrukturänderung als Code nachvollziehbar, erlaubt Review vor der Anwendung und stellt sicher, dass sich eine Umgebung exakt reproduzieren lässt — etwa für ein neues Staging-System oder im Katastrophenfall.
"Eine über die Konsole geklickte Änderung existiert nur im Kopf der Person, die sie gemacht hat — bis diese Person das Unternehmen verlässt oder sich nicht mehr erinnert.
ClickOps funktioniert augenscheinlich gut, solange die Infrastruktur klein und von einer einzelnen Person überschaubar ist — das Problem zeigt sich erst, wenn mehrere Personen an derselben Infrastruktur arbeiten oder sie reproduziert werden muss.
Nachvollziehbarkeit als grundlegender Unterschied
Jede Terraform-Änderung existiert als Diff in einer Versionskontrolle, mit Autor, Zeitpunkt und Begründung im Commit — bei ClickOps-Änderungen über die Cloud-Konsole gibt es dagegen oft keine strukturierte Historie, wer wann welche Einstellung geändert hat und warum.
Diese fehlende Nachvollziehbarkeit wird besonders bei der Fehlersuche zum Problem, wenn ein Produktionsproblem auf eine undokumentierte manuelle Änderung zurückzuführen ist, die niemand mehr bewusst in Erinnerung hat.
Review-Fähigkeit vor der Anwendung
Terraform-Änderungen lassen sich vor der Anwendung als Plan (`terraform plan`) prüfen und in einem Pull Request von Kolleg:innen reviewen, ähnlich wie bei Code-Änderungen — ClickOps-Änderungen werden dagegen sofort wirksam, ohne vorherige Prüfung durch eine zweite Person.
Dieser Review-Schritt fängt viele Fehler ab, bevor sie produktiv werden, etwa eine versehentlich zu weit gefasste Firewall-Regel oder eine falsch konfigurierte Zugriffsberechtigung.
Reproduzierbarkeit für neue Umgebungen und Notfälle
Mit Infrastructure as Code lässt sich eine komplette Umgebung (etwa Staging identisch zu Produktion) mit einem einzigen Befehl neu aufbauen, was bei ClickOps-Infrastruktur praktisch unmöglich ist, ohne jeden einzelnen manuellen Schritt erneut und fehlerfrei zu wiederholen.
Im Katastrophenfall, etwa bei einem vollständigen Ausfall einer Region, ist diese Reproduzierbarkeit der Unterschied zwischen einer Wiederherstellung in Minuten und einer manuellen Rekonstruktion über Tage. Terraform beseitigt ClickOps-Risiken aber nicht vollständig: Wird trotz Terraform manuell in der Konsole geändert, entsteht Drift zwischen State-Datei und tatsächlicher Infrastruktur, den `terraform plan` zwar anzeigt, der aber bei nächster Anwendung zu unerwarteten Änderungen führen kann — Terraform-Disziplin erfordert deshalb auch die organisatorische Regel, dass manuelle Konsolen-Änderungen an Terraform-verwalteten Ressourcen grundsätzlich untersagt sind.
Wann passt es — wann nicht?
Passt gut
- ✓Mehrere Personen arbeiten an derselben Infrastruktur oder die Umgebung muss reproduzierbar sein
Passt nicht
- ✗Es handelt sich um ein einmaliges, sehr kleines Testsystem einer einzelnen Person ohne Reproduktionsbedarf