everythingpossible - Fotolia
CI / CD : à la découverte de Jenkins X
Jenkins n'a pas été conçu pour le cloud ou Kubernetes, mais ce n'est pas le cas pour Jenkins X. Cet outil est taillé pour les applications natives pour le cloud.
Jenkins fut l'une des premières technologies qui a conduit la révolution DevOps. De là est né l’engouement : les équipes de développement et d'exploitation se sont mis à créer des extensions, des build packs et des plugins pour cet outil de CI/CD.
Malheureusement, une vague est arrivée : celle du cloud et des containers et Jenkins n'a pas été conçu pour ces deux mondes. En fait, Jenkins diffère considérablement d'un environnement Docker ou Kubernetes. Les développeurs ont donc eu du mal à utiliser leur serveur d'automatisation open source. Apparut Jenkins X.
Quel problème entre Jenkins et les conteneurs
Quand Jenkins automatise l'intégration continue, il réunit la livraison continue avec des scripts personnalisés, la configuration manuelle et les opérations de release très silotés. Pour que Jenkins parvienne à une bonne orchestration des ressources et des processus dans le cloud (avec des containers), les développeurs et les équipes d'exploitation doivent mettre en place les bons plugins, la bonne configuration et le bon code pour collaborer dans leur fichier Jenkins.
D’où un problème : dans ce « bricolage », les équipes de développement, qui travaillent avec les containers, passent souvent trop de temps à comprendre comment packager des images Docker ou à créer des fichiers YAML pour Kubernetes. Si certes avec Kubernetes, la livraison continue est automatisée, la migration des pipelines de CI/CD vers des environnements cloud avec containers exige une double compétence, Jenkins et Kubernetes.
Malheureusement, les exigences supplémentaires que cela impose en matière d’intégration créent un conflit avec les membres de l'équipe. Ces derniers veulent en effet lancer de nouveaux projets quand ils le souhaitent. Il est donc encore plus nécessaire d’automatiser ces processus de CI / CD.
Comment Jenkins X change les choses
Jenkins X est un outil complet de CI/CD conçu pour déployer des applications en continu avec Kubernetes. Il n'est même pas nécessaire de connaître parfaitement Kubernetes. La principale différence entre Jenkins et Jenkins X est que ce dernier se concentre sur l'automatisation des CI/CD pour le cloud.
Pour ce faire, Jenkins X utilise Jenkins associé à des outils open source comme Helm, Skaffold, Monocular, Nexus, Docker, KSync, ChartMuseum. Il automatise l'installation, la configuration et les mises à jour de ces outils open source et les intègre aux processus de CI/CD.
Jenkins X propose également aux développeurs un feedback sur chaque pull request sous la forme d’une preview, avant que le nouveau code ne soit poussé en production. Cette capacité permet d'intégrer des dimensions de fiabilité et d'authentification dès le début et d'éviter les surprises de dernière minute pendant la phase de post-déploiement.
Pas seulement pour Kubernetes
Jenkins X est en fait adapté aux utilisateurs de Jenkins qui utilisent déjà Kubernetes. Cependant, il est également utile pour les développeurs qui ne connaissent rien à Kubernetes et qui veulent simplement un processus CI/CD qui les aide à migrer vers le cloud. Le framework offre un excellent support pour démarrer sur cloud (n’importe lequel) – un point clé lorsque les entreprises ont mis en place des environnements hybrides.
Le déploiement de logiciels consiste à trouver l'équilibre parfait entre l'abstraction de l'infrastructure et le contrôle de l'environnement. Jenkins X crée cet équilibre en automatisant le processus CI/CD sans rien cacher aux développeurs.