L’histoire entre Jenkins X et Dailymotion a débuté aux Etats-Unis et plus particulièrement à New York dans les équipes de la plateforme ad-tech, explique Vincent Behar, architecte ad-tech chez l’hébergeur français de vidéo. Très active, l’équipe ad-tech travaillait déjà avec Jenkins et souhaitait migrer sur Jenkins X, car le processus de développement et de test était devenu trop lent. « Il y avait un problème de vélocité pour le delivery, dans un métier comme la publicité, qui évolue très vite », constate l’architecte. Mais cette bascule n’est pas si anodine, elle est même radicale. « Le projet est parti from scratch », se souvient Vincent Behar et s’inscrit plus globalement « dans une bascule sur Google Cloud Platform et sur Kubernetes ». Il était donc nécessaire de refondre le pipeline d'intégration et de diffusion continue (CD/CI).
Parmi les pré-requis pour cette bascule, outre l’adhérence avec le gestionnaire de cluster Kubernetes, Dailymotion voulait pouvoir réutiliser son expérience et son expertise sur Jenkins notamment sur GitHub et être compatible avec la méthodologie GitOps (contrôle des versions, évaluation, automatisation). L’équipe disposait déjà d’éléments comme les environnements de prévisualisation, les pull request, etc. « Il fallait créer un nouvel environnement pour vérifier les interfaces utilisateurs et tester les fonctionnalités ». Un exercice qui demande une certaine organisation, reconnaît Vincent Behar : « Nous avons travaillé avec une feuille de route pour un déploiement progressif. Quand on travaillait sur une nouvelle version, on le faisait en parallèle avec l’ancienne version pour modifier les pipelines ».
Une dose de personnalisation et de changement de mentalité
Le responsable avoue qu’il y a eu « quelques customisations lors de la migration ». L’avantage de Jenkins X est d’accueillir des composants ou des outils externes. Par exemple, le gestionnaire de package, Helm, ne satisfaisait pas les besoins des équipes de Vincent Behar. « Nous avons utilisé un projet open source, Helmfile, qui se place au-dessus de Helm pour gérer plusieurs applications et déployer sur plusieurs clusters Kubernetes » explique le responsable. Un point important, car Dailymotion est présent dans plusieurs régions. Personnalisation aussi pour la sécurité, « Jenkins X au départ ne gérait pas les secrets (aujourd’hui, c’est le cas avec HashiCorp Vault), nous avons donc utilisé le projet open-source SOPS développé par Mozilla et nous avons pu l’intégrer dans Jenkins X ».
Pour faire face à ces différentes évolutions, Vincent Behar et son équipe ont été accompagnés par CloudBees, spécialiste de Jenkins. « Il y a un changement de mentalité et les silos sont cassés entre le développement, la validation, la production », assure le développeur. CloudBees est intervenu en formation entre février et mars 2019 en « se focalisant sur les bonnes pratiques, car il y a une hétérogénéité des expériences, et sur l’outillage de la migration entre Kubernetes et Jenkins ». Ce changement d’état d’esprit et l’adoption de Jenkins X ont été bénéfiques : l’automatisation a permis d’augmenter le nombre de releases, 10 par jour. Il reste néanmoins quelques points de friction notamment sur « le déploiement en production », reconnait l’architecte en soulignant, « il s’agit d’une barrière psychologique ». L’objectif final est selon lui, « de mettre le code en production en toute sérénité car il est monitoré, avec la possibilité d’activer et désactiver des fonctionnalités à chaud ».