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

Agenda

Tag 1
  • GitOps Basics
  • Vorteile und Unterschiede zu CIOps (imperativ vs. deklarativ)
  • Werkzeuge zur Umsetzung von GitOps (Operatoren/Controller)
  • Vergleich zwischen ArgoCD und Flux v2
  • Deployment von Anwendungen
  • Operator einrichten und konfigurieren
Tag 2
  • CI-Integration
  • Templating (Kustomize / Helm)
  • Observability und Fehlerbehandlung
  • Löschen von Ressourcen
  • Ergänzende Werkzeuge (Secrets, Progressive Delivery, Backups)
  • GitOps für Clusterbetrieb
  • GitOps ohne Kubernetes

 

Technische Anforderungen

Um den praktischen Teil des Workshops nachvollziehen zu können, sollte ein Rechner mit mindestens 8 GB RAM und Administrationsrechten für die Einrichtung einer virtuellen Schulungsumgebung mit VirtualBox vorhanden sein.

Speaker

 

Johannes Schnatterer
Johannes Schnatterer verfolgt das Ziel, funktionierende, sichere Anwendungen schnellstmöglich und wirtschaftlich in Produktion zu bringen und dort zu betreiben. Mit seinem Team bei Cloudogu entwickelt und betreibt er seit mehreren Jahren die Plattform my.cloudogu.com per GitOps und gibt die dabei gesammelte Erfahrung gerne als Autor, Trainer & Consultant weiter.

CC-Newsletter

Sie möchten über die Continuous Lifecycle und die ContainerConf auf dem Laufenden gehalten werden?

 

Anmelden