Inhalt des Trainings
Einführung in Entwicklung und Betrieb containerbasierter Java-Anwendungen. In diesem Seminar erlernen Sie die Nutzung von Docker und Kubernetes für Java-Anwendungen. Im Blickpunkt liegen die Werkzeuge, Konzepte und Vorgehensweisen der Container-Umgebung Docker und der Orchestrierungsplattform Kubernetes, die Sie zur Bereitstellung containerisierter Java/JEE-Anwendungen benötigen. Sie erstellen aus Java- SE- und -EE-Anwendungen lauffähige Images, betreiben sie ohne Status oder mit Persistenz in Datenbanken und nutzen die diversen Verwaltungs- und Skalierungsmöglichkeiten von Kubernetes.
Zielgruppen
an Entwickler*innen und Teamleiter*innen, die Container-Umgebungen für Java/JEE-Anwendungen nutzen wollen.
Vorkenntnisse
Grundlegende Java-Kenntnisse werden vorausgesetzt. Kenntnisse über Linux und Networking sind hilfreich, werden aber nicht vorausgesetzt.
Detail-Inhalte
Docker
- Motivation für den Einsatz von Container-Images
- Gegenüberstellung virtuelle Maschine vs. Container
- Begrifflichkeiten: Image, Registry, Container
- Docker-Kommandos im Überblick
- 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
Zur Vertiefung der Themen dienen umfangreiche Übungen, in denen praxisnahe Java/JEE-Beispielanwendungen zum Einsatz kommen: Standalone-Anwendungen, EE-Anwendungen, Persistenz mit Datenbanken.