Le pouvoir peut être pris, mais pas donné. Le processus de le prendre représente l’autonomisation en elle-même.
Gloria Steinem
Nom
Autonomiser
Déclaration
Un service est autonome ; il encapsule la logique et les données d’une capacité métier, ainsi que ses interfaces - graphiques (GUI) et programmatiques (API) - dans une unité de déploiement autonome et scalable.
Raisonnement
- Réduire la complexité globale du système d’information et donc améliorer sa compréhension.
- Réduire les dépendances à des services externes.
- Simplifier la gestion de la logique et des données métier.
Implications
- Définir une équipe responsable permanente pour le service.
- Donner la responsabilité de la logique et des données relatives à la capacité métier à l’équipe du service.
- Donner la capacité de décision pour l’évolution du service à l’équipe du service.
- Contractualiser les échanges entre les services.
Exemples
Mauvais
La logique de la capacité Gestion des joueurs est gérée dans le service Gestion des joueurs. Toutefois, les données métier concernant les joueurs sont stockées dans la base de données d’un monolithe contenant des dizaines de services. Ces autres services accèdent également à cette base de données et modifient les données de joueurs sans passer par la logique métier de Gestion des joueurs provoquant ainsi des problèmes d’intégrité des données (voir figure ci-dessous).
En outre, le service ne peut être déployé séparément du monolithe. Si bien que les mises en production du monolithe et du service de Gestion des joueurs doivent être coordonnées entre des équipes différentes. La vélocité de mise sur le marché de nouveautés pour le service Gestion joueurs en est fortement réduite.
Bon
Le service Gestion des joueurs encapsule la logique et les données relatives aux joueurs. De plus le service contractualise ses interfaces - graphiques et programmatiques - pour les différents utilisateurs. Il est autonome et, de fait, peut être déployé à une fréquence définie par l’équipe responsable du service. Il peut également s’adapter à la charge si besoin, car il est prévu pour faire de l’autoscaling.