« 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 |
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.
Problème d'origine : le déploiement coordonné coûte trop cher.