© Excellent backgrounds/Shutterstock.com
Continuous Deployment mit GitOps

Vertraute Werkzeuge nutzen


GitOps ermöglicht einen entwicklungszentrierten Betrieb von Anwendungen und deren benötigter Infrastruktur durch die Verwendung von Tools, mit denen Entwicklungsteams bereits vertraut sind, einschließlich Git und Continuous-Deployment-Tools.

Im Zentrum von GitOps steht ein spezielles Code-Repository, ein sogenanntes Umgebungs-Repository, das ein Dependency-Manifest für alle Anwendungen und der aktuell in der Zielumgebung gewünschten Infrastruktur enthält. Ein automatisierter Prozess, Operator genannt, überwacht die tatsächliche Zielumgebung und passt sie an den beschriebenen Zustand im Repository an. Soll eine neue Anwendung deployt oder eine bestehende Anwendung aktualisiert werden, muss nur das Umgebungs-Repository aktualisiert werden – alles andere erledigt der Operator.

Komponenten

Umgebungs-Repository: Einer der Kerngedanken von GitOps ist es, Entwicklungsteams die Möglichkeit zu geben, die ihnen vertrauten Werkzeuge für den Betrieb der Infrastruktur zu nutzen. Eine deklarative Beschreibung der Anwendungen und Infrastruktur (z. B. Message Broker, Service Mesh, Monitoringtool) wird daher zentral als Single Source of Truth in einem Code-Repository gesammelt. Etabliert hat sich die Verwendung von Git, daher auch der Name GitOps. Im Prinzip kann aber jedes Versionskontrollsystem verwendet werden.

Zielumgebung: In Frage kommt jede Betriebsplattform, die sich deklarativ beobachten und als Environment as Code [2] beschreiben lässt. Allerdings erleichtert die Verwendung von Kubernetes als Zielumgebung die Auswahl eines GitOps-Operators. Selbstgebaute Operatoren können hier natürlich Abhilfe schaffen. Üblicherweise bilden unterschiedliche Kubernetes-Cluster die verschiedenen Umgebungen (Dev, Staging, Prod etc.) ab.

Deployment-Operator: Die Wahl eines GitOps-Operators hängt maßgeblich von der Zielumgebung ab. Populäre Operatoren für Kubernetes sind Flux und Argo CD. Es gibt aber auch CI/CD-Systeme, die die Philosophie von GitOps auch auf Continuous Integration übertragen und somit nicht nur den Deployment-Prozess in die Zielumgebung heben, sondern auch das Testen von Anwendungen. Zu diesen GitOps-CI/CD-Systemen gehören Tekton und Jenkins X.

Continuous Integration Pipeline: GitOps-Operatoren übernehmen das Deployment, aber nicht immer das Testen und Bauen von Anwendungen. Da der Operator die gesamte Arbeit des Deployments von Anwendungen übernimmt, wird die CI/CD Pipeline zu einer reinen CI Pipeline.

GitOps-Workflow

Code-Repositories sind zentrale Elemente b...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang