22. Dez 2021
Lesedauer 3 Min.
GitOps: DevOps auf dem nächsten Level
Consol
Das DevOps-Modell gewinnt an Bedeutung. Der GitOps-Ansatz ergänzt das DevOps-Vorgehen durch ein automatisiertes Deployment. IT-Dienstleister Consol zeigt die Vorteile und skizziert einen typischen GitOps-Workflow.

GitOps steht für die Verbindung von Git, dem führenden Open-Source-System für die Versionsverwaltung, mit Operations. Durch die Speicherung von Infrastruktur-Code in Git-Repositories wird der Zielzustand eines Systems definiert. GitOps-Tools synchronisieren diesen Zustand stets zwischen Git-Repository und Zielsystem – etwa durch automatisierte Deployments nach Änderungen am Infrastruktur-Code. Wesentliche Schritte in der Softwareentwicklung und -bereitstellung werden dadurch automatisiert. Dies erweitert den DevOps-Ansatz entscheidend.Vor Kurzem hat die GitOps Working Group, ein Projekt der Cloud Native Computing Foundation (CNCF) die konkreten Anforderungen für die GitOps-Nutzung spezifiziert. Zwei Punkte sind dabei vor allem wichtig. Erstens muss die Zielplattform deklarativ konfiguriert und verwaltet werden können. Daher wird GitOps vor allem als Betriebsmodell bei Kubernetes genutzt, der derzeit populärsten deklarativen Plattform. Zweitens ist es erforderlich, den gewünschten System- beziehungsweise Softwarezustand unveränderlich und versioniert mit Versionshistorie zu speichern. Sind diese Voraussetzungen erfüllt, kann ein typischer GitOps-Workflow nach Consol folgendermaßen aussehen:
- Überführung von Anwendungsänderungen in einen speziellen Git-Branch und Erzeugung eines Pull-Requests.
- Überprüfung und Genehmigung des Pull-Requests durch eine weitere Person.
- Bau der Applikation und automatisiertes Testen der Änderungen.
- Überführung des Container-Images in die Image-Registry (bei erfolgreichen Tests).
- Übertragung der Container-Image-Referenz in das Kubernetes-Deployment-Manifest und Aktualisierung des Manifests in Git.
- Kontinuierliches Abrufen des Inhalts des Manifest-Repositories durch die GitOps-Anwendung und Überprüfen der Manifeste auf Änderungen.
- Abfrage des aktualisierten Container-Images aus der Image-Registry.
- Überführung der aktualisierten Manifeste und des Container-Images durch den GitOps-Prozess in das Zielsystem.