IaC und GitOps
Infrastructure as Code (IaC) bedeutet, dass die IT-Infrastruktur (Server, Netzwerke, Datenbanken) nicht mehr manuell konfiguriert, sondern über Textdateien (Code) definiert wird. GitOps geht einen Schritt weiter: Es nutzt Git als die einzige Quelle der Wahrheit (Single Source of Truth) für die gesamte Systemumgebung.
Jede Änderung am System erfolgt über einen Pull Request in Git. Sobald dieser genehmigt ist, sorgt ein automatischer Prozess (Reconciliation) dafür, dass der reale Zustand der Infrastruktur dem im Code definierten Zustand entspricht.
Anti-Patterns: Die Konfigurations-Drift
In klassischen Umgebungen werden Änderungen oft auf die Schnelle direkt am Server vorgenommen. Mit der Zeit weiss niemand mehr genau, wie ein System konfiguriert ist. Dieser Configuration Drift macht den Wiederaufbau nach einem Ausfall (Disaster Recovery) unmöglich und führt zu unvorhersehbaren Fehlern bei neuen Deployments.
Deklarative Kontrolle
- Infrastructure as Code (Terraform / OpenTofu): Definition der Ressourcen in neutralen Skripten. Die Infrastruktur wird reproduzierbar und versionierbar.
- GitOps (ArgoCD / Flux): Software-Agenten im Cluster überwachen das Git-Repository. Weicht der Live-Zustand vom Code ab, wird er automatisch korrigiert.
- Versionskontrolle für ALLES: Nicht nur der Applikationscode, auch Netzwerkregeln, Sicherheitsrichtlinien und Skalierungsparameter liegen in Git.
- Review-Prozesse für Ops: Änderungen an der Infrastruktur durchlaufen den gleichen Qualitäts-Check (Code Review) wie Software-Änderungen.
- Auditing & Compliance: Git liefert eine lückenlose Historie darüber, wer wann welche Änderung am System vorgenommen hat — ein Segen für jedes Audit.
Der Vorteil: Wiederherstellbarkeit auf Knopfdruck
Wird ein komplettes Rechenzentrum zerstört, kann die gesamte Infrastruktur innerhalb von Minuten in einer anderen Region identisch wieder aufgebaut werden, da die Definition komplett im Code vorliegt.
FAQ
Brauchen wir für GitOps neue Spezialisten?
Es erfordert ein Umdenken bei den Systemadministratoren hin zu Software-Methoden. Das Ergebnis ist eine stabilere und besser dokumentierte IT, die weniger Abhängigkeit von Kopfmonopolen hat.
Wie sicher ist es, wenn alle Konfigurationen in Git liegen?
Sicherer als manuelle Eingriffe. Wir nutzen geschützte Branches und automatisierte Sicherheits-Scans auf die Konfigurations-Dateien, um Fehler und Lücken zu finden, bevor sie live gehen.
Reference Guide
- The GitOps Manifesto: Die Kernprinzipien von GitOps. gitops.tech
- Terraform Documentation: Der Standard für IaC. terraform.io
- ArgoCD Project: GitOps für Kubernetes. argoproj.github.io/cd/