Architecture microservices 

De nos jours les applications web doivent répondre à des enjeux de plus en plus exigeants :

  • Etre tout le temps disponibles.
  • Gérer l’affluence de visiteurs.
  • Etre mise à jour régulièrement pour suivre les évolutions technologiques mais aussi continuer à intéresser les utilisateurs.

Or il est difficile de répondre à tous ces impératifs en même temps. Par exemple, comment une application peut être tout le temps disponible si on doit la mettre à jour de plus en plus souvent pour suivre les standards du web ? Face à ces enjeux, une infrastructure d’application a été pensée : l’architecture microservices.

L’architecture microservices c’est quoi ? 

À l’origine : l’architecture monolithique

L’architecture microservices s’oppose à l’architecture dites « monolithique ». Cette dernière consiste en la création d’une application comme un tout, c’est-à-dire dont les composants (des éléments logiciels dédiés à une tâche) sont interdépendants. C’est une structure simple mais très rigide, car chaque modification implique de modifier le code entièrement, un processus long car chaque composant lié à l’élément mis à jour doit l’être aussi.

L’architecture microservices : une solution plus modulable

L’architecture microservices mise sur la flexibilité. Dans cette structure d’application, chaque microservice est dédié à une tâche unique et ils sont tous reliés entre eux par des technologies adaptées comme des API. Le tout devient fonctionnel grâce à ce qu’on appelle, des edge microservices, ayant pour but de rendre le tout cohérent. Cette structure est idéale pour faire évoluer les applications.

L’indépendance avant tout

Chaque microservice doit d’être totalement indépendant. Pour cela chacun d’entre eux doit être dédié à une tâche unique. De ce fait, lors des mises à jour, seul le microservice concerné est sollicité. Cela est moins couteux et permet de gagner du temps tout en limitant le risque de bugs car une modification sur un microservice n’a pas d’incidence sur un autre. Cette indépendance permet également de gagner du temps dans le développement car chacun des microservices peut être réutilisé à l’infini pour une autre application par exemple.

Le cloud, une ressource modulable 

Cette architecture permet de créer des applications cloud native. Chaque microservice d’une telle application a la capacité de mobiliser le cloud pour gérer une affluence importante. Grâce à ce dernier, les microservices peuvent mobiliser la puissance de stockage ou de calcul d’une ou plusieurs machines puissantes, grâce à internet. Cela permet d’utiliser des ressources qu’on ne possède pas à moindre coût, car on ne paye que ce qu’on utilise. C’est donc un gros avantage car ça permet de gérer les pics de trafic sans avoir à investir dans des gros serveurs.

Efficace pour les gros sites 

C’est une architecture utilisée par les grosses applications. Celles qui doivent gérer un grand nombre de requêtes à la minute. Nous allons retrouver, Amazon, Netflix ou bien Uber etc. Ce choix est motivé par plusieurs raisons.

Ce sont des applications qui sont nécessairement confrontées à des pics de trafic en raison d’un événement ou d’une promotion, il faut donc être capable de gérer cet afflux tout en réduisant les coûts pendant les périodes plus calmes.

De plus ce sont des applications qui ont besoin d’être disponibles en permanence. Dans le cas de Netflix, ses clients payent pour un service qui se doit d’être tout le temps disponible par soucis d’image et de qualité. Dans le cas d’Amazon ou Uber, qui traitent un nombre important de transactions à la seconde, il est inconcevable d’arrêter l’application. Ce serait un manque à gagner énorme.

 

Vigiboy