Choisir les microservices selon les changements indépendants
Des services séparés méritent examen si limites métier, responsabilité des données et livraisons indépendantes concordent.

Quel changement doit pouvoir être indépendant ?
Répartir une application entre services ne crée pas à lui seul une évolution indépendante. Si les mêmes personnes doivent modifier et livrer tous les services ensemble pour chaque règle tarifaire, la coordination reste nécessaire. S’ajoutent des appels réseau et des tâches d’exploitation.
Microsoft présente le déploiement indépendant et la responsabilité des données comme des caractéristiques importantes. Nous proposons donc de partir d’un changement concret : quel domaine métier doit pouvoir le porter sans adapter simultanément les autres ?
Exemple : devis et commandes restent ensemble pour l’instant
Ce produit et son fonctionnement sont fictifs. Une équipe gère devis, commandes et rapports. Les règles tarifaires changent ensemble dans les devis et les commandes. Les formats de rapport ont d’autres besoins d’évolution.
Limite observée dans l’exemple | Décision provisoire | Ce qui doit étayer la décision |
|---|---|---|
Devis et commandes partagent le même changement métier de tarification. | Livrer ensemble, avec des modules internes clairs. | Responsabilités et accès entre modules sont explicitement définis. |
Les formats de rapport peuvent changer indépendamment. | Un module distinct ; examiner un service séparé si un besoin est démontré. | Interface de données stable, responsable d’exploitation et fraîcheur requise des données sont définis. |
Dans ce plan, l’application reste d’abord un monolithe modulaire : limites internes, livraison commune. Spring Modulith illustre la distinction entre interface publique d’un module et implémentation interne. Décrire cette séparation est utile sans choisir cet outil précis.
Incluez l’exploitation dans la décision
Un service de rapport distinct devrait gérer les pannes de sa source de données. Il faudrait un responsable du déploiement, de la surveillance et de l’analyse des incidents. L’équipe doit aussi définir la coexistence des anciennes et nouvelles versions d’interface pendant une transition. Un processus séparé ne suffit pas.
Consignez la raison d’une séparation ultérieure : besoin réel de livraison indépendante ou charge nécessitant un traitement différent, par exemple. Réexaminez couplage, accès aux données et effort d’exploitation. Des modules livrés ensemble peuvent être clairement structurés. Un service bien délimité peut aussi être justifié avant de découper le reste. Le nombre de services ne mesure pas la qualité de cette décision.
Sources
Écrit par
- Katharina WeberRédactrice logiciels et technologieKatharina Weber s’occupe chez ASES des articles consacrés au développement logiciel. Elle traite des questions que se posent les entreprises lorsqu’elles choisissent un logiciel, développent de nouvelles applications ou modernisent leurs systèmes existants.
À lire aussi
Tous les articles


Développement logiciel avec ASES
Logiciels sur mesure, applications web et mobiles


