Haut de page

Bamboo vs. Jenkins : Quel outil de CI/CD utiliser ?


Publié par
Douglas Fidelis

6 mars 2019

Aujourd’hui, il est pratiquement impossible de ne pas parler de DevOps quand on parle de développement logiciel. L’intégration et la livraison continues (CI/CD) sont des points stratégiques, à ne pas laisser de côté. Associés à la mise en place de bonnes pratiques, les résultats sont sans appel : de meilleurs plans de déploiement, moins de bugs dans vos versions de logiciel et des feed-backs plus rapides.

Comment faire pour pouvoir faire des mises à jour régulières et pouvoir livrer des versions de qualité ? Quels outils devriez-vous utiliser ? Ce sont les questions que se posent beaucoup d’équipes de développement. Ces équipes recherchent aussi des comparatifs entre Bamboo et Jenkins. Et vous êtes sûrement sur cette page pour la même raison ! Retrouvez dans cet article notre comparatif détaillé entre les outils de CI/CD Bamboo d’Atlassian et Jenkins et découvrez leurs différences.

L’intégration continue avec Bamboo (Atlassian)

En 2007, sortait la première version de Bamboo, l’occasion pour Atlassian de se lancer sur un marché de niche émergent. Bamboo propose une combinaison performante entre organisation, flexibilité, méthodologies d’Interface Graphique (GUI) et de CI/CD faciles à utiliser, ainsi qu’une expérience utilisateur avancée lors de la création des builds et des plans de déploiement. L’objectif principal de Bamboo est de vous faire gagner en flexibilité et fiabilité pour vos livraisons logiciels. Vos process de livraisons seront aussi flexibles et incassables que le bambou !

Voici un exemple d’organisation de builds à travers une structure bien définie. Avec Bamboo, vous créez des plans de build ou de déploiement, puis vous mettez en place des étapes, des activités et des tâches, flexibles et faciles à implémenter via l’interface utilisateur.

Dans votre Plan, vous pouvez avoir plusieurs Étapes. Selon la documentation du site Atlassian, chaque étape :

  • a une seule activité par défaut, mais peut être utilisé pour grouper plusieurs activités, 
  • exécute ses activités en parallèle, via plusieurs agents (si disponibles),
  • doit avoir complété toutes ses activités avant de pouvoir démarrer l’étape suivante du plan,
  • peut produire des artefacts qui pourront être utilisés dans une étape ultérieure.

Sous les étapes, vous retrouvez les activités. Les activités sont des groupes de tâches (les éléments globaux à exécuter). Selon la documentation du site Atlassian, une activité :

  • accomplit une série d’une ou plusieurs tâches qui sont exécutées successivement sur le même agent,
  • contrôle l’ordre d’accomplissement des tâches,
  • collecte les exigences de chaque tâche à l’intérieur de l’activité – ainsi les exigences peuvent être associées aux fonctionnalités de l’agent,
  • définit les artefacts produits par le build,
  • seuls les artefacts de l’étape précédente peuvent être utilisés, 
  • détermine toutes les étiquettes afin de classer le résultat du build ou son artefact.

 

Les fonctionnalités clé sont :

  • Une visibilité totale de l’implémentation, de la qualité et du statut de vos versions grâce à une intégration native entre Jira Software et Bitbucket Serveur. 
  • L’envoi d’un flux continu de builds sur vos environnements de tests. Une fois prêts, vos builds sont livrés automatiquement à vos clients.
  • Une gestion puissante des agents de build qui vous permet d’augmenter votre capacité de build en connectant des serveurs supplémentaires à votre réseau via Amazon EC2.  Vous pouvez visualisez les exigences système de chaque build avec la fonctionnalité Agent Matrix.
  • Des fusions automatisées des branches Git et Mercurial. 
  • À l’aide du nom de la branche, vous pouvez automatiquement détecter, créer, tester et fusionner des branches et déployer du code en continu sur des serveurs de production ou de transition.
  • Une plateforme de support et des ressources sont disponibles pour vos équipes, quelque soit la taille de votre entreprise. 

(toutes les fonctionnalités ici)

Plateformes prise en charge et caractéristiques techniques :

  • Bamboo fonctionne avec Java (supporte la version 1.8 de Java)
  • Systèmes d’exploitation : Microsoft Window, Linux, Solaris et Mac OS/OSX
  • Bases de données : Mysql, Postgres, SQL Server et Oracle
  • Navigateurs Web : Firefox, Chrome, Safari, Microsoft Edge et IE 11
  • Logiciels de gestion de version : GIT, Mercurial, Subversion and Perforce
  • Docker pour Mac/ Linux (version 17 ou supérieures)

L’intégration continue avec Jenkins

Sorti en 2004 sous le nom d’Hudson, Jenkins est l’un des outils d’intégration continue les plus populaires. Sur le même principe que Bamboo, Jenkins permet d’utiliser les méthodologies de CI/CD pour aider les équipes à créer, tester et déployer des logiciels de qualité.

Jenkins est une application Open Source. Son immense communauté permet le maintien et l’amélioration de l’application et de son écosystème. L’un de ses avantages est le nombre de plugins (plus d’une centaine). Ils permettent aux utilisateurs de personnaliser Jenkins avec les procédures CI/CD dont ils ont besoin.

Voici un exemple de scénario qu’il est possible de réaliser avec Jenkins :

Les fonctionnalités clés sont :

  • Intégration et livraison continues
  • Une installation facile
  • Une configuration simplifiée
  • Une centaine de plugins
  • Extensible grâce à son architecture basée sur des plugins
  • Jenkins répartit facilement les tâches à travers plusieurs machines. Cela accélère la création de builds, de tests et de déploiements sur plusieurs plateformes. 

(Toutes les fonctionnalités ici)

Jenkins a également des fonctionnalités intégrées telles que l’écriture du script directement sur l’interface outil pour créer/mettre à jour les tâches ou les pipelines. Une version Cloud est également disponible.

 

Voici un exemple de « Jenkinsfile » utilisant la syntaxe « Declarative Pipeline » (vous retrouvez aussi toutes les définitions dans ce lien).

pipeline { 
    agent any 
    stages {
        stage('Build') { 
            steps { 
                sh 'make' 
            }
        }
        stage('Test'){
            steps {
                sh 'make check'
                junit 'reports/**/*.xml' 
            }
        }
        stage('Deploy') {
            steps {
                sh 'make publish'
            }
        }
    }
}

Plateformes prise en charge et caractéristiques techniques :

  • Systèmes d’exploitation supportés : Microsoft Windows, Linux, Solaris and MacOS
  • Navigateurs web supportés : Firefox, Chrome, Safari, Microsoft IE 11
  • Logiciels de gestion de version : CVS et Subversion, prise en charge native pour Git, et s’intègre également avec beaucoup d’autres logiciels de gestion de version via des plugins.
  • Peut être installé en tant que conteneur Docker

Bamboo vs. Jenkins : le comparatif

Les deux applications sont très puissantes et ont de nombreuses fonctionnalités : 

BAMBOO

JENKINS

Workflows de branches de fonctionnalités Git

Check markpris en charge

x

Projets de déploiement intégrés

Check markpris en charge

x
Intégration native avec Jira Software

Check markpris en charge

x
Intégration native avec Bitbucket Serveur

Check markpris en charge

x
API REST

Check markpris en charge

Check markpris en charge

Automatisation des tests

Check markpris en charge

via plugins
Système d’autorisations simplifié pour les entreprises

Check markpris en charge

via plugins

G2Crowd a créé un comparatif, basé sur les avis des utilisateurs. Voici les points évalués :

BAMBOO

JENKINS

Répond aux exigences demandées 8.8 8.9
Facile d’utilisation 8.5 7.8
Facile à configurer 7.5 7.8
Facile à administrer 8.2 7.8
Qualité du support 8.2 7.6

Les deux outils ont le même objectif et offrent tous les deux des fonctionnalités haut niveau. Comment savoir quel outil est fait pour vous ? Voici quelques points qui peuvent vous aider dans votre réflexion :

  • Jenkins est un logiciel Open Source, alors que Bamboo est un logiciel propriétaire. Jenkins est un projet soutenu par sa communauté venant du monde entier. Bamboo est développé par une seule et même équipe.
  • Bamboo a une approche utilisateur plus aboutie que Jenkins. C’est un aspect assez commun des applications Open Source, d’autres fonctionnalités sont à développer en priorité et l’interface utilisateur est parfois en reste.
  • Jenkins propose un nombre impressionnant de plugins pour aider les utilisateurs a atteindre leur objectif. Bamboo possède une grande palette de fonctionnalités nativement et vous pouvez aussi les personnaliser et les étendre avec plus d’une centaine d’apps disponibles sur la Marketplace Atlassian.
  • Bamboo s’intègre en toute simplicité avec la suite Atlassian, vous offrant une expérience optimale si vous utilisez déjà Jira Software et Bitbucket.
  • Jenkins et Bamboo proposent, tous les deux, une documentation complète en ligne. Les utilisateurs peuvent s’y référer pour trouver tout ce dont ils ont besoin, sans nécessairement faire appel au Support éditeur.
  • Bamboo offre une excellente plateforme de support professionnel pour tous ses clients possédant une licence. S’ajoute à cela, une documentation en ligne et l’aide de la communauté Atlassian en cas de besoin. Jenkins propose une plateforme de support gérée par sa communauté et vous pouvez souscrire à un support professionnel via Cloudbees.
  • Bamboo est un logiciel payant et son coût dépend du nombre d’agents distants dont vous avez besoin. Jenkins est un outil gratuit.

Choisir votre outil n’est pas une décision facile, mais nous pouvons vous accompagner dans votre réflexion si vous le souhaitez. En tant que Partenaire Solution Platinum d’Atlassian, nous pouvons vous détailler les bénéfices que vous pourriez retirer à utiliser Bamboo. En associant ce dernier aux autres outils Atlassian, votre équipe de développement profitera de tous les avantages de l’Intégration continue. Que vous soyez une petite équipe de développement ou une grosse entreprise avec des centaines de builds à déployer, nous sommes certains que Bamboo peut vous aider à livrer des logiciels de meilleure qualité et plus rapidement.

Vous souhaitez tester Bamboo ? Nos équipes sont là pour vous aider à gérer vos licences et leur déploiement. Contactez-nous !