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)
Développeurs et développeuses Java, architectes
Accessible aux personnes en situation de handicap
DélaiLe cours peut être organisé dans un délai d'un mois.
Objectifs
A l'issue du cours vous saurez:- définir le périmètre métier d'un microservice;
- appliquer le principe de service discovery avec Spring Cloud Netflix;
- proposer un point d'entrée stable à un ensemble de microservices avec Spring Cloud Gateway;
- échanger des informations entre microservices avec Kafka et
spring-kafka
; - externaliser la gestion de configuration avec Spring Cloud Config Server.
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
- Explication, pour chaque concept, du problème qu'il prétend résoudre.
- Mise en pratique d'un concept immédiatement après qu'il ait été présenté.
- Validation de chaque étape par exécution de tests unitaires.
- Exercice « fil rouge » pour obtenir en fin de cours une application complète.
- QCM en fin de chapitre pour s'assurer de l'acquisition des connaissances.
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
- 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
- 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
- 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
- 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:
- prise en charge tout ou partie du coût de la formation par votre opérateur de compétence (OPCO);
- Le dispositif FNE formation si votre organisation est éligible.
- Le plan de développement des compétences de votre entreprise (renseignez-vous auprès de votre service RH).