À retenir
- Indépendance : chaque service peut être écrit dans un langage différent et mis à jour séparément.
- Résilience : la panne d'un microservice n'entraîne pas forcément l'arrêt de toute l'application.
- Scalabilité : on peut booster uniquement les parties les plus sollicitées du système.
L'architecture de microservices consiste à découper une application informatique complexe en une multitude de petits programmes indépendants, chacun ayant une mission précise (gérer les paiements, envoyer des e-mails, etc.). Imaginez une équipe de spécialistes travaillant ensemble plutôt qu'une seule personne multitâche : si l'un s'absente, les autres continuent de fonctionner.
Étymologie
Le terme vient du préfixe grec mikros (petit) et du mot français service. Il s'est popularisé au début des années 2010 pour désigner une évolution de l'architecture orientée services (SOA), visant à rendre les systèmes plus flexibles et adaptés au Cloud.
Exemples d'usage
- Une plateforme de streaming où le système de recommandations est géré par un service distinct du lecteur vidéo.
- Un site e-commerce où le panier, le catalogue de produits et le paiement sont trois briques logicielles séparées qui communiquent par le réseau.
Cas d'usage
Cette approche est privilégiée pour les grands projets web et mobiles nécessitant des mises à jour fréquentes, une grande évolutivité (pouvoir agrandir une seule partie du système) et la collaboration de plusieurs équipes de développeurs en parallèle.
Bonnes pratiques
Il est crucial d'automatiser les tests et le déploiement (CI/CD) car gérer des dizaines de services manuellement est impossible. Il faut également veiller à ce qu'un service ne dépende pas trop étroitement d'un autre pour éviter un effet domino en cas de panne.
Synonymes
Antonymes
Conseil
Si vous débutez un petit projet seul, commencez par un monolithe simple. Ne passez aux microservices que si votre application grandit et que la gestion devient difficile pour une seule équipe.
Questions fréquentes
Pourquoi ne pas toujours utiliser des microservices ?
Parce que cela ajoute une grande complexité technique pour faire communiquer les services entre eux (réseau, sécurité, latence).
Comment les microservices communiquent-ils ?
Ils utilisent généralement des API (souvent de type REST) ou des systèmes de messagerie asynchrone (files d'attente).