Java Microservices mit dem Eclipse MicroProfile & Quarkus

Schulung / Webinar

Das Eclipse MicroProfile verspricht die standardisierte und herstellerunabhängige Entwicklung von Microservices für die Java Plattform. Das Profil basiert auf den Java Enterprise Technologien CDI, JSON sowie JAX-RS und erweitert diese um Microservices Patterns wie Health Check, Loadbalancing und Circuit Breaker.

Für das MicroProfile erstellte Microservices können in Cloud Infrastrukturen unter Docker, Kubernetes oder der Amazon Cloud betrieben werden.

Die zahlreichen Übungen der Schulung werden mit dem Quarkus Server von Red Hat durchgeführt. Neben dem Standard werden auch interessante Erweiterungen des Quarkus Servers behandelt. Die Schulung eignet sich dank der Standardisierung auch für Teilnehmer, die mit anderen Servern arbeiten.

Einführung

  • Java Microservices mit JEE?
  • Der Eclipse MicroProfile Standard
  • Vor- und Nachteile gegenüber Spring Boot
  • Die wichtigsten MicroProfile Server: Quarkus, Helidon, OpenLiberty und Payara

Die MicroProfile Standards im Überblick

  • Config
  • Fault Tolerance
  • Health
  • JWT Authentication
  • Metrics
  • OpenAPI
  • OpenTracing
  • REST Client

Entwicklung

  • Aufsetzen eines Microservice mit Quarkus Code
  • Zeit sparen mit der Hot Reload Funktion
  • Dependency Injection mit CDI
  • Die wichtigsten Annotationen

REST APIs

  • Erstellen von REST Ressourcen mit JAX-RS, JSON-B und JSON-P
  • Aufruf anderer Services mit dem deklarativen Client
  • Dokumentation mit Open API und Swagger

Datenbank Zugriff

  • Java Persistence API (JPA)
  • Wie du den DB-Zugriffscode mit Panache schlank und leichtgewichtig realisieren kannst
  • Transaktionen

Cloud Patterns

  • Health Checks
  • Mach es noch einmal Sam: Retries im Fehlerfall
  • Fault Tolerance und Circuit Breaker

Der Quarkus Server

  • Hot Reloading
  • Das Quarkus Maven Plugin
  • Die wichtigsten Quarkus Erweiterungen

Native Kompilierung mit Quarkus

  • Die GraalVM
  • Erzeugen von nativen Images für Windows, Linux und Mac OSX
  • Reduzierung des Footprints und der Startup Zeit
  • Native Images im Docker Container ausführen

Cloud native mit Docker und Kubernetes

  • Erstellen von Docker Images
  • Automatisierte Erstellung von Kubernetes Deployments
  • Zugriff auf Kubernetes Konfigurationen und Secrets
  • Readiness- und Liveness Probes

Integration mit Microservices

  • Container anstatt ESB
  • Das Camel Quarkus Projekt
  • Verpacken von Camel Routen

Betrieb

  • Konfiguration
  • Erstellen von ausführbaren Jars
  • Eigene Profile für Development, Test und Betrieb
  • Erstellen eigener Health Checks
  • Monitoring und Logging
  • Verfolgen von Aufrufen über mehrere Server mit OpenTracing und Jaeger

Security

  • Absicherung von Services mit JSON Web Tokens (JWS)
  • Rollenbasierte Zugriffskontrolle RBAC
  • Propagation der Identität
  • Ausblick: OAuth2

Microservices Testen

  • Unittests mit JUnit 5
  • Integrationstests
  • API Tests mit REST-Assured
  • Verwendung von Mocks

Ausblick ( je nach Zeit)

  • Messaging mit Apache Kafka und JMS
  • Microservices mit Kotlin

Zielgruppe

Java Entwickler

Vorkenntnisse

Grundlegende Kenntnisse in der Java Programmierung.

Dauer

2 Tage

Kursunterlage

Handouts aller in der Schulung präsentierten Folien sowie ein Skript mit detailierten Übungen.