API Management Platform - Partie 2 : Architecture et Solution Technique
Sommaire
Choix Architectural : Extension Marketplace
Pourquoi une Extension Marketplace ?
Nous avons choisi de créer une extension Azure DevOps publiée sur le Marketplace plutôt qu’un repo Git avec des scripts.
Raisons :
- Distribution centralisée : Une seule source de vérité
- Versioning automatique : Contrôle des versions déployées
- Propagation instantanée : 1 publication → toutes les BUs
- Standardisation : Impossible de diverger
Composants de l’Extension
L’extension se compose de trois éléments principaux :
1. Tasks Orchestrées
Plusieurs tasks PowerShell pour gérer le cycle de vie complet :
- Configuration initiale : Instance APIM, subscriptions
- Onboarding : Création automatique des ressources pour une nouvelle BU
- Gestion des produits : Configuration des products APIM
- Déploiement d’APIs : Publication et mise à jour des APIs
Technologies utilisées :
- PowerShell avec SDK Azure DevOps
- REST APIs Azure API Management
2. Service Connections Custom
Types de connexion personnalisés embarqués dans l’extension :
- Authentification APIM : Credentials stockés de manière sécurisée
- Auto-configuration : Disponibles dès l’installation de l’extension
- Validation : Test de connexion automatique
Avantage clé : Les équipes n’ont pas besoin de créer manuellement ces types de connexion.
3. Documentation Embarquée
Documentation complète avec screenshots intégrée dans l’extension :
- Guides pas-à-pas : Installation et utilisation
- Exemples de pipelines : Patterns YAML réutilisables
- Troubleshooting : Solutions aux problèmes courants
Workflow d’Onboarding Automatisé
Vue d’Ensemble
┌─────────────────────────────────────────────────────────┐
│ 1. Installation Extension │
│ - Pipeline d'installation de l'extension │
│ - Service Connections types automatiquement dispo │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 2. Configuration Service Connection │
│ - Sélection type APIM (custom, embarqué) │
│ - Renseigner credentials (chiffrés par Azure DevOps)│
│ - Test de connexion automatique │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 3. Création Pipeline d'Onboarding │
│ - Utilisation des tasks de l'extension │
│ - Configuration via inputs │
│ - Exécution : création des ressources APIM Partagée │
│ (Product dédié, Subscription, nommage convention) │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 4. Déploiement Continu des APIs │
│ - Pipeline de déploiement d'APIs │
│ - Utilisation des tasks de publication │
│ - Automatisation complète (CI/CD) │
└─────────────────────────────────────────────────────────┘
Avantages du Workflow
Rapidité
De l’installation au premier déploiement en quelques heures.
Sécurité
- Credentials chiffrés dans Azure DevOps
- Jamais en clair dans le code ou les logs
- Test de connexion avant utilisation
Facilité
- Documentation intégrée à l’extension
- Exemples de pipelines fournis
- Interface graphique pour la configuration
Standardisation
- Même workflow pour toutes les BUs
- Patterns YAML réutilisables
- Conventions de nommage imposées
Isolation
Chaque BU a son Product APIM dédié dans l’instance SHARED :
- Isolation logique des APIs
- Subscriptions dédiées (clés API)
- Quotas configurables par BU
- Monitoring par Product