Objectifs


1. Définition et caractéristiques

« Les microservices sont de petits services autonomes qui travaillent ensemble, chacun s'exécutant dans son propre processus et communiquant par des mécanismes légers. » — Sam Newman

Un vrai microservice doit réunir quatre caractéristiques simultanément :

flowchart TB
  MS["Microservice"]
  MS --> C1["Déployable indépendamment"]
  MS --> C2["Propriétaire de ses données"]
  MS --> C3["Organisé autour d'une capacité métier"]
  MS --> C4["Communicant par interface"]

Microservice vs service SOA

Critère SOA (Service-Oriented Architecture) Microservices
Taille Grands services couvrant plusieurs domaines Petits, focalisés sur une capacité
Communication Via un ESB (Enterprise Service Bus) HTTP/gRPC direct ou broker de messages
Base de données Souvent partagée Une par service
Déploiement Coordonné (release train) Indépendant
Gouvernance Centralisée Décentralisée

2. Les contraintes architecturales — pourquoi elles existent

Les microservices ne sont pas une liste de bonnes pratiques arbitraires. Chaque contrainte répond à un problème précisobservé dans les systèmes monolithiques à grande échelle. Comprendre le problème d'origine explique pourquoi la contrainte est non négociable.

2.1 — Déployabilité indépendante

Problème d'origine : le déploiement coordonné coûte trop cher.