GitOps: Continuous Operations
Online-Workshop, ca. 9-16 Uhr (4. und 5. Oktober 2022)
Im Kubernetes-Umfeld etabliert sich GitOps als neue Stufe des automatisierten Betriebs. Der Begriff kombiniert die Versionsverwaltung Git und die Abkürzung "Ops" für Operations, den IT-Betrieb. Dabei synchronisiert Kubernetes selbst seinen Zustand aus Git. Der Zugriff von außen (manuell oder per CI-Server) kann entfallen. Diese Art der Cloud-nativen Continuous Delivery bietet viele Vorteile.
Die Schulung richtet sich an Teilnehmende mit ersten Erfahrungen mit Kubernetes und beginnt bei den Grundlagen von GitOps. Von Beginn an konkretisieren Übungen die Theorie. Die Teilnehmenden lernen die Unterschiede zu CIOps sowie Vorteile von GitOps kennen, etwa die stringent deklarative Beschreibung als Infrastructure as Code.
Zur Umsetzung von GitOps zeigt die Schulung Unterschiede zwischen GitOps-Werkzeugen wie ArgoCD und Flux auf (siehe auch den
iX-Artikel zum Thema). Gemeinsam installieren und konfigurieren wir ArgoCD in Kubernetes. Darauf aufbauend lernen die Teilnehmenden die Rolle des CI-Servers in Verbindung mit GitOps kennen und wie man Templating (Helm oder Kustomize) damit kombiniert.
Auch Herausforderungen des Alltags wie Fehlerbehandlung, Observability und Löschen von Ressourcen sind Teil der Schulung. Den Abschluss bildet ein Ausblick auf ergänzende Werkzeuge, beispielsweise für die Speicherung von Secrets und die Durchführung von Progressive Delivery, sowie den Betrieb von Clustern und anderer grundlegender Infrastruktur mittels GitOps.
Dabei werden unter anderem die folgenden Fragen beantwortet:
- Was ist GitOps?
- Wie unterscheidet sich GitOps vom "klassischen" Betrieb und Continuous Delivery?
- Welche Vorteile bietet GitOps?
- Welche Herausforderungen birgt die Umsetzung von GitOps?
- Wie kann GitOps konkret umgesetzt werden?
- Wie können Anwendungen auf Kubernetes mit GitOps deployt werden?
- Welche gängigen Werkzeuge gibt es und wie unterscheiden sie sich?
- Welche Rolle spielt der CI-Server bei GitOps?
- Wie können Templating-Tools mit GitOps kombiniert werden?
- Wie können Ressourcen mittels GitOps gelöscht werden?
- Wie können Observability und Fehlerbehandlung mit GitOps realisiert werden?
- Wie behandelt man Secrets im GitOps-Prozess?
- Kann auch der Kubernetes-Cluster selbst mit GitOps betrieben werden?
- Kann GitOps auch ohne Kubernetes umgesetzt werden?
Vorkenntnisse
- Gute Vorkenntnisse im Bereich Kubernetes
- Grundlagen von CI/CD und Git
- Erfahrung im Umgang mit der Linux Shell
Lernziele
- GitOps in der Praxis verstehen und die Herausforderungen bei der Umsetzung überwinden
- GitOps-Werkzeuge wie ArgoCD und Flux kennenlernen und einsetzen können
- CI-Server im Zusammenspiel mit GitOps verstehen
- Fehlerbehandlung, Observability und Ressourcenverwaltung meistern