Gouvernance et modèle ALM pour Custom APIs
La gouvernance fixe les règles du jeu avant d’automatiser. Elle décrit qui peut créer, réviser, déployer et auditer les Custom APIs, et avec quels contrôles.
Principes de gouvernance
Avant de détailler les rôles et artefacts, il faut poser des principes simples et testables.
- Standardiser l’unité de livraison via solutions Dataverse (une API = artefacts + handlers + sécurité).
- Séparer Build et Release avec validations indépendantes.
- Imposer la traçabilité des changements (work items ↔ commits ↔ builds ↔ releases).
- Appliquer least privilege pour les identités techniques et les contributeurs.
- Rendre les décisions auditable via Policies écrites et publiées.
RACI et rôles
La clarté des responsabilités évite les angles morts.
- Architecte : définit les contrats API, schémas, politiques DLP, nomenclature.
- Dev : implémente handlers C#, tests unitaires, scripts pac.
- Release manager : paramètre pipelines et gates, gère approbations.
- Admin Power Platform : gère environnements, DLP, PPAC, capacity.
- Security : approuve secrets, RBAC, revues App registrations.
Artefacts versionnés
Un inventaire commun évite les écarts entre environnements.
- Répertoire
solutions/: sources unpacked (Solution Packager / pac). - Répertoire
plugins/: code C#, tests, règles StyleCop. - Répertoire
pipelines/: YAML Azure DevOps (build, release, templates). - Répertoire
ops/: policies, RBAC, DLP, runbooks rollback.
Modèle d’environnements
Le chemin de promotion limite les risques et cadre les tests.
- DEV : création rapide, prototypage, tests unitaires.
- TEST : solution managed, tests intégration et non-régression.
- PREPROD : données proches de la prod, tests de performance et sécurité.
- PROD : déploiement approuvé, monitoring renforcé.
Nommage et security boundaries
Des conventions simples rendent la maintenance objective.
- Préfixe éditeur :
Marlk_pour tables et APIs. - Nom API logique :
mar_custom_<Action>. - Service principals dédiés par stage :
sp-devops-dev,sp-devops-prod. - RBAC Azure DevOps : least privilege sur repos, pipelines, variables.