À retenir
- Indépendance : chaque service peut être écrit dans un langage différent et déployé seul.
- Modularité : une panne sur un microservice n'entraîne pas forcément l'arrêt de toute l'application.
- Communication : ils échangent des informations via des interfaces légères (souvent des API REST ou du gRPC).
Un microservice est une petite brique logicielle indépendante qui assure une mission précise au sein d'une application plus vaste. Plutôt que de construire un seul gros bloc rigide (le monolithe), on assemble plusieurs petits programmes spécialisés qui communiquent entre eux. Imaginez un restaurant : au lieu d'avoir une seule personne qui fait tout, vous avez un cuisinier, un serveur et un plongeur qui travaillent en équipe de manière autonome.
Étymologie
Le terme vient de l'assemblage de micro (petit) et service (fonctionnalité rendue). Il est apparu au début des années 2010 pour décrire une évolution de l'architecture orientée services (SOA), visant à rendre le développement et le déploiement plus agiles sur le cloud.
Exemples d'usage
- Le système de paiement d'un site de vente en ligne, séparé du catalogue de produits.
- Le module d'envoi d'e-mails d'une plateforme SaaS qui fonctionne indépendamment du reste de l'outil.
- Les services de recommandation de films chez Netflix, qui sont distincts de la gestion des profils utilisateurs.
Cas d'usage
On utilise les microservices pour des applications complexes nécessitant une grande flexibilité. C'est le standard dans le cloud computing car cela permet de mettre à jour une seule fonctionnalité sans arrêter tout le site, et de faire évoluer les équipes de développement de façon indépendante.
Bonnes pratiques
Chaque microservice doit posséder sa propre base de données pour éviter les dépendances. Il est crucial d'automatiser les tests et les déploiements (CI/CD) et de mettre en place une surveillance (monitoring) rigoureuse, car gérer des dizaines de services communicants devient vite complexe.
Synonymes
Antonymes
Conseil
Si vous débutez, ne commencez pas par créer des microservices. Apprenez d'abord à structurer un code propre dans un seul projet. Le passage aux microservices ne se justifie que lorsque la taille de l'application ou de l'équipe devient ingérable autrement.
Questions fréquentes
Est-ce que c'est toujours mieux qu'un monolithe ?
Non. Les microservices ajoutent une grande complexité réseau et opérationnelle. Pour un petit projet, un monolithe est souvent plus efficace.
Comment communiquent-ils ?
Généralement via le protocole HTTP (API) ou par des systèmes de messages asynchrones (comme RabbitMQ ou Kafka).