Cet article s’insère dans la série « microservices » écrite par François Berthault dans le cadre de la participation de Talan Labs à Devoxx 2017, du 5 au 7 avril prochains au Palais des Congrès de Paris.
Nous avons vu dans l’épisode précédent comment implémenter un microservice grâce à Spring Boot.
Une nouvelle question se pose : Comment orchestrer et mettre à disposition un parc de microservices qui pourrait être scalable et déployer sur différents serveurs ? Et pour se faire, nous pouvons utiliser Spring Cloud.
© François Berthault
Spring Cloud propose plusieurs API Gateway simples à mettre en place (NetFlix, Consul et Zookeper).
Intéressons-nous à celle de Netflix OSS (Open Source Software). Quand la célèbre société de streaming vidéo à débuter sur les plateforme d’Amazon AWS, les équipes de Netflix ont mis au point leur propre API Gateway, répondant notamment aux problématiques de la distribution volatile sur le Cloud (IP dynamique, scalabilité en temps réels, data-center, etc.). Novateur dans le domaine des architectures émergeantes, Netflix OSS offre régulièrement à la communauté open source de nombreux projets (plus d’une cinquantaine) comme Hystrix, Chaos Monkey, Eureka ou Zuul.
Cette API Gateway se compose de deux éléments :
Spring Cloud ajoute une surcouche à Eureka et Zuul pour les rendre transparents et complètement intégrés à l’écosystème Spring.
© François Berthault
C’est assez simple à comprendre :
Spring Cloud Eureka fournit aussi un tableau de bord de supervision des instances de microservices :
Afin d’ajouter un service de configuration pour centraliser et déployer en temps réel les configurations des microservices, un simple dépôt Git suffit. Il stockera l’ensemble des propriétés d’environnement et remplacera les multiples fichiers de configuration. Au démarrage, chacun des processus viendront récupérer les informations dont ils ont besoin. Plus besoin de déployer manuellement un fichier de configuration par instance de microservice_._
© No Fluff Just Stuff : blog.nofluffjuststuff.com
Nous avions vu la simplicité avec laquelle il était possible de construire un microservice complet grâce à Spring Boot dans l’article précèdent. Maintenant, l’orchestration et la configuration des microservices sont choses faites avec Spring Cloud. Il ne vous reste plus qu’à vous lancer.
En complément, voici une vidéo de l’excellente conférence de Josh Long (Spring Advocate & JAVA Champion) lors du Devoxx France 2016 nommé « Bootiful microservice ».
Des exemples de codes pour votre architecture microservices sont disponibles sur Github. Vous y trouverez également un exemple complet de déploiement de microservices via Spring Cloud (jusqu’à l’orchestration des images Docker avec docker-compose).
Vous avez aimé cet article ? Découvrez ou redécouvrez les autres épisodes de la série « Les microservices pour une architecture orientée web » :
_Partie 1 _Les microservices pour une architecture orientée web n°1 : Définitions et caractéristiques
_Partie 2 _Les microservices pour une architecture orientée web n°2 : Un changement de point de vue
_Partie 3 _Les microservices pour une architecture orientée web n°3 : Organisation des équipes pour une projet d’architecture en microservices
_Partie 4 _Les microservices pour une architecture orientée web n°4 : Simple comme Spring Boot