Fotolia

Intégration continue : 10 alternatives à Jenkins

Vous recherchez une alternative à Jenkins au sein de votre environnement CI/CD ? Examinez les options d’Atlassian, GitLab, Spinnaker et bien d’autres, pour voir si elles correspondent mieux à vos besoins de développement.

Jenkins est l’un des outils de CI open source les plus populaires auprès de la communauté des développeurs, mais les critères de certains professionnels pointent les limites de l’outil au moment d’évaluer les pipelines CI/CD à l’aune d’une application stricte de l’approche DevOps. Peut-être ne sont-ils pas familiers avec Groovy, le langage de programmation de facto des pipelines Jenkins, et préfèrent-ils un outil basé sur YAML. Peut-être préfèrent-ils un moteur de CI entièrement géré basé sur le cloud plutôt qu’un Jenkins autohébergé. Peut-être qu’un utilisateur de Jenkins de longue date veut simplement essayer quelque chose de nouveau.

Si Jenkins n’est pas la solution idéale pour le CI dans un environnement de développement, d’autres outils peuvent faire l’affaire.

Explorons plusieurs alternatives à Jenkins qui pourraient mieux répondre aux besoins de votre organisation en matière de pipeline de développement.

GitHub Actions pour les fans de YAML

Pendant longtemps, GitHub a été un système de contrôle du code source comme les autres. Cependant, depuis que Microsoft a acquis l’éditeur SaaS spécialisé dans Git en 2018, GitHub ne sert plus uniquement à gérer des merges et des commits.

GitHub Actions est un service de gestion des versions dans le cloud qui utilise des fichiers YAML pour décrire les étapes à exécuter dans un pipeline de livraison continue. L’un des principaux avantages pour les développeurs est double : ils peuvent maintenir et versionner le pipeline basé sur YAML en même temps que le code source du projet qu’il est censé déployer. Cela permet d’intégrer étroitement le code source et le pipeline automatisé mis en place pour installer les builds.

GitLab pour ceux qui se sont détournés de GitHub

Malgré les trois premières lettres de son nom, GitLab est bien plus qu’un simple système de contrôle de version distribué basé sur Git. Il fournit également une suite complète d’outils, ce qui en fait une alternative à Jenkins. Davantage salué pour ses capacités techniques, GitLab n’a pas encore les fonctionnalités sociales de son principal concurrent qui, via GitHub Actions, se rattrape petit à petit sur l’intégration continue.

Bamboo pour ceux qui utilisent Atlassian Jira

Atlassian fournit une suite complète d’outils de collaboration et de pipeline liés à l’approche DevOps, tels que Jira pour le suivi des tickets, Bitbucket pour le contrôle de version et le navigateur de contrôle de révision Fisheye. Si une organisation utilise déjà une ou plusieurs de ces technologies, Atlassian Bamboo est une alternative satisfaisante à Jenkins.

Pipelines JFrog pour l’administration des artefacts

L’objectif d’un pipeline d’intégration continue est de déplacer les artefacts de déploiement, tels que les fichiers EAR, les bibliothèques de composants et même les conteneurs Docker, d’un environnement de test à un autre, et enfin au déploiement de production. Étant donné l’importance qu’un système de gestion des versions accorde à l’artefact, de nombreux clients d’Artifactory choisissent JFrog Pipelines comme substitut à Jenkins.

Pipelines combine les outils CI/CD acquis auprès de Shippable en 2019 avec le dépôt d’artefacts de JFrog, en mettant l’accent sur le regroupement de plusieurs ensembles de binaires dans des builds. La société affirme que cela offre une meilleure gestion des dépendances quand plusieurs équipes de développement travaillent sur des mêmes projets, au lieu de recourir à des pipelines parallèles pour des dépôts de code source distincts.

Spinnaker pour les adeptes du « cloud-natif »

Netflix est souvent cité comme un exemple à suivre en matière de DevOps, et l’entreprise a mis en libre accès de nombreux outils de développement internes pour aider les organisations à suivre ses pas. L’un de ces outils est Spinnaker, un outil de livraison continue désormais soutenu par Google, Amazon, Microsoft et d’autres.

Netflix est très attaché à l’approche « cloud-native » du développement et de la livraison d’applications. Spinnaker reflète cette approche grâce à des intégrations avec des technologies d’hébergement cloud et de conteneurs telles que Docker, Kubernetes, VMware et Amazon EC2. Spinnaker est un outil CD cloud natif éprouvé qui peut servir de remplaçant à Jenkins pour certaines fonctionnalités CD afin de soutenir une stratégie axée principalement sur le cloud.

Notez que Spinnaker n’aborde que le côté livraison continue d’un pipeline CI/CD, vous aurez donc besoin d’un composant CI également. Si vous êtes satisfait des capacités de CI de Jenkins, mais avez besoin d’un ensemble d’outils de CD distinct, intégrez les deux pour obtenir un pipeline CI/CD complet.

TeamCity pour les équipes agiles de développeurs

La base de tout pipeline de construction automatisé est le code que les développeurs de logiciels écrivent, c’est pourquoi TeamCity est un excellent choix pour les organisations qui donnent la priorité aux développeurs.

JetBrains, le fournisseur derrière le populaire IDE IntelliJ Java, offre également TeamCity. JetBrains défend son expertise développeurs dans le domaine de la productivité des développeurs, et TeamCity étend cette connaissance au domaine de la gestion des versions.

AWS CodePipeline pour les utilisateurs d’Amazon

À mesure que les organisations déplacent davantage d’opérations vers le cloud, il est logique d’utiliser un outil basé sur le cloud pour gérer le processus de déploiement et de livraison. Pour les utilisateurs d’Amazon, AWS CodePipeline offre une fonctionnalité CI/CD qui s’intègre étroitement à d’autres services AWS tels que Amazon Beanstalk, Elastic Container Service et Amazon CodeGuru.

Étant donné qu’AWS CodePipeline fonctionne dans l’environnement cloud Amazon d’une organisation, il est facile d’attribuer des droits de gestion de cet outil CI/CD aux divers autres produits AWS qui doivent contribuer à un déploiement. Cela peut souvent être un point sensible lorsque l’on interagit depuis l’extérieur du réseau AWS. AWS CodePipeline élimine ce problème.

 Azure DevOps Server pour les applications .NET et Java

Tout comme les utilisateurs d’AWS ont tout intérêt à exécuter leurs constructions automatisées avec AWS CodePipeline, les utilisateurs d’Azure peuvent choisir Azure DevOps Server de Microsoft (anciennement Team Foundation Server) pour gérer les déploiements de logiciels sur le cloud de Microsoft.

Historiquement, les organisations qui travaillaient avec des applications Java EE ou Jakarta EE étaient peu susceptibles d’étudier les produits basés sur Microsoft telles que les technologies .NET. Cependant, au cours des dernières années, Microsoft a adopté la communauté Java – elle a acquis JClarity, a recruté d’anciens champions Java et évangélistes Java EE chez Oracle et, surtout, vient de publier sa propre version du moteur d’exécution OpenJDK. En outre, la prise en charge de Docker et de Kubernetes par Azure doit éliminer les difficultés liées au déploiement d’applications basées sur Java dans le cloud Microsoft.

Pour les utilisateurs d’Azure, ou pour ceux qui gèrent des applications écrites à la fois en Java et en .NET, Azure DevOps Server pourrait être une alternative Jenkins convaincante.

Créez votre propre serveur avec Maven et Gradle

Si une équipe cherche une alternative à Jenkins parce qu’elle estime que l’outil est trop complexe ou que ses constructions automatisées nécessitent des personnalisations importantes, une autre option consiste à construire son propre serveur d’intégration continue.

Maven fournit un ensemble complet d’outils de construction, de test et de déploiement. Il offre des facilités intégrées pour empaqueter des applications, non seulement sous forme d’artefacts basés sur Java tels que des fichiers EAR, JAR et WAR, mais aussi sous forme d’images Docker que les équipes peuvent tester et déployer dans un cluster Kubernetes.

L’API Gradle permet aux développeurs Java de planifier des tâches, de surveiller les déploiements et d’interagir avec un système externe. Si aucune des alternatives Jenkins listées ici ne correspond à vos besoins, et que vous avez accès à des programmeurs de logiciels talentueux qui comprennent vos besoins en matière de construction automatisée, la meilleure alternative Jenkins pourrait bien être celle que vous édifiez vous-même.

CloudBees CI, une nouvelle version de Jenkins

Une entreprise qui utilise le logiciel libre Jenkins n’a peut-être pas tant besoin d’une alternative à Jenkins que d’une version étendue de l’outil avec un support professionnel.

Pour maintenir les efforts d’intégration continue sans abandonner Jenkins, CloudBees propose CloudBees CI (anciennement CloudBees Core). Ce serveur d’intégration continue en libre-service est disponible sur site et dans le cloud, prend en charge l’intégration rapide et peut s’adapter à de nombreuses équipes de développement.

Si une organisation souhaite utiliser Jenkins, mais avec un support professionnel, CloudBees CI pourrait être le bon choix.

Récapitulatif des alternatives à Jenkins

En résumé, si vous recherchez une alternative à Jenkins, les 10 plateformes CI/CD suivantes valent la peine d’être examinées :

  • GitHub Actions
  • GitLab
  • Atlassian Bamboo
  • JFrog Pipelines
  • Spinnaker
  • JetBrains TeamCity
  • AWS CodePipeline
  • Azure DevOps Server (anciennement Microsoft Team Foundation Server)
  • Maven et Gradle
  • CloudBees CI (anciennement CloudBees Core)

Un serveur d’intégration continue est un composant clé de la pile DevOps moderne. Choisissez celui qui répond le mieux à vos besoins – qu’il s’agisse de Jenkins ou d’une autre option – et profitez de la transformation IT qui en découle.

N.D.R. : Avant de devenir rédacteur en chef de TheServerSide.com [propriété de Techtarget, également propriétaire du MagIT], Cameron Mckenzie était ingénieur logiciel spécialiste de Java EE. Ce passif teinte ce conseil.

Pour approfondir sur DevOps et Agilité