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