Microservices — Quand et comment les utiliser ?
L'architecture microservices consiste à découper une application en un ensemble de petits services indépendants.
Monolithe vs Microservices
| Monolithe | Microservices |
|---|---|
| Une seule base de code | Plusieurs bases de code |
| Déploiement unique | Déploiements indépendants |
| Communication interne (appels de fonction) | Communication réseau (API, gRPC) |
| Simple à démarrer | Complexe à mettre en place |
| Difficile à scaler | Scalabilité granulaire |
Quand choisir les microservices ?
- Grandes équipes : Plusieurs équipes peuvent travailler en parallèle sur des services différents.
- Besoins de scalabilité différents : Le service de paiement peut avoir besoin de 10 instances, le service de notification de 2.
- Technologies hétérogènes : Un service en Go pour la performance, un autre en PHP pour la rapidité de développement.
Inconvénients
- Complexité opérationnelle : Déploiement, monitoring, logging... tout est plus complexe.
- Latence réseau : Les appels entre services sont plus lents que les appels de fonction.
- Consistance des données : Gérer les transactions distribuées est un défi (Sagas, etc.).
Règle d'or : "Ne commencez pas par des microservices, sauf si vous avez une très bonne raison de le faire." — Martin Fowler.
Aucun commentaire pour le moment.