Publiziert:

IaC und GitOps

Git wird zur einzigen Quelle der Wahrheit

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 erschwert den Wiederaufbau nach einem Ausfall (Disaster Recovery) erheblich und führt zu unvorhersehbaren Fehlern bei neuen Deployments.

Deklarative Kontrolle

  1. Infrastructure as Code (Terraform / OpenTofu): Definition der Ressourcen in neutralen Skripten. Die Infrastruktur wird reproduzierbar und versionierbar.
  2. GitOps (ArgoCD / Flux): Software-Agenten im Cluster überwachen das Git-Repository. Weicht der Live-Zustand vom Code ab, wird er automatisch korrigiert.
  3. Versionskontrolle für Betriebsartefakte: Nicht nur der Applikationscode, auch Netzwerkregeln, Sicherheitsrichtlinien und Skalierungsparameter liegen in Git.
  4. Review-Prozesse für Ops: Änderungen an der Infrastruktur durchlaufen den gleichen Qualitäts-Check (Code Review) wie Software-Änderungen.
  5. Auditing und Compliance: Git liefert eine lückenlose Historie darüber, wer wann welche Änderung am System vorgenommen hat: ein Gewinn für jedes Audit.

Der Vorteil: Reproduzierbare Wiederherstellung

IaC und GitOps beschreiben den gewünschten Zustand deklarativ, versioniert und reproduzierbar. Fällt ein komplettes Rechenzentrum aus, lässt sich die Infrastruktur in einer anderen Region aus dem Code neu aufbauen, ohne sie manuell rekonstruieren zu müssen. Wie schnell und wie vollständig das gelingt (RTO und RPO), hängt jedoch von Zustands- und Datenreplikation, Secrets, DNS, Anbieter-Kontingenten, externen Abhängigkeiten und den Wiederherstellungsprozessen ab, nicht allein von der Code-Definition.

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 wird es, wenn geschützte Branches und automatisierte Sicherheits-Scans auf Konfigurations-Dateien eingesetzt werden, um Fehler und Lücken vor der Auslieferung zu finden.

Referenzen