Les microservices : est-ce réaliste ? Cas d'usage où l'architecture est la plus adaptée
Les sites web B2C et les backend d'application mobile, potentiellement accessibles par un grand nombre d'utilisateurs, sont bien évidemment les applications qui bénéficient, potentiellement, le plus des architectures en microservices. Grâce à ces dernières, leur infrastructure de production va pouvoir absorber les variations de charge comme le souligne Romain Niveau de Xebia : "Les microservices s’appliquent particulièrement bien aux systèmes ayant besoin d’évoluer rapidement et devant tenir des charges importantes. Les sites d'e-commerces devant déployer rapidement des nouvelles offres et supportant des pics de charge très importants pendant les soldes ou la période de Noël sont particulièrement bien adaptés à ce type d’architecture."
En ce sens, le déploiement d'une architecture de microservices sur une infrastructure de cloud public, comme a choisi de le faire Netflix, est une solution qui va permettre de payer ses ressources informatiques au plus juste : en pointe, l'architecture provisionne d'avantage de ressources cloud et lorsque l'audience se fait plus rare, l'architecture peut libérer des ressources et donc réduire la facture.
Le microservice pour faire évoluer un existant
Autre scénario d'utilisation possible, plus surprenante, la modernisation d'une application existante comme l'évoque Jérôme Mainaud d'Ippon Technologies :"j’ai vu un cas d’usage intéressant. Il s’agissait d’une nouvelle équipe qui reprenait une application de billetterie développée sous la forme d’une énorme application patrimoniale monobloc que plus personne n’osait toucher. De nouveaux canaux de distribution très différents des canaux existants devant être ouverts, de grosses évolutions étaient prévues pour ajouter ces fonctionnalités. Ils ont choisi de conserver le mastodonte en l’état et de développer les nouvelles fonctionnalités sous forme de microservices. L’application patrimoniale devenant un service un peu moins micro que les autres. C’est à mon sens une forme habile de faire évoluer cette application sans prendre de risque sur les fonctionnalités existantes tout en simplifiant le développement des nouvelles."