Compétitions

Il y a une dizaine d’années, la plupart des applications Web étaient construites selon un style architectural monolithique. Mais la plupart du temps, plusieurs équipes de développement travaillent sur l’application. Chaque équipe de développement a ses propres composants de l’application dont elle est responsable. Avec le temps, l’application grossit et il faut découper le monolithe pour pouvoir développer l’application en parallèle et pouvoir la déployer indépendamment. Le concept de microservices est une réponse directe au défi de la mise à l’échelle d’applications monolithiques.

Parallèlement, Spring, avec en particulier Spring Boot, est devenu le choix par défaut pour la création d’applications développées en Java. Les microservices étant devenus l’un des modèles d’architecture les plus courants pour la création d’applications basées sur le cloud, la communauté de développement Spring nous a fourni Spring Cloud parce que Spring Boot n’implémente pas les patterns spécifiques aux architectures microservices qui vont être présentées. Dans cette série d’articles, nous passerons en revue plusieurs des patterns proposés par Spring Cloud :

  • Gestion de la configuration ;
  • Découverte de services ;
  • Passerelle de service ;
  • Circuit breaker, Fallback processing, Bulkhead.

Un premier article présentera la gestion de la configuration, avec Spring Config, et la découverte de services, avec Eureka. Il sera suivi d’un second article, qui abordera les passerelles de services avec Zuul et les notions de circuit breakers, de fallback processing et de bulkhead avec Hystrix.