Kurzfassung
GitOps ist ein operatives Modell, bei dem der gesamte gewünschte Zustand von Infrastruktur und Anwendungen in Git gespeichert wird und automatisierte Controller die Live-Umgebung kontinuierlich mit dem im Repository deklarierten Zustand abgleichen.
Was ist GitOps?
GitOps wurde 2017 von Weaveworks geprägt und hat sich zum Standard-Deployment-Modell für Kubernetes-basierte Plattformen entwickelt. Das Kernprinzip lautet: Jede Änderung an Infrastruktur oder Anwendungen muss über einen Git Pull Request erfolgen. Git dient dabei als Audit-Log, als Zugangskontrollgrenze und als Rollback-Mechanismus.
Ein GitOps-Controller wie Argo CD oder Flux CD läuft im Cluster und vergleicht kontinuierlich den gewünschten Zustand in Git mit dem tatsächlichen Zustand im Cluster. Wenn er eine Abweichung erkennt, gleicht er diese automatisch durch Anwenden der notwendigen Änderungen ab. Das bedeutet, dass kein Entwickler und keine Pipeline direkt in den Cluster pusht – der Cluster zieht seinen gewünschten Zustand aus Git.
GitOps bietet eine klare Trennung zwischen der CI-Pipeline (die Artefakte baut und testet) und dem CD-Prozess (der deklariert, welche Version wo laufen soll). Diese Trennung verbessert die Nachvollziehbarkeit und Sicherheit.
Warum ist GitOps relevant?
- Nachvollziehbarkeit: Jede Änderung ist ein Git-Commit mit Autor, Zeitstempel und Review-Historie
- Sicherheit: Cluster-Credentials verlassen den Cluster nie; Pipelines pushen nach Git, nicht direkt in die Produktion
- Self-Healing: Die Reconciliation-Schleife kehrt automatisch unautorisierte oder versehentliche Änderungen am Cluster zurück