Jenkins : l’outil d’intégration continue frappe aux portes du Cloud

Jenkins est rapidement devenu une star du monde du développement logiciel au sein des grandes entreprises. Un succès qui est maintenant appliqué au secteur du cloud. Découverte.

Jenkins est né d’une dispute. Celle entre la communauté des logiciels libres et Oracle, suite au rachat de Sun Microsystems par la firme en 2010. ‘fork’ d’Hudson, Jenkins est un outil d’intégration continue.

Sous ce terme barbare se cache l’une des techniques les plus représentatives de l’extreme programming : les développeurs déposent leurs modifications dans un creuset unique, les compilations sont gérées automatiquement et des tests automatiques sont appliqués au binaire créé.

De quoi s’assurer que 1/ le cycle de développement sera raccourci par l’intégration rapide des modifications apportées au code et que 2/ des régressions n’apparaîtront pas dans le projet, tant il vrai que l’objectif premier est d’aller de l’avant… et non en arrière.

Des clients prestigieux

Cette recette, Jenkins l’applique avec brio. À un point tel qu’il est rapidement devenu l’un des chouchous des équipes de programmation. Jenkins propose un atout clé : il est extensible via des greffons. Plus de 1000 sont référencés à ce jour. Grâce aux plug-ins, les entreprises pourront implémenter leurs processus au cœur de Jenkins. Un point très intéressant, en particulier pour les grands comptes.

Jenkins propose également des passerelles vers les systèmes de gestion des versions les plus populaires, comme CVS, Git, Mercurial ou Subversion. Le tout est facile à installer et à configurer. Une simplicité d’accès que l’on retrouve également lors de son utilisation. Il est ainsi possible de suivre les tâches de contrôle du code en temps réel par courrier électronique, ou via des flux RSS.

Avec toutes ces qualités, il n’est guère étonnant que Jenkins soit aujourd’hui aussi populaire. Il est utilisé par des centaines de grands comptes, dont – en France – Alcatel-Lucent, Michelin ou encore Thales. Notez que si Jenkins n’est pas réservé aux projets Java, c’est dans ce secteur qu’il se taille la part du lion, grâce à son support avancé des frameworks de test Junit et TestNG.

Jenkins, la technologie qui PaaS au cloud

Intégration continue, développement agile, travail en équipe sur de gros projets. Tout ceci fleure le cloud computing à plein nez. Le PaaS plus précisément (Platform as a Service). Une étape que ce projet a allègrement franchie, en grande partie sous l’impulsion de CloudBees, qui en a fait un des piliers de sa plate-forme de développement en mode cloud.

Si l’éditeur distribue des offres Jenkins on premise (Jenkins Enteprise et Jenkins Operations Center), il a également proposé une rupture avec sa solution DEV@cloud. L’idée est ici d’offrir aux développeurs des services leur permettant de mener à bien leurs projets plus aisément, grâce aux avantages apportés par le cloud computing : haute disponibilité et capacité à traiter des projets de grande taille, en adaptant à la demande les ressources disponibles.

Là encore, c’est une opportunité pour les entreprises, dont les programmeurs ont pour vocation de créer des logiciels et non d’opérer une infrastructure de développement.

Un tour de PaaS PaaS, physique-cloud

Le choix de Jenkins pour le PaaS de CloudBees n’est pas innocent. Ce dernier dispose en effet en standard de fonctionnalités qui le rendent compatible avec un usage en mode cloud : il peut ainsi déléguer les opérations de compilation et de test à d’autres machines. De plus, il peut surveiller à distance des travaux menés sur d’autres serveurs. Remplacez ‘serveurs physiques’ par ‘machines virtuelles’ et Jenkins bascule naturellement vers le cloud.

Notez que le PaaS DEV@cloud n’est pas limité à la gestion de projets Java en mode cloud, même si ce duo répond à une tendance forte. Il permettra en effet de créer également des applications classiques, développées avec d’autres solutions de programmation, comme le C/C++, PHP ou encore Python.

CloudBees a récemment décidé de se centrer encore plus sur Jenkins. L’offre DEV@cloud sera ainsi renommée « Cloudbees Jenkins as a service » (version cloud de Jenkins Enteprise). La solution de déploiement des applications RUN@cloud disparaît pour sa part purement et simplement du catalogue de la société. Voir à ce propos l’article « Cloudbees enterre son Paas pour se concentrer sur Jenkins ».

Crédit photo : © Mike Kiev – Fotolia.com