Créer facilement des microservices (ou cloud native java) avec Eclipse MicroProfile

Créer facilement des microservices (ou cloud native java) avec Eclipse MicroProfile

'architecture des microservices apporte son lot d'avantages mais surtout des nouveaux challenges pour les équipes de développements.

Le monde Java n'est pas en reste, profitant des spécifications matures de Java EE / Jakarta EE (JAX-RS, CDI..), une communauté s'est construite en essayant d'apporter des éléments de réponses aux nouveaux défis : MicroProfile sous l'égide de la fondation Eclipse. Pour cela, une série de nouvelles spécifications ont été créés : Config, OpenAPI, Rest Client, HealthCheck, Propagation JWT, Fault Tolerance, Metrics.

Le déploiement est sous forme d'uberjar, c'est à dire sans installation de serveur d'applications au préalable. On démarre comme une simple application java.

La communauté aime la pluralité. Cela est aussi vraie pour Eclipse Microprofile avec plusieurs implémentations disponibles : thorntail, payara, helidon, tomee, open liberty et d'autres.

Au delà d'une introduction sur ce projet, nous allons aborder les différentes spécifications par l'exemple (c'est à dire du code). Nous verrons ainsi leurs intérêts et leurs utilisations.

De plus, la dernière version Eclipse Microprofile 2.0 s'aligne sur les spécifiations Java EE / Jakarta EE 8.

1b68f6b0a6d935ed67efa237a27be403?s=128

Lilian BENOIT

April 17, 2019
Tweet

Transcript

  1. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 1/132 Créer facilement des Créer facilement des Créer facilement des Créer facilement des microservices microservices microservices microservices (ou cloud native java) (ou cloud native java) (ou cloud native java) (ou cloud native java) avec Eclipse MicroProfile avec Eclipse MicroProfile avec Eclipse MicroProfile avec Eclipse MicroProfile Lilian BENOIT @Lilian_Benoit 1
  2. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 2/132 Qui suis-je ? Qui suis-je ? Qui suis-je ? Qui suis-je ? ESN Bordelaise BordeauxJUG Leader @Lilian_benoit https://github.com/lilian-benoit 2
  3. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 3/132 Qu'est-ce que Eclipse MicroProfile Qu'est-ce que Eclipse MicroProfile Qu'est-ce que Eclipse MicroProfile Qu'est-ce que Eclipse MicroProfile ? ? ? ? 3 . 1
  4. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 4/132 Développement Développement Changement de style : Front-end avec des framework React/Angular/Vue.js Applications mobiles Microservices Cloud 3 . 2
  5. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 5/132 Microservices Microservices Amène : Des nouvelles fonctionnalités plus rapidement Mise à l'échelle des services indépendamment ... 3 . 3
  6. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 6/132 Cloud Cloud Payer ce que l'on consomme Réduire le temps de développement vis à vis du marché Contenaires (Docker / Rocket / ...) Mise à jour graduelle A/B Testing ... 3 . 4
  7. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 7/132 Et Java, langage de prédilection Et Java, langage de prédilection ? ? Durant 20 ans, Java a emporté : Portabilité Maturité Stabilité 3 . 5
  8. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 8/132 Java EE trop lourd ? Java EE trop lourd ? Java EE trop lourd ? Java EE trop lourd ? 3 . 6
  9. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 9/132 Mais c'est une plateforme riche Mais c'est une plateforme riche avec la possibilité de faire des services avec des spécifications : JAX-RS JSON-P et des solutions modulaires 3 . 7
  10. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 10/132 Démonstration Démonstration Démonstration Démonstration 3 . 8
  11. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 11/132 Lenteur sur les nouveautés dans JavaEE ? Lenteur sur les nouveautés dans JavaEE ? Lenteur sur les nouveautés dans JavaEE ? Lenteur sur les nouveautés dans JavaEE ? 3 . 9
  12. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 12/132 3 . 10
  13. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 13/132 MicroProfile est né en 2016 MicroProfile est né en 2016 comme une réponse par la communauté pour la communauté Editeurs Java Champion Groupe d'utilisateurs Sociétés 3 . 11
  14. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 14/132 3 . 12
  15. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 15/132 La fondation Eclipse a été choisi pour accueillir l'initiative 3 . 13
  16. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 16/132 Des nouvelles spécifications Des nouvelles spécifications Itération rapide de nouvelles fonctionnalités Consensus sur les interfaces Standardisation Pas d'implémentation de référence (versus JCP) 3 . 14
  17. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 17/132 Première spécification: Config Première spécification: Config 3 . 15
  18. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 18/132 3 . 16
  19. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 19/132 MicroProfile 1.2 MicroProfile 1.2 HealthCheck Metrics JWT Propagation Fault Tolerance 3 . 17
  20. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 20/132 3 . 18
  21. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 21/132 MicroProfile 1.3 MicroProfile 1.3 Open Tracing Open API Rest Client 3 . 19
  22. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 22/132 3 . 20
  23. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 23/132 MicroProfile 2.0 MicroProfile 2.0 Passage à Java EE 8.0 3 . 21
  24. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 24/132 3 . 22
  25. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 25/132 3 . 23
  26. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 26/132 MicroProfile - Config MicroProfile - Config MicroProfile - Config MicroProfile - Config 4 . 1
  27. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 27/132 Agréger les configurations Agréger les configurations à partir de plusieurs sources Propriété Variable d'environnement ... ConfigSource 4 . 2
  28. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 28/132 Exemple de fichier de configuration Exemple de fichier de configuration Exemple de fichier de configuration Exemple de fichier de configuration com.acme.myproject.someserver.url = http://some.server/some/endpt com.acme.myproject.someserver.port = 9085 com.acme.myproject.someserver.active = true com.acme.other.stuff.name = Karl com.acme.myproject.notify.onerror=karl@mycompany,sue@mcompany 4 . 3
  29. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 29/132 Récupération par programmation Récupération par programmation Récupération par programmation Récupération par programmation Config config = ConfigProvider.getConfig(); return config.getValue(name, String.class); 4 . 4
  30. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 30/132 Récupération par Injection Récupération par Injection Récupération par Injection Récupération par Injection public MaClasseExemple { @Inject @ConfigProperty(name="com.acme.myproject.someserver.url") String urlEndPoint; } 4 . 5
  31. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 31/132 Démonstration Démonstration Démonstration Démonstration 4 . 6
  32. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 32/132 ConfigSource par défaut ConfigSource par défaut Propriétés système (ordinal : 400) Variables d'environnement (ordinal : 300) ConfigSource pour chaque fichier microprofile-config.properties trouvé (ordinal : 100) 4 . 7
  33. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 33/132 Variables d'environnement Variables d'environnement Recherche de la propriété : com.ACME.myproject com.ACME.myproject com_ACME_myproject COM_ACME_MYPROJECT Le 1e item trouvé est renvoyé 4 . 8
  34. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 34/132 ConfigSource personnalisée ConfigSource personnalisée via l'interface ConfigSource via l'interface ConfigSourceProvider Définition et Utilisation du java.util.ServiceLoader 4 . 9
  35. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 35/132 ConfigSource disponible ConfigSource disponible décrit par la spécification par le fournisseur MicroProfile par des extensions 4 . 10
  36. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 36/132 4 . 11
  37. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 37/132 Et les types ? Et les types ? L'API MicroProfile Config utilise uniquement les chaines de caractères 4 . 12
  38. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 38/132 Convertisseurs intégrés Convertisseurs intégrés boolean / Boolean ("true", "1", "YES", "Y", "ON" => vrai) int / Integer long / Long float / Float (. comme séparateur) double / Double (. comme séparateur) Class (Résultat Class.forName) 4 . 13
  39. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 39/132 Convertisseurs de tableaux Convertisseurs de tableaux Le délimiteur est la virgule , Le caractère d'échappement \ sont intégrés 4 . 14
  40. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 40/132 Convertisseurs de tableaux (exemple) Convertisseurs de tableaux (exemple) Convertisseurs de tableaux (exemple) Convertisseurs de tableaux (exemple) Tableau - String[] Liste - List<String> Ensemble - Set<String> com.acme.myproject.notify.onerror=karl@mycompany,sue@mcompany @Inject @ConfigProperty(name="com.acme.myproject.notify.onerror") private String[] mailForNotifyOnError; @Inject @ConfigProperty(name="com.acme.myproject.notify.onerror") private List<String> mailForNotifyOnError; @Inject @ConfigProperty(name="com.acme.myproject.notify.onerror") private Set<String> mailForNotifyOnError; 4 . 15
  41. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 41/132 Convertisseurs de type T Convertisseurs de type T Constructeur avec String static T of(String) static T valueOf(String) static T parse(CharSequence) 4 . 16
  42. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 42/132 Choix des implémentations Choix des implémentations Choix des implémentations Choix des implémentations 5 . 1
  43. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 43/132 5 . 2
  44. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 44/132 Autres implémentations Autres implémentations Payara (Micro ou Server) - mp 2.1 Apache TomEE - mp 2.0 Helidon (Oracle) - mp 1.2 Launcher (Fujitsu) - mp 1.1 KumuluzEE - mp 1.1 Hammock - mp 1.1 5 . 3
  45. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 45/132 MicroProfile - Health Checks MicroProfile - Health Checks MicroProfile - Health Checks MicroProfile - Health Checks 6 . 1
  46. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 46/132 Objectifs Objectifs DOIT être compatible avec les plateformes cloud DOIT être approprié pour une communication entre machines DEVRAIT être lisible par un humain 6 . 2
  47. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 47/132 Point d'entrée unique Point d'entrée unique /health 6 . 3
  48. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 48/132 Exemple de réponse Exemple de réponse Exemple de réponse Exemple de réponse { "outcome": "DOWN", "checks": [ { "name": "Connexion BDD", "state": "DOWN", "data": { "key": "value", "foo": "bar" } }, { "name": "Connexion LDAP", "state": "UP" } ] } 6 . 4
  49. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 49/132 Implémentation Implémentation Interface HealthCheck HealthCheckResponse Builder HealtCheckResponseBuilder 6 . 5
  50. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 50/132 Interface Interface Interface Interface @FunctionalInterface public interface HealthCheck { HealthCheckResponse call(); } 6 . 6
  51. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 51/132 Exemple en Java Exemple en Java Exemple en Java Exemple en Java public class CheckDiskspace implements HealthCheck { @Override public HealthCheckResponse call() { return HealthCheckResponse.named("diskspace") .withData("free", "780mb") .up() .build(); } } 6 . 7
  52. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 52/132 Exemple avec CDI Exemple avec CDI Exemple avec CDI Exemple avec CDI @Health @ApplicationScoped public class MyCheck implements HealthCheck { public HealthCheckResponse call() { [...] } } 6 . 8
  53. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 53/132 Démonstration Démonstration Démonstration Démonstration 6 . 9
  54. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 54/132 Etat système - Code HTTP Etat système - Code HTTP Code HTTP Charge JSON State Commentaires 200 Oui UP Pas de vérifications 200 Oui UP Vérifications présentes 503 Oui DOWN Echec des vérifications 500 Non Indéterminé Erreur lors du traitement 6 . 10
  55. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 55/132 MicroProfile - Metrics MicroProfile - Metrics MicroProfile - Metrics MicroProfile - Metrics 7 . 1
  56. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 56/132 Motivation Motivation Agnostique dans un environnement distribué et polyglotte 7 . 2
  57. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 57/132 Trois Scopes Trois Scopes base (obligatoire) vendor application 7 . 3
  58. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 58/132 Notion de Tags Notion de Tags export MP_METRICS_TAGS=app=shop,tier=integration 7 . 4
  59. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 59/132 Notion de Méta-données Notion de Méta-données Unit Type Description (en option) DisplayName (en option) Tags (en option) reusable (en option) (default : false) 7 . 5
  60. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 60/132 Type de Méta-données Type de Méta-données counter gauge meter histogram timer 7 . 6
  61. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 61/132 EndPoint EndPoint GET ou OPTIONS /metrics /metrics/<scope> /metrics/<scope>/<metrics_name> 7 . 7
  62. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 62/132 Type : Gauge Type : Gauge Type : Gauge Type : Gauge { "responsePercentage": 48.45632 } 7 . 8
  63. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 63/132 Type : Counter Type : Counter Type : Counter Type : Counter { "hitCount": 45 } 7 . 9
  64. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 64/132 Type : Meter Type : Meter Type : Meter Type : Meter { "requests": { "count": 29382, "meanRate": 12.223, "oneMinRate": 12.563, "fiveMinRate": 12.364, "fifteenMinRate": 12.126, } 7 . 10
  65. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 65/132 Type : Histogram Type : Histogram Type : Histogram Type : Histogram { "daily_value_changes": { "count":2, "min":-1624, "max":26, "mean":-799.0, "stddev":825.0, "p50":26.0, "p75":26.0, "p95":26.0, "p98":26.0, "p99":26.0, "p999":26.0 } } 7 . 11
  66. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 66/132 Sécurité Sécurité Serveur DOIT implémenter HTTPS par défaut Identification de l'utilisateur Sécurité peut être ignoré pour localhost 7 . 12
  67. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 67/132 Démonstration Démonstration Démonstration Démonstration 7 . 13
  68. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 68/132 MicroProfile - OpenAPI MicroProfile - OpenAPI MicroProfile - OpenAPI MicroProfile - OpenAPI 8 . 1
  69. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 69/132 Exposition des API Exposition des API Les applications modernes exposent des API notamment des API RESTful 8 . 2
  70. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 70/132 Contrat de services Contrat de services Equivalent du WSDL 8 . 3
  71. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 71/132 Date Evènement Août 2011 Spécification Swagger Sept. 2014 Swagger v2.0 Déc. 2015 Donation de Swagger Jui. 2017 Open API v3.0 8 . 4
  72. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 72/132 Principes de MP OpenAPI Principes de MP OpenAPI Enrichir les annotations JAX-RS Point d'entrée unique Configuration via MP Config /openapi mp.openapi..... mp.openapi.extensions..... 8 . 5
  73. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 73/132 Démarche Démarche Augmenter les annotations JAX-RS Traiter le fichier de définition statique Par programmation 8 . 6
  74. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 74/132 Définition via Annotations Définition via Annotations 8 . 7
  75. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 75/132 Définition via Fichier Définition via Fichier META-INF/openapi.yml|yaml|json 8 . 8
  76. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 76/132 Définition par programmation Définition par programmation org.elipse.microprofile.openapi.models OASFactory, OASModelReader, OASFilter OASFactory.createObject(Info.class) .title("Mon API") .description("Mon API à moi") .version("1.0.0"); 8 . 9
  77. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 77/132 Fonctionnement Fonctionnement Charger la configuration Appeler le OASModelReader Rechercher fichier statique Traiter les annotations Filtrer via OASFilter mp.openapi 8 . 10
  78. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 78/132 Démonstration Démonstration Démonstration Démonstration 8 . 11
  79. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 79/132 Pause / Café Pause / Café Pause / Café Pause / Café 9
  80. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 80/132 MicroProfile - Rest Client MicroProfile - Rest Client MicroProfile - Rest Client MicroProfile - Rest Client 10 . 1
  81. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 81/132 Objectifs Objectifs Client REST TypeSafe (Interface Java) 10 . 2
  82. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 82/132 Exemple Exemple Exemple Exemple @Path("/users") @Produces("application/json") @Consumes("application/json") public interface UsersClient { @GET List<User$gt; getUsers(); @GET @Path("/{userId}") User getUser(@PathParam("userId") String userId); @POST Response createUser(@HeaderParam("Authorization") String authorization, User user); @DELETE @Path("/{userId}") Response deleteUser(@HeaderParam("Authorization") String authorization, @PathParam("userId") String userId); } 10 . 3
  83. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 83/132 Fonctionnalités additionnelles Fonctionnalités additionnelles Fonctionnalités additionnelles Fonctionnalités additionnelles @Path("/somePath") public interface MyClient { @POST @ClientHeaderParam(name="X-Request-ID", value="{generateRequestId}") Response postWithRequestId(MyEntity entity); default String generateRequestId() { return UUID.randomUUID().toString(); } } 10 . 4
  84. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 84/132 Définition doit être conforme Définition doit être conforme Définition doit être conforme Définition doit être conforme public interface MultipleVerbsClient { @GET @DELETE Response ambiguousClientMethod() } @Path("/somePath") public interface BadInterfaceTwo { @GET @Path("/abc") public Response quickCheck(@PathParam("anotherParam") String entryNameToCheck); } 10 . 5
  85. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 85/132 Extension Extension ClientResponseFilter ClientRequestFilter MessageBodyReader MessageBodyWriter ParamConverter ReaderInterceptor WriterInterceptor ResponseExceptionMapper 10 . 6
  86. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 86/132 Mappage des erreurs en exception Mappage des erreurs en exception Mappage des erreurs en exception Mappage des erreurs en exception @Dependent @RegisterRestClient @RegisterProvider(UnknownUrlExceptionMapper.class) @Path("/properties") public interface SystemClient { @GET @Produces(MediaType.APPLICATION_JSON) public Properties getProperties() throws UnknownUrlException; } 10 . 7
  87. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 87/132 Définition ResponseExceptionMapper Définition ResponseExceptionMapper Définition ResponseExceptionMapper Définition ResponseExceptionMapper @Provider public class UnknownUrlExceptionMapper implements ResponseExceptionMapper<UnknownUrlExcep Logger LOG = Logger.getLogger(UnknownUrlExceptionMapper.class.getName()); @Override public boolean handles(int status, MultivaluedMap<String, Object> headers) { LOG.info("status = " + status); return status == 404; } @Override public UnknownUrlException toThrowable(Response response) { return new UnknownUrlException(); } } 10 . 8
  88. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 88/132 JSON-P and JSON-B Providers JSON-P and JSON-B Providers @Produces("*/json") @Consumes("*/json") javax.json.JsonValue (JSON-P seulement) 10 . 9
  89. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 89/132 Utilisation via des builders Utilisation via des builders 10 . 10
  90. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 90/132 Support de CDI Support de CDI 10 . 11
  91. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 91/132 Support de MicroProfile Config Support de MicroProfile Config com......MyServiceClient/mp-rest/url com......MyServiceClient/mp-rest/uri com......MyServiceClient/mp-rest/scope com......MyServiceClient/mp-rest/providers com......MyServiceClient/mp-rest/connectTimeout com......MyServiceClient/mp-rest/readTimeout 10 . 12
  92. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 92/132 Démonstration Démonstration Démonstration Démonstration 10 . 13
  93. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 93/132 Support les appels asynchrones Support les appels asynchrones Support les appels asynchrones Support les appels asynchrones public interface MyAsyncClient { @GET @Path("/one") CompletionStage>Response< get(); @POST @Path("/two") CompletionStage>String< post(String entity); } 10 . 14
  94. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 94/132 MicroProfile - Open Tracing MicroProfile - Open Tracing MicroProfile - Open Tracing MicroProfile - Open Tracing 11 . 1
  95. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 95/132 Problématique Problématique Dans le cas de plusieurs services, potentiellement distribués, il est important de suivre les différents appels liés à une demande utilisateur. 11 . 2
  96. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 96/132 11 . 3
  97. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 97/132 11 . 4
  98. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 98/132 Pré-requis Pré-requis Les différents services DOIVENT s'accorder pour transférer une corrélation ID Les différents services DEVRAIENT avoir des traces similaires au sein d'un service distribué 11 . 5
  99. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 99/132 Aucun périmètre Aucun périmètre Pas de définition Pas d'implémentation Pas de configuration du système de trace Pas de format associé 11 . 6
  100. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 100/132 Objectif Objectif L'objectif est de s'assurer d'avoir un système permettant ce type de mécanisme. 11 . 7
  101. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 101/132 Vocabulaire Vocabulaire Notion de SpanContext 11 . 8
  102. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 102/132 Activation implicite Activation implicite DOIT pouvoir extraire les SpanContext à partir de JAX-RS (entrant) DOIT pouvoir démarrer et terminer un SpanContext avec JAX-RS (entrant) DOIT pouvoir inclure un SpanContext pour les requêtes (sortantes) DOIT pouvoir démarrer et terminer un SpanContext avec JAX-RS (sortantes) 11 . 9
  103. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 103/132 Activation explicite Activation explicite Annotation value=[true|false] operationName="" @Traced 11 . 10
  104. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 104/132 Configuration du Tracer Configuration du Tracer @Inject io.opentracing.Tracer configuredTracer; 11 . 11
  105. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 105/132 Démonstration Démonstration Démonstration Démonstration 11 . 12
  106. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 106/132 MicroProfile - JWT MicroProfile - JWT MicroProfile - JWT MicroProfile - JWT 12 . 1
  107. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 107/132 Objectifs Objectifs Sécurité est requis dans les architectures microservices. Sans état Création d'un nouveau contexte de sécurité Eviter un service tiers Propager la sécurité 12 . 2
  108. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 108/132 Json Web Token (JWT) Json Web Token (JWT) N'enregistre pas l'état du client Format JSON Peut vérifier la validité du token Peut vérifier l'émetteur du token 12 . 3
  109. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 109/132 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibm tZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImp0aSI6IjEwMDA3ZjRkLWQ5NT zNy05YjJjLWFhZTBlMGE5Y2IyOSIsImlhdCI6MTU1NDY3MDU4NSwiZXhwIjoxNT 0MTg1fQ.F67gCYRGfs084Uz8egKy1JmCj4G88WPr44rVPkUuYls 12 . 4
  110. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 110/132 12 . 5
  111. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 111/132 Utilisation Utilisation Utilisation Utilisation GET /resource/1 HTTP/1.1 Host: example.com Authorization: Bearer mF_9.B5f-4.1JqM 12 . 6
  112. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 112/132 Standards associés Standards associés JSON Web Signature JSON Web Encryption 12 . 7
  113. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 113/132 Prise en compte dans MP JWT Prise en compte dans MP JWT Utilisation en tant que token d'authentification lien entre claims groups et roles Peut être mappé avec IdentityStore (JSR 375) Peut supporter des standards supplémentaires (IANA JWT) 12 . 8
  114. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 114/132 claim spécifique claim spécifique claim upn (user principal) claim groups (mappés avec les rôles) 12 . 9
  115. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 115/132 Exemple Exemple Exemple Exemple { "typ": "JWT", "alg": "RS256", "kid": "abc-1234567890" } { "iss": "https://server.example.com", "jti": "a-123", "exp": 1311281970, "iat": 1311280970, "sub": "24400320", "upn": "jdoe@server.example.com", "groups": ["red-group", "green-group", "admin-group", "admin"], } 12 . 10
  116. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 116/132 Mise en oeuvre Mise en oeuvre Mise en oeuvre Mise en oeuvre @LoginConfig(authMethod = "MP-JWT", realmName = "TCK-MP-JWT") @ApplicationPath("/api") public class MPApplication extends Application { } 12 . 11
  117. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 117/132 Utilisation avec CDI Utilisation avec CDI Utilisation avec CDI Utilisation avec CDI @Path("/endp") @DenyAll @ApplicationScoped public class RolesEndpoint { @Inject private JsonWebToken callerPrincipal; 12 . 12
  118. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 118/132 Intégration avec Java EE Intégration avec Java EE Intégration avec Java EE Intégration avec Java EE javax.ws.rs.core.SecurityContext.getUserPrincipal() javax.ws.rs.core.SecurityContext#isUserInRole(String) 12 . 13
  119. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 119/132 Intégration avec JSR-250 Intégration avec JSR-250 Intégration avec JSR-250 Intégration avec JSR-250 @RolesAllowed @PermitAll @DenyAll 12 . 14
  120. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 120/132 Démonstration Démonstration Démonstration Démonstration 12 . 15
  121. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 121/132 Configuration Configuration Public Key Cryptography Standards #8 (PKCS#8) PEM JSON Web Key (JWK) JSON Web Key Set (JWKS) JSON Web Key (JWK) Base64 URL encoded JSON Web Key Set (JWKS) Base64 URL encoded 12 . 16
  122. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 122/132 Configuration via des propriétés Configuration via des propriétés mp.jwt.verify.publickey mp.jwt.verify.publickey.location mp.jwt.verify.issuer 12 . 17
  123. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 123/132 MicroProfile - Fault Tolerance MicroProfile - Fault Tolerance MicroProfile - Fault Tolerance MicroProfile - Fault Tolerance 13 . 1
  124. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 124/132 Objectifs Objectifs Améliorer la résistance des services vis à vis des pannes. 13 . 2
  125. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 125/132 Pattern connu Pattern connu Timeout Retry Fallback CircuitBreaker Bulkhead 13 . 3
  126. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 126/132 Utilisation de CDI Utilisation de CDI Classe Méthode 13 . 4
  127. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 127/132 Utilisation de MP Utilisation de MP MP Config MP Metrics 13 . 5
  128. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 128/132 Démonstration Démonstration Démonstration Démonstration 13 . 6
  129. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 129/132 Appel asynchrone possible Appel asynchrone possible @Asynchronous Non obligatoire Future ou CompletionStage Pas d'exception directement 13 . 7
  130. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 130/132 Conclusion Conclusion Conclusion Conclusion 14 . 1
  131. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 131/132 Futures Spécifications Futures Spécifications MP Reactive Streams Operator MP GraphQL MP Long Running Action Quarkus 14 . 2
  132. 18/04/2019 Créer facilement des microservices (ou cloud native java) avec

    Eclipse MicroProfile file:///home/lbenoit/Documents/personnel/conference/2019/2019-microprofile-universite/index.html?print-pdf 132/132 #DevoxxFR Merci Merci Merci Merci 14 . 3