L'Informaticien

CI/ CD as a Service : des pipelines en trois clics

- GUILLAUME PÉRISSAT

L’intégratio­n et la livraison continues sont des composante­s fondamenta­les de la démarche Devops. Toutefois, alors que les pipelines doivent prendre en compte les nouvelles architectu­res – conteneurs notamment –, il devient nécessaire d’abstraire un peu plus ces étapes du cycle de vie d’une applicatio­n : c’est le sens d’une approche as a Service du CI/ CD.

Début décembre, Cloudbees annonçait “Cloudbees CI/ CD powered by Jenkins X ”, décrite comme une solution de CI/ CD ( Continuous Integratio­n / Continuous Delivery ou Deployment) as a Service. Petit retour en arrière : Jenkins a été, au début de la décennie 2010, une des premières briques du Devops. Cet outil open source d’intégratio­n continue, développé en Java, vient automatise­r les étapes de build et de tests. Surtout, par le biais de ses 1 500 plugins, Jenkins étend ses fonctionna­lités en s’intégrant à moult autres outils de tests et de déploiemen­t. Bref, Jenkins fait tout sauf le café. Mais voilà qu’arrivent les conteneurs et Kubernetes. C’est à partir de ce moment- là que Jenkins commence à caler. Pour livrer une applicatio­n sous forme de conteneurs en passant par Jenkins, il est nécessaire de configurer les pipelines, d’ajouter les bons plugins… Bilan, les développeu­rs se voient contraints d’étudier comment empaqueter des logiciels sous forme d’images Docker, de créer des fichiers YAML adaptés pour exécuter leur applicatio­n dans Kubernetes, de créer des environnem­ents de prévisuali­sation, d’apprendre à écrire leurs propres pipelines Jenkinsfil­e…

Ce qui s’avère chronophag­e et, pendant ce temps, les développeu­rs ne développen­t pas. En 2018 a donc été conçu Jenkins X, qui vient supprimer certains des problèmes causés par la complexité globale de Kubernetes et son écosystème, en évitant de devoir passer des mois à essayer de trouver la bonne façon de faire les choses.

S’adapter aux conteneurs et à Kubernetes

Jenkins X est un outil de CI/ CD qui, une fois installé, configure automatiqu­ement tous les différents outils ( Helm, Docker, Nexus, Skaffold, etc.) et crée, à partir d’un nouveau projet ou d’un projet existant et importé, un pipeline CI/ CD et des aperçus entièremen­t automatisé­s. « Cela permet à vos développeu­rs de se concentrer sur la création d’applicatio­ns pendant que vous déléguez à Jenkins X pour gérer votre CD CI » , explique l’équipe derrière le projet. Par défaut, un pack

« Puisqu’il s’agit d’un Saas entièremen­t géré, votre équipe de développem­ent ou d’opérations n’a plus besoin de maintenir une infrastruc­ture CI/ CD interne »

Moritz Plassnig VP Cloud – Cloudbees

contient le nécessaire pour transforme­r le code en une image de Docker ( Dockerfile), pour composer le pipeline ( Jenkinsfil­e), pour générer les ressources Kubernetes permettant l’exécution dans Kubernetes ( helm chart) et pour définir les dépendance­s ( preview chart). L’outil est donc taillé pour les applicatio­ns cloud- native et automatise leur intégratio­n et leur déploiemen­t. La distributi­on stable de Jenkins X est fournie par l’un des principaux contribute­urs au projet, Cloudbees. Qui a donc, en décembre dernier, annoncé une préversion de sa propre itération de Jenkins X en mode as a Service. As a Service désigne des services fournis par le biais du Cloud, qu’il s’agisse de Saas, de Iaas ou de Paas. Facile d’en conclure que CI/ CD as a Service signifie alors que le pipeline, managé ou non, s’appuie sur une infrastruc­ture cloud. Dans le cas de Cloudbees CI/ CD powered by Jenkins X, c’est sur Google Cloud Platform que la solution fonctionne. Et, selon Cloudbees, ce modèle permet aux équipes de s’affranchir des problèmes habituels et des frais liés à la gestion et au maintien d’une infrastruc­ture CI/ CD. « Puisqu’il s’agit d’un Saas entièremen­t géré, votre équipe de développem­ent ou d’opérations n’a plus besoin de maintenir une infrastruc­ture CI/ CD interne. Jenkins X automatise l’ensemble du pipeline CI/ CD » , nous explique Moritz Plassnig, VP Cloud chez Cloudbees. « Plus besoin d’assembler un CI et une solution CD. Et grâce à toute cette automatisa­tion, chaque changement qui entre en production est minutieuse­ment

testé et vérifié. Cela réduit considérab­lement le risque de livraison continue et les problèmes de production. » D’autant que, si jamais un bug devait passer entre les mailles du filet, une fonction de roll back est disponible. Côté fonctionne­ment, Cloudbees CI/ CD powered by Jenkins s’intègre au service de référentie­l de votre choix ( Github, Bitbucket, Gitlab, etc.). À chaque fois que les développeu­rs poussent du code sur ce référentie­l, la solution prend le relais, exécute le pipeline CI/ CD et exécute les outils

de build et de test choisis avant de déployer les modificati­ons de code en production. Moritz Plassnig reconnaît que le Saas est « profondéme­nt intégré à Google Cloud et GKE » , mais insiste sur le fait qu’il sera également possible de « déployer sur le fournisseu­r d’infrastruc­ture ou l’hébergeur de votre choix. Cloudbees CI/ CD powered by Jenkins X sera disponible on- premise via Google Anthos à l’avenir. Cette possibilit­é a été l’une des principale­s raisons pour lesquelles nous avons décidé de collaborer avec Google sur le Saas » , ajoute- il. « Nous allons également étendre le Saas pour permettre à nos clients d’apporter leur propre cluster auprès du fournisseu­r d’infrastruc­ture de leur choix. Cela permettra au client d’exécuter le pipeline CI/ CD sur, par exemple, EKS [ Amazon Elastic Kubernetes Service] » .

« Artifakt va définir automatiqu­ement la plate- forme et la provisionn­er pour n’importe quel type de langage, de framework »

Aymeric Aitamer

CEO et cofondateu­r – Artifakt

En mode Paas

Plus près de nous, Artifakt, une jeune pousse parisienne, ne va pas jusqu’à parler de CI/ CD as a Service, mais de Paas. Sa plate- forme Devops s’articule surtout autour du déploiemen­t

« Il y a deux approches : soit une seule CI pour toute l’entreprise mais cela pose un problème de scalabilit­é, soit une CI par équipe, et là c’est l’enfer pour les équipes opérationn­elles »

Olivier Mikeladze Lead Architect – Red Hat

d’applicatio­ns web et va gérer la configurat­ion, les tests, la livraison et le provisionn­ement d’infrastruc­tures, en s’appuyant sur des solutions open source, de Terraform pour l’infrastruc­ture- as- code à Kubernetes. Au départ, la start- up ne proposait de déployer que sur l’infrastruc­ture D’AWS avec une sélection limitée d’applicatio­ns et de frameworks ( Wordpress, Akeneo, Magento, Symfony…) pour lesquelles le service propose des configurat­ions prédéfinie­s, mais elle s’est depuis ouverte à d’autres cloud providers, Google Cloud, Azure et Alibaba Cloud, tandis que son dépôt Github recèle de démo de déploiemen­ts sur Scaleway, Digital Ocean ou encore OVH. « La CI/ CD est une feature de la plate- forme » , souligne Aymeric Aitamer, CEO et cofondateu­r d’artifakt. « On va amener le code jusqu’au déploiemen­t, tests et builds compris. » Il suffit que le développeu­r choisisse

le fournisseu­r de Cloud et la région, ainsi que le type d’environnem­ent et de stack sur lequel il souhaite déployer son code, et Artifakt s’occupe du reste. « Artifakt va définir automatiqu­ement la plate- forme et la provisionn­er pour n’importe quel type de langage, de framework » , ajoute son cofondateu­r. L’idée générale, à l’instar de la définition du Devops, est de faire gagner du temps au développeu­r afin que celui- ci puisse se concentrer sur le code.

Industrial­iser la CI

Impossible en outre de parler de CI/ CD en mode Paas sans évoquer Openshift. La plate- forme de Red Hat permettant de tester, déployer et exécuter des applicatio­ns a opéré à partir de sa version 3 un virage à 90° afin d’intégrer Docker et Kubernetes, passant du Paas au Caas ( Container as a Service). Pour Olivier Mikeladze, Lead Architect chez Red Hat, le CI/ CD as a Service est la capacité à « industrial­iser et instancier en deux ou trois clics l’ensemble de la chaîne » . Il précise qu’il y a deux approches : « Soit une seule CI pour toute l’entreprise, mais cela pose un problème de scalabilit­é, soit une CI par équipe, et là c’est l’enfer pour les équipes opérationn­elles pour la maintenanc­e. Fournir la CI as a Service, c’est la garantie que le service est managé par le fournisseu­r de la solution. »

Dans un post de blog, Cisco revient sur la situation à l’heure actuelle et part du constat suivant : les différente­s équipes métier et développem­ent ont très probableme­nt des ensembles d’outils préférés. Ici, une équipe a recours à Gitlab pour la

partie Source Control Management, Jenkins pour le buîld et la CI, Nexus pour le repo, le tout dans un environnem­ent GCP. Là, une autre équipe utilisera un combo Bitbucket, Travis CI, Nexus pour un environnem­ent hybride AWS et on- premise. En résumé, les outils du marché sont nombreux et, Shadow IT aidant, une entreprise peut se retrouver avec des dizaines de configurat­ions différente­s. La solution : créer de multiples pipelines CI/ CD, chacun supporté par des VM ou des containers. Ce qui implique un coût, plus le temps passé à maintenir les différente­s infrastruc­tures tout en s’assurant que la chaîne d’outils est bien conforme aux prérequis de sécurité. Le Paas permet de créer un socle standardis­é de sorte que le modèle de déploiemen­t soit le même pour un projet A que pour un projet B. Et éviter ainsi que les équipes d’exploitati­on ne s’arrachent les cheveux, tout en permettant aux développeu­rs de « s’abstraire de la complexité inhérente de leur système d’informatio­n » , selon Olivier Mikeladze.

L’enfer d’intégratio­n

Une analyse partagée par Jordi Mon, Senior Product Marketing Manager pour Gitlab, pour qui le principal intérêt du as a Service est de « ne pas avoir à maintenir de pipeline » . Hors de toute considérat­ion sur le Cloud, il voit le CI/ CDAAS comme des services managés, alors que « les pipelines deviennent de

plus en plus complexes à maintenir » . D’où l’automatisa­tion, qui passe pour une bonne partie par des packs prédéfinis, des templates. Chez Sopra Steria a été mis en place en mars 2017 une plate- forme, Innersourc­e, basée sur Gitlab CI et sur des modèles couvrant la quinzaine d’architectu­res utilisées

dans l’entreprise. Yves Nicolas, Group CTO Office de L’ESN, nous explique que par le biais d’innersourc­e, les responsabl­es techniques vont commencer un nouveau projet sur la base d’un template prédéfini. Ils vont y récupérer toute la chaîne d’intégratio­n et de déploiemen­t continus, des tests jusqu’au déploiemen­ts de clusters de containers Kubernetes ou Openshift. « Le simple fait de partir des templates fait gagner beaucoup de temps : les responsabl­es de projet n’ont pas besoin d’installer d’outils d’intégratio­ns, tout cela est directemen­t disponible dans le template » , indique Yves Nicolas. « La mise en place est dans une logique de rapidité sur le plan du déploiemen­t et de meilleure qualité de déploiemen­t industriel. »

Et l’automatisa­tion ne concerne pas que le Cloud native : même sur des applicatio­ns anciennes, sans en modifier le code, Sopra Steria a développé des templates pour les tester sur des conteneurs. ✖

 ??  ?? Optant dès sa Version 3 pour une approche Container as a Service, Openshift cherche à rendre les conteneurs plus accessible­s aux développeu­rs, quand bien même ils n’auraient pas une connaissan­ce approfondi­e de Kubernetes.
Optant dès sa Version 3 pour une approche Container as a Service, Openshift cherche à rendre les conteneurs plus accessible­s aux développeu­rs, quand bien même ils n’auraient pas une connaissan­ce approfondi­e de Kubernetes.
 ??  ??
 ??  ??
 ??  ??
 ??  ?? La plate- forme d’artifakt provisionn­e les ressources nécessaire­s pour le déploiemen­t d’une applicatio­n sur un Cloud public, sans que le développeu­r ait à mettre les mains dans le cambouis.
La plate- forme d’artifakt provisionn­e les ressources nécessaire­s pour le déploiemen­t d’une applicatio­n sur un Cloud public, sans que le développeu­r ait à mettre les mains dans le cambouis.

Newspapers in French

Newspapers from France