Dans l'épisode 16 du podcast Nom d'un Pipeline !, Julien Danjou, CEO de Mergify, reçoit Guilhem Charles, ingénieur logiciel chez Datadog. Ensemble, ils plongent au cœur des défis liés à la gestion des pipelines CI/CD dans un environnement à grande échelle, et évoquent comment Datadog a relevé ces défis techniques grâce à des solutions innovantes.
Un parcours du bas vers le haut des couches logicielles
Guilhem Charles, ingénieur passionné, débute l'épisode en retraçant son parcours. Originaire du sud de la France et diplômé de Grenoble, il a gravi les différents niveaux de la pile logicielle : de l’embarqué à la couche applicative en passant par le cloud. Son expertise actuelle chez Datadog englobe une variété de technologies allant de Kubernetes à Go, en passant par Python.
Chez Datadog, Guilhem fait partie de l'équipe Developer Experience dédiée à la gestion des pipelines CI (Continuous Integration). Une de ses missions clés : maintenir un système de CI fiable et performant qui supporte des milliers d'ingénieurs. Cet épisode se concentre sur cette mission et met en lumière les défis quotidiens qu'elle implique.
La complexité du CI/CD à grande échelle
L’un des thèmes majeurs abordés dans cet épisode est la scalabilité. Chez Datadog, l'équipe de Guilhem gère une infrastructure massive de pipelines CI qui doit supporter une quantité exponentielle d'ingénieurs et de builds. Une des particularités de cette infrastructure est qu’elle repose en grande partie sur Kubernetes, permettant une grande flexibilité et des capacités de scaling. Cependant, comme le souligne Guilhem, cette complexité nécessite des équipes spécialisées pour garantir un fonctionnement fluide.
Ils discutent notamment de la gestion des environnements pour des cas d’usage spécifiques, comme les systèmes macOS, qui posent des défis uniques en raison des contraintes techniques imposées par Apple. Fournir une solution de CI pour macOS a été un projet majeur pour son équipe, avec des obstacles aussi inattendus que la gestion d'une flotte de Mac Mini pour exécuter des jobs CI, ou encore des systèmes de virtualisation sur AWS. Guilhem souligne l’importance de cette tâche pour répondre aux besoins des développeurs qui travaillent sur des projets iOS ou Mac, et la satisfaction d’avoir pu déployer une solution robuste dans le cloud.
L'optimisation et les tests de performance : un enjeu crucial
Un autre point central de la discussion est la gestion des ressources. Avec des milliers de builds par jour, l'optimisation est cruciale pour éviter une consommation excessive et inefficace des ressources. À cet égard, Guilhem mentionne des stratégies comme la limitation des images de base et la détection automatique des changements. Il rappelle que chez Datadog, l’utilisation de l'infrastructure CI est souvent plus importante que le nombre d'ingénieurs, ce qui implique des efforts constants pour éviter les builds inutiles et rationaliser les processus.
Ils abordent également la question des tests de performance, qui sont de plus en plus intégrés aux pipelines de CI. Pour une entreprise comme Datadog, où la rapidité et l'efficacité des systèmes sont des priorités, les tests de performance sont cruciaux. Cependant, comme l'explique Guilhem, ces tests ne peuvent pas être simplement inclus dans le pipeline traditionnel sans poser de problèmes de bruit dans les résultats. L’équipe travaille donc à séparer ces tests et à créer des environnements dédiés pour obtenir des résultats fiables.
La sécurité, un pilier du CI/CD
L'un des autres grands axes de l'épisode est la sécurité. Guilhem décrit comment l'équipe CI de Datadog collabore étroitement avec l'organisation de sécurité interne pour s'assurer que les pipelines respectent les normes les plus strictes en matière de compliance et de protection des données. Ils ont mis en place des processus d’audit rigoureux sur les images de base utilisées dans les builds pour s'assurer qu'elles sont à jour avec les derniers patchs de sécurité.
De plus, les mécanismes de gestion des secrets ont récemment été mis à jour pour mieux protéger les informations sensibles. Guilhem mentionne que l'évolution constante des technologies et des menaces nécessite une adaptation rapide, avec des équipes spécialisées qui veillent à ce que les pratiques de sécurité soient toujours optimales.
Vers un avenir encore plus automatisé
En regardant vers l'avenir, Guilhem et Julien discutent de la croissance continue de l'infrastructure CI/CD chez Datadog. Alors que l'entreprise continue de se développer, l’équipe de Guilhem se prépare à de nouveaux défis liés à la gestion de volumes encore plus importants de builds et d'utilisateurs. L'automatisation et la réduction des frictions pour les développeurs restent des priorités.
Les améliorations envisagées incluent l’introduction de nouvelles fonctionnalités de détection automatique des changements, des solutions pour les tests de performance à grande échelle, et peut-être même une refonte de certains aspects du système CI pour mieux répondre aux besoins d'une entreprise en expansion constante.
Conclusion
Cet épisode offre un aperçu fascinant des coulisses de l'ingénierie chez Datadog et des défis que représente la gestion d'une infrastructure CI/CD à très grande échelle. Guilhem Charles partage des expériences concrètes et des leçons qui intéresseront non seulement les ingénieurs DevOps, mais aussi tous ceux qui s'intéressent à la scalabilité et à l'optimisation des systèmes complexes.
Si vous souhaitez en savoir plus sur l'intégration continue, la scalabilité ou les défis d'un environnement technique complexe, cet épisode est une écoute incontournable !