Concevoir une architecture microservices avec Spring Cloud

Une architecture microservices est le résultat de l'adoption de plusieurs principes: travail en petite équipe, domain driven design, intégration et livraison continue et scalabilité horizontale. En découlent de nouveaux patterns parmi lesquels: bounded contexts, service discovery, échanges de messages asynchrones, API Gateway, gestion de configuration.

Ce cours vous permettra de les mettre en oeuvre avec la stack Spring Cloud.

(10,5 heures)

En présentiel ou en classe virtuelle
En français ou en anglais
Public

Développeurs et développeuses Java, architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), de Spring et Spring boot et une habitude de travailler avec Eclipse ou IntelliJ.

Méthodes pédagogiques

Programme détaillé

Introduction
  • Les bounded contexts comme prérequis à une architecture microservices.
  • Le fonctionnement stateless pour favoriser la scalabilité horizontale.
  • Les types de livrables: application autonome ou fonction serverless.
  • La souveraineté sur les données.
  • La communication entre microservices.
  • Les tests.

Mise en pratique: refactoring d'une application monolithe en microservices

Service discovery avec Spring cloud Netflix
Eureka
  • Service discovery: présentation du concept.
  • Le rôle de l'Eureka server.
  • Les opérations de self registration et self unregistration.
  • La propagation de la registry.
  • Les health checks comme moyen de maintenir à jour la registry.
  • La mise en oeuvre du load balancing.
  • Le requétage d'une application avec le RestClient.

Mise en pratique: prise en main d'une application Spring (accès aux données, API REST, tests).

Publish / subscribe avec le brokerApache Kafka
Messaging
  • Le rôle du broker dans une architecture microservices.
  • Présentation de Kafka.
  • La souscription à un topic.
  • L'envoi de messages sur un topic.

Mise en pratique: communication asynchrone entre microservices avec Kafka et spring-kafka.

L'exposition des microservices avec Spring cloud API Gateway
North/south
  • L'API Gateway comme point d'entrée à un ensemble de microservices.
  • Les règles de routage.
  • L'action de l'API Gateway sur les requêtes et les réponses (réessais, sécurité, etc...).
  • L'agrégation de données.

Mise en pratique: création d'une API Gateway avec Spring Cloud Gateway pour exposer les microservices développés précédemment.

La centralisation de la configuration avec Spring Cloud Config
ConfigServer
  • Le rôle d'un config server.
  • Le stockage et la protection des propriétés.
  • Les méthodes de cryptages des propriétés.
  • Le couplage avec un Eureka Server.
  • La déclaration d'un config server dans les applications clientes.

Mise en pratique: création d'un serveur d'un config server avec Spring cloud Config, couplage des microservices avec celui-ci.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: