Microservice

Définition, exemples et bonnes pratiques

À 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

architecture granulaire service autonome

Antonymes

monolithe architecture monolithique

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).