GitLab Advanced - Anwendung von CI und DevOps Integrationen (TDE-GITB)

Dieser GitLab Kurs bietet den erweiterten Einstieg in Git Workflows und die Hosting-Plattform GitLab. GitLab kann als freie DevOps-Plattform mehr, als nur Code für die Versionskontrolle zu hosten. In diesem Kurs geht es um CI/CD Pipelines und wie diese mithilfe von GitLab abgebildet werden. Das Ausführen von CI/CD-Jobs geschieht auf GitLab Runnern, deren Funktionsweise und Konfiguration vorgestellt wird. Build- und Deployment-Prozesse werden anhand von Docker und Kubernetes erläutert, da GitLab für diese Tools automatisierte Schnittstellen bietet. Das Gelernte wird in einer Labumgebung praktisch umgesetzt. 


Kursinhalt

  • Aufbau von CI/CD Pipelines in GitLab
  • Job Keywords
  • Variablen, Artefakte & Caching
  • Pipeline-Typen und Trigger
  • GitLab Runner – Charakteristika, Typen & Konfiguration
  • Build & Deployment via Docker & Kubernetes
  • Vorstellung und Unterscheidung von Git Workflows


Zielgruppe

Der Kurs richtet sich an alle, die bereits Git-Kenntnisse vorweisen können und sich nun den erweiterten Einstieg in die GitLab-Plattform wünschen.


Voraussetzungen

Grundlegende Kenntnisse zum Umgang mit Git und GitLab werden vorausgesetzt. Diese können im Grundlagenkurs Git und GitLab – Bausteine für CI/CD erworben werden.

Details anzeigen


Inhaltsverzeichnis

1 CI/CD mit GitLab - Grundlagen

  • 1.1 DevOps
    • 1.1.1 DevSecOps via GitLab
    • 1.1.2 Eine Übersicht zu Beginn
  • 1.2 Git & GitLab
    • 1.2.1 Arbeiten Lokal-Remote
    • 1.2.2 Der GitLab-Server
    • 1.2.3 CI/CD Workflow von GitLab
  • 1.3 Basics zu Docker & Kubernetes
    • 1.3.1 App klassisch vs. App als Container
    • 1.3.2 Docker-Workflow
    • 1.3.3 Kubernetes
  • 1.4 Basics zu Testing
    • 1.4.1 Beispiel: Unit-Tests


2 Pipelines

  • 2.1 Was ist eine Pipeline?
  • 2.2 Stages & Jobs
    • 2.2.1 Job-Ausführung
    • 2.2.2 Regeln & Bedingungen für Jobs
  • 2.3 Variablen
    • 2.3.1 Vordefinierte Variablen
    • 2.3.2 Variablen in der GitLab-UI
    • 2.3.3 Variablen in der Pipeline-Datei
  • 2.4 Artifacts
    • 2.4.1 Dependencies von Artifacts
  • 2.5 Caching
    • 2.5.1 Cache-Key
  • 2.6 Modularer Pipeline Code
    • 2.6.1 Default - Keyword
    • 2.6.2 YAML Anchors & Aliases
    • 2.6.3 Reference Tag
    • 2.6.4 include als globales Keyword
  • 2.7 Pipeline-Laufzeit optimieren
  • 2.8 Pipelines Triggern
    • 2.8.1 Multi-Project Pipelines
    • 2.8.2 Externe Pipelines triggern
  • 2.9 API-Calls
    • 2.9.1 Webhooks
  • 2.10 Merged Results Pipelines
    • 2.10.1 Merge Request Event Pipeline


3 GitLab Runner

  • 3.1 GitLab Runner im Überblick
    • 3.1.1 Kommunikation
    • 3.1.2 Shared Runner
    • 3.1.3 Project Runner
  • 3.2 Konfiguration - config.toml
  • 3.3 Executors
    • 3.3.1 Shell Executor
    • 3.3.2 SSH Executor
    • 3.3.3 Docker Executor
    • 3.3.4 Kubernetes Executor
    • 3.3.5 VirtualBox Executor
  • 3.4 Troubleshoot GitLab Runner


4 Deployment via Docker & Kubernetes

  • 4.1 GitLab Container Registry
    • 4.1.1 Authentisierung zur Registry
    • 4.1.2 Build & Push eines Image
    • 4.1.3 Pull eines Image
  • 4.2 GitLab Kubernetes Agent
    • 4.2.1 Installation & Registrierung
    • 4.2.2 Push-Based Deployment
  • 4.3 GitOps
    • 4.3.1 GitOps mit Flux
    • 4.3.2 GitOps mit GitLab Agent
  • 4.4 Environments
  • 4.5 Releases
  • 4.6 Monitoring
    • 4.6.1 Grafana
    • 4.6.2 ELK-Stack


5 Git Workflows

  • 5.1 Zentralisierter Workflow
  • 5.2 Feature Branching
  • 5.3 Personal Branching
  • 5.4 GitFlow
  • 5.5 GitLab Flow
    • 5.5.1 Release Branches in GitLab Flow