Schulung: Modernisierung von Jakarta EE-Anwendungen mit Quarkus
Von Jakarta EE auf dem Application Server zu Cloud Native mit Quarkus
- Vergleich Application Server und Quarkus
- Standards für serverseitige Software
- Cloud Readiness
- Projektaufbau und Konfiguration
- Basis-Bestandteile: Webservices, Persistenz, Dependency Injection
- Security
- Messaging
- Testing
- Native Images
In diesem Seminar lernen Sie, wie Anwendungen auf Basis von Jakarta EE (aka Java EE) auf das Server-Framework Quarkus migriert werden können.
Da Quarkus einen Großteil des Standards wie bspw. RESTful Webservices implementiert, konzentrieren wir uns hier auf die Unterschiede und die zusätzlichen Möglichkeiten, die Quarkus im Vergleich zu klassischen Application-Server-Anwendungen bietet:
Für die Anbindung von Datenbanken lernen Sie neben der Konfiguration von Jakarta Peristence auch die Alternativen Hibernate Panache und Hibernate Data kennen.
Messaging betreiben Sie weiterhin mit Jakarta Messaging, nutzen ggf. aber alternativ Reactive Messaging mit Kafka o. ä.
Für Security bieten sich OpenID Connect und JSON Web Tokens an. Wir zeigen im Kurs, wie Quarkus-Anwendungen so konfiguriert werden können, dass sie bspw. KeyCloak als Identity Provider nutzen.
Zur professionellen Softwareentwicklung gehört ohne Frage Testing. Sie lernen im Kurs, die attraktiven Angebote zu nutzen, die Quarkus dazu macht.
Sie erfahren, wie Anwendungen containerisiert werden können, z. B. für den Betrieb in Kubernetes. Für besonders platzsparende Deployments erlernen Sie, wie Quarkus-Anwendungen in Maschinencode compiliert und nativ betrieben werden können.
Nach dem Kurs sind Sie in der Lage, fundiert zu entscheiden, wann sich eine Migration einer JEE-Anwendung lohnt und welche Migrationsstrategie für ihre Anwendungen geeignet ist.
Überblick
- Warum Quarkus?
- Cloud Native
- Container, Kubernetes
- Bestandteile von Server-Anwendungen
- Jakarta EE, MicroProfile
- Monolith, Modulith, Microservice
Quarkus-Projekte
- Bootstrapping mit Maven und Quarkus CLI
- Extensions
- Build Time Processing
- Dev Mode, Dev Services, Dev UI
- Konfiguration
- Logging
- (Continuous) Testing mit JUnit, @QuarkusTest und RestAssured
REST Services
- Quick Refresh: Jakarta RESTful Webservices (aka JAX-RS)
- Konfiguration
Persistenz
- Quick Refresh: Jakarta Persistence (aka JPA)
- Konfiguration und Besonderheiten in Quarkus
- JPA-Alternativen: Hibernate Panache / Hibernate Data
Dependency Injection
- Quick Refresh: CDI
- Eigenschaften der Quarkus-Implementierung (ARC)
- Ersatz von Enterprise Beans (aka EJB) durch CDI Beans
Collaboration und Messaging
- REST Client
- Quick Refresh: Jakarta Messaging (aka JMS)
- Messaging-Alternativen: Kafka oder AMQP
Security
- JWT (JSON Web Token) Handling
- OpenID Connect
Testing
- JUnit, @QuarkusTest
- Dev Services (Testcontainer)
- Test Profiles
- Mocking
Native Images
- Build Process mit GraalVM/Mandrel
- Containerisierung
- Limitierungen
Sie entwickeln Anwendungen und betreiben sie auf Servern wie IBM Webshere, JBoss und Oracle Weblogic oder leiten Projekte auf Basis
von Jakarta EE (früher Java EE). Und Sie wollen erfahren, wie Sie Ihre Anwendungen durch den Einsatz von Quarkus modernisieren und verschlanken können?
Dann sollten Sie diesen Kurs besuchen!
Diese Kenntnisse sollten Sie mitbringen:
- Entwicklung serverseitiger Anwendungen mit Jakarta EE
Vorteilhaft – aber nicht notwendig – sind grundlegende Kenntnisse über OCI Container (aka Docker) und Kubernetes.