Tout d'abord, à partir d'aujourd'hui, GitLab Community Edition peut être entièrement interopérable avec Jenkins. Sans aucun doute.
Dans ce qui suit, je donne quelques retours sur une expérience réussie en combinant à la fois Jenkins et GitLab CI. Je discute également de la question de savoir si vous devez utiliser les deux ou seulement l'un d'entre eux, et pour quelle raison.
J'espère que cela vous donnera des informations de qualité pour vos propres projets.
Points forts de GitLab CI et Jenkins
GitLab CI
GitLab CI est naturellement intégré à GitLab SCM. Vous pouvez créer des pipelines en utilisant gitlab-ci.yml
et de les manipuler à travers une interface graphique.
Ces pipelines sous forme de code peuvent évidemment être stockés dans la base de code, ce qui renforce la pratique du "tout sous forme de code" (accès, versionnement, reproductibilité, réutilisation, etc.)
GitLab CI est un excellent outil de gestion visuelle :
- tous les membres des équipes (y compris les non-techniciens) ont un accès rapide et facile à l'état du cycle de vie des applications.
- Il peut donc être utilisé comme un interactive et opérationnel tableau de bord pour la gestion des versions.
Jenkins
Jenkins est un excellent outil de construction. Sa force réside dans ses nombreux plugins. En particulier, j'ai eu beaucoup de chance en utilisant des plugins d'interface entre Jenkins et d'autres outils de CI ou de CD. C'est toujours une meilleure option que de redévelopper (éventuellement mal) une interface de dialogue entre deux composants.
Le pipeline en tant que code est également disponible en utilisant groovy
scripts.
Utiliser GitLab CI et Jenkins ensemble
Cela peut sembler un peu redondant au premier abord, mais combiner GitLab CI et Jenkins est assez puissant.
- GitLab CI orchestre (enchaîne, exécute, surveille...) des pipelines et on peut bénéficier de son interface graphique intégrée à GitLab.
- Jenkins exécute le travail et facilite le dialogue avec les outils tiers.
Un autre avantage de cette conception est d'avoir un couplage lâche entre les outils :
- nous pourrions remplacer n'importe quel composant de l'usine de construction sans avoir à retravailler l'ensemble du processus CI/CD
- nous pourrions avoir un environnement de construction hétérogène, combinant (éventuellement plusieurs) Jenkins, TeamCity, etc., tout en disposant d'un seul outil de surveillance.
Le compromis
Bien sûr, il y a un prix à payer pour cette conception : la configuration initiale est lourde et vous devez avoir un niveau minimal de compréhension de nombreux outils.
Pour cette raison, je ne recommande pas une telle installation, sauf si
- vous devez faire face à de nombreux outils tiers. C'est là que Jenkins se révèle très utile grâce à ses nombreux plugins.
- vous devez gérer des applications complexes avec des technologies hétérogènes, ayant chacune un environnement de construction différent, tout en ayant besoin d'une interface utilisateur unifiée pour la gestion du cycle de vie des applications.
Si vous n'êtes dans aucune de ces deux situations, il est probablement préférable de choisir l'une des deux, mais pas les deux.
Si je devais en choisir un
GitLab CI et Jenkins ont tous deux des avantages et des inconvénients. Ce sont tous deux des outils puissants. Alors lequel choisir ?
Réponse 1
Choisissez celui pour lequel votre équipe (ou un proche) a déjà un certain niveau d'expertise. d'expertise.
Réponse 2
Si vous êtes tout à fait novice en matière de technologies d'IC, choisissez-en une et lancez-vous.
- Si vous utilisez GitLab et que vous avez un penchant pour tout ce qui est code, il est tout à fait logique de choisir GitLab CI.
- Si vous devez dialoguer avec de nombreux autres outils de CI/CD ou si vous avez absolument besoin de cette interface graphique pour créer vos tâches, optez pour Jenkins.
Ceux d'entre vous qui utilisent GitLab et qui ne sont pas sûrs de continuer à le faire doivent garder à l'esprit que le fait d'avoir choisi GitLab CI impliquerait de mettre à la poubelle tous vos pipelines CI / CD.
Le mot de la fin est : la balance penche un petit un peu vers Jenkins en raison de ses nombreux plugins, mais il y a fort à parier que GitLab CI comblera rapidement le vide.
5 votes
GitLab a également mis au point une comparaison entre GitLab CI et Jenkins : about.gitlab.com/comparaison/gitlab-vs-jenkins.html
2 votes
Le nouveau lien est : about.gitlab.com/comparison/pdfs/gitlab-vs-jenkins.pdf