Java DevOps: Development und Delivery mit Docker und Kubernetes - JavaDDK

Beschreibung

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 der Aufbau von Build Pipelines für Continuous Delivery/Deployment mit Systemen wie Gitlab-CI oder Jenkins thematisiert, welche das automatisierte Ausrollen der Anwendung in einem Kubernetes-Cluster ermöglichen.
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 Build Pipeline für Continuous Delivery. Dabei wird auch auf die Möglichkeiten und Problemstellungen der lokalen Entwicklung eingegangen.

Nach diesem Seminar beherrschen Sie die Grundlagen von Docker und Kubernetes und können Java/JEE-Anwendungen damit betreiben und automatisiert qualitätsgesichert in Kubernetes-Cluster ausrollen.

expand_more chevron_right Zielgruppe

Dieses Seminar richtet sich an:
Entwickler und Teamleiter, die Java/JEE-Anwendungen für Container-Umgebungen entwickeln, in Docker/Kubernetes betreiben und mit Continuous Delivery ausrollen wollen.
 

    expand_more chevron_right Vorkenntnisse

    Für dieses Seminar werden folgende Vorkenntnisse empfohlen:
    Grundlegende Java-Kenntnisse werden vorausgesetzt.
    Kenntnisse über Linux und Networking sind hilfreich, werden aber nicht vorausgesetzt.

    expand_more chevron_right Detail-Inhalte

    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/Deployment
    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
    • Deployment 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.
    • expand_more chevron_right event_available 03.04.-05.04.2023 03.04.2023 Seminarzeitentimer3 Tage roomVirtual-Training (VILT)
      • expand_more chevron_right Virtual Classroom 2.535,00
        • Live Online Training im virtuellen Klassenraum
        • Live Vortrag inkl. Interaktion mit dem/der Trainer*in
        • Seminarunterlagen, Teamwork, Labs
        • Keine hohen Hardware Anforderungen, dennoch Zugriff auf die gewohnte professionelle Übungsumgebung
        • keine Anfahrt ins Seminarzentrum notwendig