L'intégration continue à l'échelle avec Azure DevOps
2024-09-24
L’un des rôles d'un responsable Cloud et SRE est de s’assurer de la maîtrise des coûts de son infrastructure. J’ai récemment observé un axe d’optimisation qui pouvait significativement réduire le coût de nos chaînes d’intégration continue (CI).
Nous utilisons Azure DevOps (ADO) comme forge logicielle, une alternative à GitHub et GitLab. Nos services Cloud étant déployés dans Azure, l’intégration y est facilitée à condition de mettre en place une stratégie adaptée.
Les principaux problèmes rencontrés peuvent être résumées en 3 points :
- Des coûts croissants liés à l'utilisation d'agents hébergés par Microsoft.
- La nécessité d'accéder à des points de terminaison (endpoints) sous un VPN authentifié par Entra ID.
- Des contraintes contractuelles limitant la flexibilité des ressources.
La solution : les Agents auto-hébergés
Les Agents sont des programmes qui permettent de lancer des chaînes de CI. L’alternative chez Github et GitLab sont les runners.
Après une analyse approfondie des solutions possibles, j’ai opté pour une solution d'agents auto-hébergés, en choisissant spécifiquement les Virtual Machine Scale Sets (VMSS) d'Azure. Ce choix a été motivé par plusieurs facteurs :
- Capacité à s'adapter à l'utilisation
- Possibilité de “consommation zéro” en période d'inactivité
- Familiarité des équipes internes avec la gestion des VM
Stratégie de réduction des coûts
En considérant nos contraintes sans impacter l’expérience développeur, j’ai conçu ma stratégie de réduction des coûts :
- Utilisation d'instances spot pour 95% des pipelines
- Création de deux classes de "pool-linux-spot" et "pool-linux-stable"
- Une optimisation des coûts de 383% (ou 167% en incluant les licences ADO)
Mise en œuvre technique
L’article détaille comment configurer ses VMSS, créer un pool d'agents dans Azure DevOps, et les configurer avec des extensions. Il décrit aussi comment bien gérer le nettoyage des ressources.
Conclusion
La technique proposée requiert une équipe aux compétences bien spécifiques, mais les avantages en réduction des coûts et en flexibilité surpassent cet enjeu. Qui plus est, les VMSS sont une technologie assez robuste qui ne nécessitera pas des heures de maintenance chaque mois. Vous découvrirez comment diviser la facture par près de 4 tout en réduisant le plus possible l’impact sur la vélocité des développements.
Cet article a été rédigé par Flavien, Spécialiste SRE Cloud DevOps
Pour aller plus loin, nous vous invitons à lire l’article complet écrit par Flavien en anglais sur Medium !