CI/CD in der Cloud (Kubernetes)

Continuous Integration (CI) unterstützt den Entwicklungsprozess und führt automatisierte Build- und Test-Vorgänge durch. Neben der Prozess-Qualität erreicht CI dadurch eine Verbesserung der Software-Qualität. Continuous Integration ist eine notwendige Voraussetzung für Continuous Deployment oder Continuous Delivery (CD): eine automatisierte Auslieferung (Delivery) oder gar ein automatisches Rollout (Deployment) der Software. Der Vorgang des automatischen Deployments wird durch den Einsatz von Containern (CaaS: Container as a Service) erheblich vereinfacht. In diesem Seminar kommt als Container-Orchestrierung Kubernetes zum Einsatz. Gerade unter hohen Anforderungen von Agilität und Time-To-Market ist CI/CD in Kombination mit einer Container-Technologie unverzichtbar.Das Seminar demonstriert das Vorgehen von CI/CD. Sie nehmen in Beispiel-Projekten die Rolle eines Java-Entwicklers ein und bekommen in Übungen die Möglichkeit, praxisrelevante Erfahrungen mit CI-Prozessen zu sammeln. Sie konfigurieren Build-Server für den Build-Prozess. Darüber hinaus bekommen Sie erste Einblicke in die automatische Erstellung von Container-Images (Docker) und wie diese für ein automatisches Deployment in Kubernetes verwendet werden. Die in diesem Seminar verwendeten Werkzeuge Eclipse, Git, Maven, GitLab, Docker und Kubernetes sind nicht nur ohne Lizenzkosten professionell zu nutzen, sondern werden auch in der Praxis erfolgreich eingesetzt. So lassen sich die Erfahrungen des Seminars methodisch und operativ in den Entwicklungsalltag übertragen.

Zielgruppe:

Programmierer und Softwareentwickler, technische Projektleiter, DevOps-Engineers für Kubernetes

Voraussetzung:

Kenntnisse des Software-Entwicklungsprozesses. Von Vorteil sind: Grundkenntnisse der Erstellung von Docker-Images und Grundkenntnisse der Verwendung von Kubernetes.

Ziele/Nutzen des Seminars:

  • Sie haben eine klare Vorstellung vom kontinuierlichen Entwicklungsprozess.
  • Sie können Source-Code mit Eclipse erstellen und diesen mit Git verwalten.
  • Sie nutzen Maven für das Management von Abhängigkeiten und den Aufbau von Projekten.
  • Sie verwalten Tickets und konfigurieren den Build-Prozess mit GitLab.
  • Sie nutzen GitLab (alternativ) Jenkins als Build-Server.
  • Sie setzen Sonar zur Verbesserung der Code-Qualität ein.
  • Sie nutzen die GitLab-Pipeline als CD-Prozess um ihre Anwendung in einem Kubernetes-Cluster zu deployen.
  • Sie nutzen Argo CD um ihre Konfiguration der Anwendung inkl. der zugeteilten Kubernetesresourcen zu verwalten und versionieren

Inhalte:

  • Zyklus der Continuous Integration
  • Ticketmanagement mit GitLab
  • Quellcodeverwaltung mit Git und GitLab
  • Build-Prozess mit Maven
  • Zentrale Verwaltung von Software-Artefakten mit Sonartype Nexus Repository
  • Integration mit GitLab
  • Code-Qualität mit Sonar prüfen
  • Erstellung von Docker-Images
  • Automatisches Deployment per GitLab Pipelines nach Kubernetes
  • Konfigurationsanpassungen mir Argo CD

* alle Preise zzgl. der gesetzlich gültigen Mehrwertsteuer