Les pools DevOps managés sont une solution proposée par Microsoft pour simplifier l’exécution des pipelines CI/CD dans Azure DevOps. Contrairement aux agents Self-Hosted, ils sont gérés par Microsoft, ce qui réduit la maintenance et les coûts.
Ces pools permettent :
- D’utiliser des agents managés sans gérer de machines virtuelles.
- D’exécuter des pipelines sur des réseaux existants ou isolés, pour accéder à des ressources sécurisées.
- De contrôler le dimensionnement automatique des agents, ce qui optimise les coûts et la disponibilité.
Ils sont particulièrement adaptés lorsque vos pipelines doivent interagir avec :
- Des App Services ou Function Apps protégés par Private Endpoints.
- Des ressources accessibles uniquement via ExpressRoute.
- Des réseaux nécessitant une isolation stricte ou des règles de pare-feu spécifiques.
Mise en situation : déployer sur des ressources isolées
Dans mon environnement :
- J’avais un réseau existant avec plusieurs sous-réseaux.
- Mes App Service et Function Apps étaient isolés via Private Endpoints.
- Les agents managés classiques ne pouvaient pas atteindre ces ressources.
- Je ne souhaitais pas utiliser Self-Hosted ou VM Scale Set pour des raisons de gestion et de coût.
La solution idéale fut donc d’utiliser un pool DevOps managé injecté dans mon réseau existant.
Sous-réseau créé pour le pool, délégué à
Microsoft.DevOpsInfrastructure/pools.
Comprendre la délégation du sous-réseau
Pour utiliser un réseau existant avec un pool :
- Le sous-réseau doit être délégué à
Microsoft.DevOpsInfrastructure/pools. - Cette délégation rend le sous-réseau exclusif au pool : aucune autre ressource ou pool ne peut l’utiliser.
- Pour plusieurs pools dans le même VNet, il faut créer plusieurs sous-réseaux, chacun associé à un pool différent.

Permissions nécessaires sur le réseau
L’identité managée utilisée par le pool (DevOpsInfrastructure) doit avoir :
- Reader sur le réseau et le sous-réseau.
- Network Contributor sur le réseau et le sous-réseau.
Création et configuration du pool DevOps managé
1. Créer le pool
- Dans le portail Azure, créer une nouvelle ressource Managed DevOps Pools.
- Renseigner les informations de base (nom, description, abonnement).
2. Configurer le dimensionnement
- L’onglet Scaling permet de configurer le nombre minimum et maximum d’agents, et le dimensionnement automatique.
- Cette granularité permet une meilleure maîtrise des coûts par rapport aux Self-Hosted.
3. Configurer le réseau
- Choisir l’option Agents injected into existing virtual network.
- Sélectionner le VNet et le sous-réseau délégué pour le pool.

Validation
- Vérifier que toutes les ressources ont été créées correctement et que le pool est opérationnel.

Utiliser le pool dans Azure DevOps
- Le pool sera visible dans Azure DevOps sous Project Settings → Agent Pools.
- Il peut être utilisé dans vos pipelines pour déployer du code sur des App Service et Function Apps isolés.

Conclusion
Les pools DevOps managés permettent de combiner :
- La simplicité des agents managés Microsoft.
- L’accès à des ressources isolées et sécurisées.
- Une gestion automatisée du scaling, réduisant les coûts par rapport aux Self-Hosted.
Ils constituent une solution flexible pour déployer sur des environnements hautement sécurisés, tout en conservant l’agilité des pipelines Azure DevOps.


