Quarkus : l’essentiel

  • 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