Einführung: Was ist GitOps und welche Werkzeuge lohnen sich?

Ops-Hypes gab es schon viele, doch mit GitOps steht nun ein konkreter und grundsätzlich neuer Ansatz für die IT-Automatisierung in den Startlöchern.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 7 Beiträge
Von
  • Moritz Förster

Hinter dem kurzen Schlagwort GitOps versteckt sich ein komplett neuer Ansatz für den IT-Betrieb. Kurz gesagt sollen Unternehmen so alle Bereich von der Administration bis zur Softwareentwicklung automatisieren können. Es stellen sich jedoch zwei Fragen: Warum sollten sie das tun? Und wie soll das funktionieren?

Ops-Revolutionen kennt die IT immerhin schon einige, zuvorderst DevOps. Letzteres hat sich durchgesetzt, weil es die Zusammenarbeit von unterschiedlichen IT-Teams deutlich verbessern kann. Dies spielt sich jedoch ausschließlich auf der Ebene der Kultur ab. Theoretisch würde es beim fehleranfälligen Handbetrieb bleiben.

In der Praxis hat sich jedoch durchgesetzt, viele händische Tätigkeiten mit Continuous-Integration- (CI) und -Delivery-Systemen (CD) zu automatisieren. Allerdings bleibt der Mensch der Treiber: Zum Beispiel stellt er Aufgaben als Änderungen über ein Git-Repository bereit, die ein CI/CD-System anschließend ausführt und in der Produktion bereitstellt.

Macht der Mensch einen Fehler, bleibt aber auch dieses CI/CD-System stecken und kann höchstens noch den vorherigen Zustand wiederherstellen. GitOps denkt diese Arbeitsaufteilung nun neu: Grundlage ist ein ständig aktiver Softwareagent, der den Sollzustand der Produktionsumgebung deklarativ beschreibt.

Mit ihm lassen sich keine Änderungen mehr nach dem Push-Prinzip in die Produktion überführen – vielmehr überwacht der GitOps-Controller konstant ihren Zustand und holt sich nach dem Pull-Prinzip die Änderungen ab, damit die Produktion stets der Zielbeschreibung entspricht. Das gilt auch existierende Infrastrukturkomponenten, die das System bei Ausfällen selbständig repariert.

Apropos System: Für GitOps existieren bereits einige Werkzeuge für den Praxiseinsatz – zumindest für das Kubernetes-Umfeld. Die Tools lassen sich grob in Operatoren für Kubernetes, ergänzende Werkzeuge für Kubernetes und infrastrukturnahe Werkzeuge einteilen. Ersterer automatisiert auf dem Cluster alle Betriebsaufgaben und setzt den Zielzustand durch.

Ihn ergänzen zum Beispiel wichtige Sicherheitsfunktionen, da durch das Speichern des gesamten Zustands in Git dort unweigerlich auch sensible Daten landen. Aber auch Deployment-Tools ergänzen meist die zentralen GitOps-Operatoren, da sich so Strategien wie Canary Releases, A/B-Tests und Blue/Green Deployments besser umsetzen lassen.

Auch wenn GitOps im Kontext von Kubernetes das Licht der Welt erblickte, ist es jedoch nicht hierauf beschränkt: Zum Beispiel lässt sich auch ein Kubernetes-Cluster selbst so aufsetzen und betreiben. Aber auch andere Infrastructure-as-Code-Werkzeuge (IaC) lassen sich mit GitOps einsetzen, zum Beispiel Terraform.

Eine ausführliche Einführung in GitOps findet sich in der aktuellen iX im Titelartikel von Schlomo Schapiro. Details zu den bereits verfügbaren GitOps-Werkzeugen bietet die Marktübersicht von Philipp Markiewka und Johannes Schnatterer:

(fo)