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.