Pour en savoir plus sur la nouvelle interface Blue Ocean de Jenkins, l'équipe de rédaction de Developpez.com est allée à la rencontre de Sacha Labourey, PDG de CloudBees, la société qui a initié le projet.
Sacha Labourey, PDG de CloudBees
Developpez.com : Pouvez-vous brièvement nous présenter la plateforme Jenkins de CloudBees, ses fonctionnalités et les services associés ?
Sacha Labourey : Le but de CloudBees est de répondre au besoin des sociétés qui désirent déployer Jenkins de manière plus étendue au sein de leur organisation. Ce qu’on voit en général, c’est d’abord des développeurs ou ingénieurs DevOps qui en interne ont fait le choix d’une solution open source Jenkins. Lorsque leur plateforme commence à grandir et avoir du succès, et surtout lorsque les initiatives de type continuous integration et continuous delivery prennent de l’ampleur, ces derniers se retrouvent dans une situation où il faut gérer des dizaines, voire des centaines de serveurs Jenkins. Il faut mettre à jour ces instances et mettre en place des policies, et cela devient alors un vrai casse-tête.
Le but de CloudBees est de permettre aux entreprises de gérer cette complexité. Notre solution CloudBees Jenkins Enterprise (CJE) est basée sur la version open source de Jenkins et fournit une plateforme centralisée de continuous delivery pour les entreprises. Cela signifie que nous déployons la plateforme sur un certain nombre de serveurs et n’importe quelle équipe interne à la société qui voudra commencer un nouveau projet pourra très rapidement créer un environnement dédié et avoir à disposition des ressources partagées entre toutes les équipes. Les solutions que CloudBees propose vont de cette gestion de l’infrastructure de manière efficace, une capacité d’avoir de l’élasticité, entre autres, sur un environnement de continuous delivery, mais également permettent de centraliser les opérations, le management, le monitoring de la plateforme de manière centralisée.
Nous avons aussi une deuxième offre appelée CloudBees Jenkins Team (CJT) qui est proche de Red Hat Enterprise Linux, si vous connaissez un peu comment RHEL fonctionne avec Fedora. Fedora est le projet open source de la distribution Linux de Red Hat, et RHEL est la version solidifiée, certifiée que Red Hat supporte. CloudBees Jenkins Team est typiquement donc pour les entreprises qui ne veulent pas dans un premier temps utiliser notre plateforme en entier. Elles ont déjà une infrastructure Jenkins qui fonctionne et ce qu’elles désirent, c’est une version plus stable, certifiée et testée par nos soins, des mises à jour faciles et surtout du support quand ces choses pourraient ne pas bien se passer.
Donc CJT, c’est la version purement open source stabilisée, certifiée avec du support, et CJE une plateforme complète avec beaucoup de cloud propriétaire qui permet de garder un point de contrôle centralisé.
Developpez.com : Quels sont les langages et technologies supportés par la plateforme ?
Sacha Labourey : C’est la partie qui est intéressante, parce que la perception qu’on rencontre sur le marché est que CloudBees Jenkins est essentiellement développé sur la machine virtuelle Java et qu’il s’agit d’une plateforme principalement utilisée pour les applications Java ; ce qui n’est pas vrai. La réalité c’est que Jenkins est compatible avec tout ce que vous allez trouver sur le marché. Le logiciel est certes développé sur une machine virtuelle Java, mais permet de faire de l’intégration continue et du continuous delivery sur n’importe quelle plateforme. Ce que nous permettons aux entreprises, c’est d’avoir une plateforme unifiée où elles vont pouvoir comparer la vélocité de leurs équipes et leur efficacité. Que ça soit des développements sur des Mainframe AIX, ou que ça soit du Ruby, du Java, du Go, etc., il y a vraiment un support pour toutes les plateformes possibles au sein d’une CloudBees Jenkins.
Developpez.com : CloudBees et la communauté Jenkins ont récemment dévoilé Blue Ocean qui apporte une nouvelle expérience utilisateur à Jenkins. De quoi s'agit-il exactement ?
Sacha Labourey : Jenkins a l’avantage énorme d’avoir été créé il y a plus d’une décennie maintenant. Il supporte donc un nombre très élevé d’environnements et de technologies. Si l’on parle de l’extensibilité de Jenkins, il y a aujourd’hui plus de 1300 plug-ins qui existent. Si l’on veut faire du continuous delivery, il est très important de pouvoir s’intégrer avec toutes ces technologies. Jenkins va héberger le pipeline de continuous delivery. Il va donc agir comme un hub qui va s’intégrer avec ces technologies. Chaque équipe dans une société pourra ensuite faire ses propres choix d’outils avec lesquels elle veut s’intégrer. Cela a toujours été une force pour Jenkins, mais en même temps une faiblesse au fil du temps. L’interface graphique de Jenkins a été un peu figée dans le temps, étant donné que quand on a un tel écosystème de plug-ins, cela peut impacter l’apparence graphique. Plus il y a de plug-ins, plus les évolutions de l’interface graphique deviennent difficiles. En effet, si l’on veut changer quelque chose, on met à risque tout l’écosystème de plug-ins, avec quelque chose qui peut ne plus être compatible.
Quand nous sommes passés du continuous integration au continuous delivery, les concepts ont également évolué, raison pour laquelle nous sommes passés de Jenkins 1.x à Jenkins 2.x. Du coup, l’interface graphique devenait encore plus une contrainte puisque la vieille façon de présenter les pipelines devenait un peu trop rigide. Il y a plus d’une année de cela, CloudBees a donc décidé d’initier un développement pour la communauté open source pour donner une nouvelle expérience utilisateur qui soit vraiment parfaite pour le continuous delivery.
Aujourd’hui, Blue Ocean est le résultat de cet effort et fournit la meilleure expérience qui soit pour faire du continuous delivery sur Jenkins. Cette interface va se déployer par-dessus Jenkins. Elle ne va pas remplacer l’interface actuelle, ce qui permettra donc à ceux qui veulent retourner à l’ancienne interface de le faire. Mais pour ceux qui veulent faire du continuous delivery, cette nouvelle expérience permet de gagner en productivité.
Le but de Blue Ocean est également de changer de paradigme en termes d’interface. Jusqu’à présent, l’interface de Jenkins était très focalisée sur le data model. Mais avec Blue Ocean, nous sommes plutôt focalisés sur les « use cases ». Nous nous sommes en fait demandé ce qui était important pour un ingénieur DevOps, et la réponse c’est de voir les processus et non des tables génériques comme avec les data models.
Developpez.com : Quelles sont les principales fonctionnalités de cette première version de Blue Ocean ?
Sacha Labourey : D’abord, il faut insister sur le fait qu’il s’agit d’une première version, parce que cette technologie est appelée à évoluer de manière itérative et mensuelle avec l’ajout de nouvelles fonctionnalités. Mais déjà aujourd’hui, Blue Ocean nous permet d’avoir un cycle complet depuis l’intégration d’un dépôt GitHub. Il sera donc possible de connecter son instance Jenkins à un dépôt GitHub. Cette instance va découvrir automatiquement les dépôts qui existent et les importer dans Jenkins. Et ensuite, vous aurez la possibilité de créer des pipelines graphiquement à l’aide d’un éditeur graphique. C’est vraiment la façon simplifiée de faire des pipelines dans Jenkins.
Il faut également noter que lorsque vous sauvegardez votre pipeline, il sera automatiquement sauvegardé dans votre dépôt GitHub. Il y a donc le cycle de vie complet depuis la découverte du dépôt, la possibilité de créer et éditer des pipelines et la sauvegarde de ces pipelines dans GitHub. Après, à chaque fois qu’il y aura des modifications dans votre dépôt, vous allez voir ces changements qui seront automatiquement importés dans Jenkins et testés.
Un point important à mentionner est que nous avons annoncé Declarative Pipeline, il y a quelques mois et elle est également au cœur de Blue Ocean. Declarative Pipeline est une solution très simplifiée qui permet de créer et modifier des pipelines très sophistiqués avec une interface utilisateur graphique.
Developpez.com : Quels sont les avantages que cela apporte aux utilisateurs de Jenkins ?
Sacha Labourey : Je crois que les avantages ici sont un gain de productivité et la réduction de la courbe d’apprentissage. On voit énormément d’équipes qui arrivent sur Jenkins pour faire du continuous delivery. Blue Ocean va leur permettre, à partir de leurs codes existants, de créer leurs premiers pipelines de manière très rapide et se focaliser sur leurs Jobs Jenkins. Il y a donc un gain de productivité.
Developpez.com : Quelle sera la prochaine étape avec Jenkins et Blue Ocean ?
Sacha Labourey : La prochaine étape pour Jenkins et Blue Ocean consistera à rajouter plus de fonctionnalités pour le continuous delivery. Nous pensons notamment à supporter des gammes plus étendues de dépôt Git, et des outils de test que nous voulons ajouter au sein de l’interface. À propos des plug-ins, nous allons maintenant réfléchir à ce qui est le plus important pour le continuous delivery et quelle est la façon d’apporter ces intégrations au sein de Blue Ocean.
Il y a aussi CloudBees qui va commencer à utiliser Blue Ocean, et donc les fondations qui ont été créées en termes de framework. Ce n’est en effet pas une simple interface, mais c’est tout un framework qui a été mis en place pour permettre d’étendre l’interface. C’est donc ce que nous allons utiliser dans nos produits dans le futur. Nous allons commencer à remplacer l’interface graphique de nos propres produits.
Essayer Blue Ocean sur Jenkins