Beschreibung
Java DevOps: Development und Delivery mit Docker und Kubernetes
Ziel
Dieses Seminar führt zunächst in die Nutzung von Docker und Kubernetes ein. Der Fokus liegt hier auf den für die Entwicklung von containerisierten Java/JEE-Anwendungen wichtigen Werkzeugen, Konzepten und Vorgehensweisen der Container-Umgebung Docker und der Orchestrierungsplattform Kubernetes. Anschließend wird das Aufbauen einer Pipeline für Continuous Delivery mit Jenkins thematisiert, welche das automatisierte Ausrollen der Anwendung in einem Kubernetes-Cluster ermöglicht.
Im Laufe des Kurses erstellen Sie aus Java-SE- und -EE-Anwendungen lauffähige Container-Images, betreiben diese in einem Kubernetes-Cluster und entwickeln eine dazugehörige realistische Gitlab-Pipeline für Continuous Delivery. Dabei wird auch auf die Möglichkeiten und Problemstellungen der lokalen Entwicklung eingegangen.
Kommende Starttermine
Inhalte / Module
Agenda
- Docker
- Motivation für den Einsatz von Container-Images
- Gegenüberstellung virtuelle Maschine vs. Container
- Begrifflichkeiten
- Image
- Registry
- Container
- Docker-Kommando
- Docker-Images laden, verwalten, starten
- Port-Mapping
- Logs einsehen
- Kommandos im Container ausführen
- Image-Erstellung
- Dockerfiles
- Java/JEE-Anwendung in Image packen
- Eigene Basisimages erstellen, bspw. für provisionierte EE-Server
- Multi-Stage-Builds zur Optimierung der Image-Größe nutzen
- Volumes einrichten und nutzen
- Registrys einsetzen
- Kubernetes
- Motivation für die Orchestrierung von Containern mit Kubernetes
- Grundsätzlicher Aufbau der Plattform
- Deklarativer Ansatz
- YAML-Files zur Beschreibung von Kubernetes-Objekten
- Building Blocks von Kubernetes
- Pod
- Deployment, Replica Set
- Service
- Volume, Volume Claim, Persistent Volume Claim, Storage Provider
- Nodeport, Loadbalancer und Ingress
- Namespace
- Secret
- Config Map
- Stateful Set
- Job
- Vorbereitung und Überwachung
- Init Container
- Readiness und Liveness Probe
- Continuous Delivery
- Motivation für Automatisierung
- Abgrenzung Continuous Integration, Delivery, Deployment
- Überblick unterschiedliche Vorgehensweisen für Deployment
- Gitlab
- Docker-Build in Container
- Deployment in Kubernetes-Cluster
- GitOps
- Deployen von Kubernetes Manifesten aus Git
- Grundlegende Vorgehensweise
- Überblick über Tools
- Argo-CD als Beispiel
- Deloyment aus Pipeline
- Lokale Entwicklung
- Generelle Problemstellung
- Entwickeln von lokaler IDE gegen Kubernetes-Cluster
- Einfaches Bereitstellen von Umgebungen für lokales Testen
- Überblick Werkzeuge (Skaffold, DevSpace, Telepresence, …)
- Vorgehensweisen für Java (EE)-Anwendungen
- Möglichkeiten der gängigen Java IDEs
Die Themen werden mit übergreifenden Übungen vertieft. Dabei kommen realistische Beispiele von Java/JEE-Anwendungen zum Einsatz: Standalone-Anwendungen, EE-Anwendungen, Persistenz mit Datenbanken. Darüber hinaus wird eine realistische Pipeline für Continuos Delivery entwickelt.
Zielgruppe / Voraussetzungen
Grundlegende Java-Kenntnisse werden vorausgesetzt. Kenntnisse über Linux und Networking sind hilfreich, werden aber nicht vorausgesetzt.
Dieser Kurs richtet sich an Software-Entwickler, Projektleiter und Architekten, die Java/JEE-Anwendungen für Container-Umgebungen entwickeln, in Docker/Kubernetes betreiben und mit Continuous Delivery ausrollen wollen.
Abschlussqualifikation / Zertifikat
Teilnahmezertifikat
Infos anfordern
GEDOPLAN
Seit 1979 unterstützt GEDOPLAN Beratung und Softwareentwicklung seine Kunden in den Bereichen Beratung, Reviews, Softwareentwicklung. Namhafte Unternehmen betreuen wir als langjährige Kunden, dabei stehen die Programmiersprache Java und die Plattformen Jakarta EE und Spring im Mittelpunkt. Seit mehr als 45...
Erfahren Sie mehr über GEDOPLAN und weitere Kurse des Anbieters.