-
Filière :
Architecture & Intégration
-
Sous-filière :
SOA & MicroServices
-
Référence
AE-QKSE
-
Durée
3 jours (21 h)
-
Prix par personne HT
2 050 € HT
Description
L’univers du développement back avec Java a beaucoup évolué ces dernières années : l’arrêt du support de Java EE par Oracle, le désintérêt des serveurs d’application, l’arrivée des conteneurs font que développer aujourd’hui un back en Java n’a plus grand chose à voir avec la façon dont on le faisait il y a 10 ans.
Cependant, les technologies sous-jacentes n’ont pas été profondément modifiées : HTTP est toujours stateless et déconnecté, nous avons toujours besoin d’authentification et d’accéder à des bases de données, nous avons toujours besoin de communiquer avec des messages asynchrones, et nos applications doivent toujours être exploitées ; mais de façons différentes.
Les exigences qualité ont, quant à elles, beaucoup évolué ; il n’est plus envisageable aujourd’hui de développer une application sans test ou de déployer manuellement. Le CI/CD a profondément modifié notre façon de construire, délivrer, de déployer, quels que soient les environnements.
Cette formation présente Quarkus aux développeurs, pour qu’ils soient le plus rapidement possible efficaces avec ce framework, de façon à faciliter leur onboarding sur des projets et être en capacité d’exploiter Quarkus à son plein potentiel.
Objectifs pédagogiques
- Etre près à embarquer sur un projet Quarkus
- Savoir développer des services REST en architecture microservice
- Savoir dialoguer avec une solution de messaging asynchrone
- Savoir accéder à une base de données de façon non bloquante
- Savoir sécuriser son API
- Savoir comment rendre son application Cloud-Native
Public cible
- Développeurs Java ne connaissant pas Quarkus
Pré-requis
- Connaissance du développement Java
- Connaissance du développement Java EE / Jakarta EE
- Connaissance des principes Microservices et/ou SOA recommandée
Modalités d’évaluation
L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation.
Programme de la formation
Quarkus ? facile !
- support des standards
- convention over configuration
- outils de développement (DevServices, LiveReload, Continuous Testing)
- TP : création d’un projet Hello World !
Quarkus API Rest
- REST avec JAX-RS
- implémentation ReastEasy
- gestion centralisée des erreurs (@Provider)
- tests avec RestAssured (@QuarkusTest)
- documentation avec OpenAPI
- accéder à des services REST distants (@RegisterRestClient)
- TP : création d’une API REST
- TP : création d’un client d’API REST
Quarkus & bases de données relationnelles
- configurer l’accès à la base de données
- JPA / Hibernate / PanacheORM
- Data Caching (@CacheResult)
- TP : mise en oeuvre de CRUD avec Panache
Quarkus Sécurité
- authentification via OAuth 2
- authorisation (@RolesAllowed, @PermitAll, @DenyAll, @Authenticated, @TestSecurity)
- TP : authentification avec un fournisseur OAuth2
- TP : sécurisation de l’API
Quarkus et reactive messaging
- introduction à la programmation réactive
- SmallRye Reactive messaging (@Incoming, @Outgoing, @Channel)
- Uni et Multi
- configuration des serveurs et topics via application.properties
- Dev Services pour Kafka
- TP : mise en oeuvre d’une communication asynchrone par message
Quarkus supervision et monitoring
- Configuration (@ConfigProperty, Profiles, Config Sources)
- indicateurs de santé (@Startup, @Readiness, @Liveness)
- métrologie (@Counted, @Timed)
- tolérance aux pannes (@Retry, @Timeout)
- reprise sur incidents (@Fallback, @CircuitBreaker)
- TP : mise en oeuvre d’une solution de fallback et de reprise de service
Introduction à GraalVM
- intérêt de la compilation native
- limites de l’implémentation native
- TP : Benchmarking des deux solutions
Quarkus déploiement vers le Cloud
- packaging JVM
- packaging natif
- conteneurisation avec Docker
- Kubernetes
- Kubernetes Config (Deployment Kind, Secrets, Namespaces)
- Build et Déploiement vers kubernetes
- Service Binding
- TP : déploiement des applications développées pendant la formation vers un cluster Kubernetes
Programme mis à jour le