Il y a quelques mois, j’ai regardé le live Youtube Les Compagnons du DevOps, traitant de la standardisation CI/CD. J’ai découvert l’outil R2Devops qui est une plateforme permettant de faire des chaînes d’intégration et de déploiements continues. J’ai trouvé le concept très innovant et bien pensé. Ayant déjà travaillé sur des sujets de templating de jobs GitLab CI, je me devais de tester cet outil !
Aurélien et Thomas, respectivement CEO et CTO, reviennent sur leurs motivations à créer R2Devops et comment l’outil peut répondre aux problématiques que l’on rencontre généralement sur des chaînes CI/CD.
Je ne vais pas paraphraser leur présentation. Si le sujet vous intéresse, je vous recommande grandement d’aller voir le replay. Dans cet article, nous allons nous concentrer sur le test et mon avis sur la solution. 🙂
Comment fonctionne R2Devops ?
L’outil s’appuie sur la notion de templates GitLab CI. Si ce terme ne vous est pas familier, allez jeter un œil à mon article A la découverte de GitLab CI. 👀
Lorsque l’on se rend sur r2devops.io, l’on comprend tout de suite le message “Marketplace of ready-to-use CI/CD templates”. Allons voir de plus prêt cette marketplace.
Première impression, je vois que l’on a accès à plus de 150 templates directement prêt à l’emploi pour nos CI. On a la possibilité d’appliquer des filtres de recherche si l’on souhaite trouver rapidement le template qu’il nous faut ! Et franchement, il y en a pour tous les goûts, docker, terraform, ansible, des linters… Ce que j’apprécie également avec cette marketplace, c’est qu’elle est open-source. Tout le monde peut contribuer et étoffer le catalogue. D’ailleurs, je vous partage un autre Live Youtube de Christophe Chaudier dans lequel il prévoit de publier un job sur R2Devops ce mercredi 19 avril 2023.
Il faut savoir que les templates R2Devops ont des standards. Ils doivent être accessibles, faciles à utiliser, évolutifs, sécurisés et doivent servir un objectif et/ou une fonction.
On retrouve également, trois types de templates :
- Community : fournis par un contributeur depuis son dépôt personnel
- Partenaire : fournis par les éditeurs partenaires
- Officiels R2 : respect le standard R2
Bon, c’est cool tout ça, j’ai 150 templates à dispo, mais comment je peux les utiliser ? 🤔
L’utilisation des templates
Imaginons que nous souhaitons déployer de la documentation pour un projet. Nous voulons utiliser Mkdocs afin de convertir notre contenu markdown en HTML et publier notre documentation via GitLab Pages.
Rien de plus simple avec R2Devops. On se rend sur la marketplace et on recherche “mkdocs” puis “pages”. Cool, ces jobs existent. 💪
Commençons par créer un projet sur notre compte GitLab. Je le nommerai “r2devops-test”.
On se rend maintenant sur le job mkdocs. À partir de là, c’est un jeu d’enfant, il suffit de suivre la partie “How to use it”.
Nous devons placer dans notre projet GitLab, le fichier de configuration mkdocs ainsi que le répertoire contenant nos fichiers markdown.
Ensuite, il ne nous reste plus qu’à copier le contenu du paragraphe “Quick use” qui aura pour but d’aller chercher le job mkdocs sur le hub R2DevOps.
Voici à quoi ressemble mon projet :
.
├── .gitlab-ci.yml
├── docs
│ └── index.md
└── mkdocs.yml
Et le contenu du fichier .gitlab-ci.yml
est le suivant :
stages:
- build
include:
- remote: 'https://api.r2devops.io/job/r/gitlab/r2devops/hub/mkdocs@1.7.1.yaml'
Nous allons faire les mêmes étapes pour publier notre documentation sur gitlab pages. Commençons par chercher “pages” dans la marketplace R2DevOps et suivons une nouvelle fois, la partie “How to use”. Ici, pas de pré-requis. Nous pouvons ajouter ce job à notre fichier .gitlab-ci.yml
.
Voici notre fichier final :
stages:
- build
- deploy
include:
- remote: 'https://api.r2devops.io/job/r/gitlab/r2devops/hub/mkdocs@1.7.1.yaml'
- remote: 'https://api.r2devops.io/job/r/gitlab/r2devops/hub/pages@0.5.1.yaml'
Nous sommes prêts à lancer notre CI ! 🤩
Pour cela, rien de plus simple, sur votre projet Gitlab vous vous rendez dans 🚀CI/CD > Pipeline > Run Pipeline
. Normalement, les jobs sont en cours d’exécution. Si tout est au vert, c’est bon signe ! 🙂
Afin de consulter notre documentation, il nous faut l’URL. Pour la récupérer, rendons-nous dans l’onglet Deployment > Pages
.
Pour ma part, si je me rends à l’adresse, https://gribhb.gitlab.io/r2devops-test je vois bien ma page web avec ma documentation ! 🥳
Vous retrouverez le dépôt complet ici. 🙂
Mon avis
Je vais conclure cet article sur R2Devops avec un avis très positif !
J’aime énormément l’aspect catalogue où tout est prêt à l’emploi et l’on a plus qu’à se servir. C’est le concept du template off-the-shelf, que l’on peut traduire par “livre sur étagère”. C’est un peu comme si l’on devait faire une pizza. Chacun adapte la recette selon ses goûts, ses envies, puis on va au marché et on achète tout ce qu’il nous faut. 😂
Il y a également le principe de création de template pour chaque job, que je trouve très efficace. Ainsi, l’équipe responsable du pipeline est libre de les utiliser ou non. Selon moi, cette approche permet de rendre les équipes autonomes et les responsabilise.
Je tiens également à souligner la qualité de la documentation. La promesse qui est de faire une plateforme de chaînes d’intégration et de déploiements continus accessible à tous est largement tenue. Dans chaque job, on retrouve une partie “Quick use” qui permet d’utiliser le job quasiment clé en main, d’un simple copier-coller. Si l’on doit appliquer des modifications, tout est indiqué de manière claire et précise. Je n’ai vraiment eu aucun mal à prendre en main l’outil !
R2DevOps a également plusieurs modèles de princing. On retrouve un usage “FREE” qui nous donne accès à la marketplace publique et au support de la communauté. Si l’on souhaite bénéficier de leur éditeur “No code”, d’une registry privée ou d’un support premium, il faudra souscrire aux versions “PREMIUM” ou “ENTERPRISE”.
Selon moi, cet outil à la possibilité de devenir une plateforme de référence pour les templates GitLab CI. Tout le monde peut contribuer et publier ses jobs. Aujourd’hui, il y a 150 templates à notre disposition, mais demain combien y en aura-t-il ? 🙂
Comments are closed.