Azure DevOps est un service cloud de Microsoft dédié au développement logiciel collaboratif. En utilisant des méthodes agiles, il permet la gestion de projets de développement logiciel tout en offrant des services d'intégration continue et de déploiement continu (CI/CD). Ces services permettent la création de pipelines automatisés pour tester et déployer automatiquement le code source d'une application. Pour exécuter ces pipelines, des agents Azure DevOps sont nécessaires, pouvant être hébergés soit par Microsoft, soit par l'utilisateur, connus sous le nom d'agents selfhosted.
Pour des agents Azure Devops selfhosted il est possible d'utiliser des machines virtuelles mais il est également possible d'utiliser des conteneurs docker comme nous allons le voir ici. Attention néanmoins, les agents Docker sont plus limités que les machines virtuelles, notamment par leur impossibilité d'utiliser Docker dessus. Pour cela nous allons utiliser Terraform pour déployer nos agents Azure DevOps et notre container registry dans lequel nous stockerons notre image docker utilisée pour déployer nos agents Azure DevOps dockerisés.