Aller au contenu

Qu'est-ce qu'un microservice ? Définition et bonnes pratiques

Un microservice est un composant logiciel autonome qui implémente une capacité métier précise — par exemple « envoyer une facture » ou « calculer un tarif » — et qui s'exécute comme un processus séparé. Il expose une interface (souvent une API HTTP) et possède ses propres données ou schéma. Les autres services l'appellent sans accéder à sa base directement.

En une phrase

Un microservice, c'est une brique métier indépendante qu'on peut déployer et faire évoluer sans tout casser.

À retenir

  • Taille guidée par le domaine, pas par un nombre de lignes de code arbitraire.
  • Communication réseau assumée : latence, retries et formats stables sont normaux.
  • Équipe et code base peuvent lui être dédiés dans une organisation mature.
  • Ce n'est pas un « petit monolithe » : éviter le partage de base de données entre services.

Fiche du terme

Microservice
Micro-service · Service (architecture distribuée)
Terme anglais
Microservice
Domaine
Développement web
Catégorie
Architecture
Niveau
Intermédiaire

Microservice : au-delà du buzzword

Le préfixe « micro » prête à confusion : l'important est l'autonomie de déploiement et la responsabilité claire. Un service « commandes » peut contenir plusieurs milliers de lignes s'il reste cohérent métier et testable seul.

Les anti-patterns classiques : deux services qui lisent la même table SQL (couplage caché), chaînes d'appels synchrones profondes (latence explosive), ou découpage par couche technique (« service base de données », « service UI ») qui recrée un monolithe distribué.

Dans un contexte québécois de PME qui monte en charge, un microservice utile est souvent le premier extrait du monolithe — paiement Stripe, génération de documents, envoi de courriels — là où l'isolation apporte un gain mesurable sans refondre tout le produit.

Comment concevoir un microservice ?

  1. 01

    Nommer la capacité

    Formuler en verbe métier : « notifier », « tarifer », « synchroniser inventaire ».

  2. 02

    Encapsuler les données

    Seul ce service modifie ses enregistrements ; les autres passent par son API.

  3. 03

    Rendre l'API explicite

    OpenAPI ou contrat équivalent, codes d'erreur clairs, versionnement dès le départ.

  4. 04

    Préparer l'exploitation

    Santé (/health), métriques, logs structurés avec identifiant de corrélation.

Exemple concret

Une application de location d'équipement garde un monolithe pour les réservations, mais extrait un microservice « disponibilités ». Ce service agrège le calendrier et les retours atelier ; il répond en millisecondes aux recherches du site. Quand la logique de maintenance change, seule cette brique est redéployée — les contrats de location dans le monolithe restent intacts.

Rôles typiques d'un microservice

Intégration tierce isolée

Encapsuler Stripe, Postes Canada ou un ERP derrière une API interne stable.

Traitement lourd

Génération PDF, redimensionnement d'images, transcodage vidéo en file d'attente.

Données sensibles

Segmenter PII ou paiements pour durcir l'accès et simplifier les audits.

Expérimentation

Tester un moteur de recommandation sans risquer le cœur transactionnel.

Avantages et limites d'un service isolé

  • Déploiement ciblé et rollback plus sûr
  • Stack adaptée au problème (ex. Python pour ML, Go pour perf)
  • Équipe propriétaire claire
  • Limitation du blast radius en cas de bug
  • Overhead réseau et observabilité
  • Duplication possible de modèles ou de validations
  • Gouvernance des API nécessaire
  • Inutile si le monolithe modulaire suffit

Microservice ou module interne ?

MicroserviceModule dans un monolithe
DéploiementProcessus ou conteneur séparéMême binaire que le reste
DonnéesStore dédié ou schéma privéTables partagées, transactions locales
CommunicationHTTP, messages, gRPCAppels de fonctions in-process
Quand choisirScale ou équipe indépendante requisCohésion forte, faible charge

Pour la direction

Parler de « microservice » dans un devis doit signifier une brique livrable et mesurable, pas une étiquette marketing. Chaque service ajoute de l'exploitation : surveillance, mises à jour, sécurité. L'investissement se justifie quand l'isolation réduit un risque réel (panne, conformité, charge) que le monolithe ne peut plus absorber.

Questions fréquentes

Un microservice peut-il avoir une interface graphique ?

En général non : il expose une API. L'UI reste dans le front-end ou un autre service « gateway ».

REST ou messages asynchrones ?

REST convient aux requêtes/réponses immédiates. Files de messages (RabbitMQ, SQS) mieux pour pics, retry et découplage temporel.

Faut-il un microservice par table SQL ?

Non — c'est un anti-pattern. Découper par capacité métier, pas par table.

Termes associés

Sources et références

Vous envisagez d'extraire une brique de votre application actuelle ?

Évaluer le découpage
Glossaire