Bambou Vs. Hudson (alias Jenkins) vs tout autre système CI [fermé]

119

Quelqu'un a-t-il de l'expérience avec Hudson et Bamboo? Avez-vous des réflexions sur les forces et les faiblesses relatives de ces produits?

D'accord, puisque les gens continuent de mentionner d'autres produits CI, je vais ouvrir cela davantage. Voici mon problème général. Je souhaite configurer un système CI pour un nouveau projet. Ce projet aura probablement des composants Java (WAR et JAR), des modules python et peut-être même un composant .NET. Je veux donc un serveur CI qui puisse:

  1. Gérer plusieurs langues,
  2. Déployez des artefacts sur les serveurs (c'est-à-dire déployez la guerre si tous les tests unitaires réussissent.)
  3. J'aimerais aussi quelque chose qui s'intègre à un outil de couverture de code décent.
  4. Les bons rapports sont bons, mais pas essentiels.
  5. Plusieurs mécanismes de notification en cas de problème.
  6. Je ne suis pas inquiet pour l'hébergement. Je vais l'exécuter sur un serveur local ou sur une instance Amazon.
  7. En outre, c'est peut-être un gâteau dans le ciel, mais y a-t-il quelque chose qui peut également créer des applications iPhone?
Karthik Ramachandran
la source
2
Juste pour brouiller encore plus les eaux, avez-vous envisagé Team City? Ils ont une version gratuite (limitée par le nombre d'utilisateurs). Je l'ai utilisé dans le passé et j'aime beaucoup les informations qu'il fournit.
Shane Courtrille le
Hudson ou Jenkins? ( kohsuke.org/2011/01/11/bye-bye-hudson-hello-jenkins )
Romain Linsolas
2
Continuons à embrouiller les eaux :) intégritéapp.com Cela peut être déployé sur Heroku, vous pouvez donc avoir un serveur CI gratuitement.
Nerian
Je n'ai pas vu TeamCity. Et je ne savais pas qu'Oracle avait forcé Hudson à devenir Jenkins. Je vais modifier la question pour refléter cela.
Karthik Ramachandran le
2
Il y a un fil à ce sujet ici: forums.atlassian.com/message.jspa?messageID=257292121
sal

Réponses:

50

Avertissement: je travaille sur Bamboo et je ne vais donc pas commenter les fonctionnalités des autres produits CI car mon expérience avec eux est limitée.

Pour répondre à vos besoins spécifiques:

Gérer plusieurs langues

Bamboo prend en charge directement plusieurs langues. Les clients l'utilisent avec Java, .Net, PHP, JavaScript, etc. Cela étant dit, la plupart des serveurs de build sont suffisamment génériques pour au moins exécuter un script qui peut lancer votre processus de build.

Déployez des artefacts sur les serveurs (c'est-à-dire déployez la guerre si tous les tests unitaires réussissent.)

Bamboo 2.7 prend en charge les étapes de construction, qui vous permettent de diviser votre construction en une étape de test unitaire et une étape de déploiement. Uniquement si l'étape de test unitaire réussit, la génération passera à l'étape de déploiement. Dans Bamboo 3.0, nous prendrons en charge le partage d'artefacts entre les étapes, vous permettant de créer un artefact (par exemple votre guerre) dans la première étape et d'utiliser cet artefact dans les étapes suivantes pour le test et le déploiement.

J'aimerais aussi quelque chose qui s'intègre à un outil de couverture de code décent.

Bamboo prend en charge Clover et dispose également d'un plugin disponible pour Cobertura .

Les bons rapports sont bons, mais pas essentiels.

Bamboo a tout un tas de rapports qui sont sympas, mais pas essentiels :)

Plusieurs mécanismes de notification en cas de problème.

Bamboo peut vous avertir par e-mail, RSS, IM, un plugin IDE ou un joli wallboard visible par toute l'équipe.

Je ne suis pas inquiet pour l'hébergement. Je vais l'exécuter sur un serveur local ou sur une instance Amazon.

Par expérience, il est généralement moins cher d'héberger votre propre serveur CI. Mais si vous avez besoin d'évoluer, Bamboo facilite la distribution de vos versions à des agents locaux supplémentaires ou la mise à l'échelle vers Amazon via des agents Elastic.

En outre, c'est peut-être un gâteau dans le ciel, mais y a-t-il quelque chose qui peut également créer des applications iPhone?

Semblable à la réponse à votre première question, la plupart des serveurs CI pourront créer des applications iPhone d'une certaine manière. Il est possible qu'un peu plus de scripts soient nécessaires.

Prix: Bamboo n'est pas gratuit (à part notre licence de démarrage gratuite ) / libre / open-source, mais vous obtiendrez le code source de Bamboo si vous achetez une licence commerciale et un support complet. Comparé au coût de la puissance de calcul et de la maintenance potentielle requise pour un serveur CI, le coût d'une licence Bamboo est plutôt faible.

J'espère que cela t'aides.

jens
la source
15
La structure de prix de Bamboo est imparfaite. Il ne fait pas la différence entre les utilisateurs avec des versions parallèles et les utilisateurs qui ont simplement besoin d'agents distants pour les tests multiplateformes. Si vous essayez d'exécuter un petit serveur de construction pour Windows, Linux et Mac (peut-être même des versions différentes de chacun), le prix grimpe rapidement à des milliers de dollars par an. Une meilleure approche aurait été de facturer les versions simultanées.
Gili
La grande fonctionnalité de Bamboo contre jenkins est la fusion automatique des branches pour éviter la dérive entre les développeurs en équipe. Mais malheureusement, ils ne supportent cela que pour GIT et Mercurial, donc toute personne utilisant SVN ou autre ne fonctionnera pas. Mais Jenkins a le plugin SVN Merge qui nous permet de le faire.
george_h
1
@george_h Le plugin GIT pour Jenkins prend désormais en charge la fusion automatique des branches. Je ne sais pas quand cela a été mis en œuvre.
slu
1
C'est génial. J'ai en fait utilisé du bambou et des jenkins et jenkins était de loin meilleur. En fin de compte, c'est juste un serveur qui exécute Ant + Maven.
george_h
40

Je n'ai pas utilisé Bamboo mais j'ai utilisé Hudson, Cruise et TFS et de tous, Hudson était de loin le meilleur. Il est ridiculement facile à configurer et dispose d'une interface graphique Web vraiment sympa pour la configuration du projet. Ce qui est génial avec Hudson, c'est qu'il prend en charge à peu près tous les langages et fonctionnalités que vous pourriez souhaiter en supposant que quelqu'un a écrit un plug-in pour celui-ci, ce qu'ils ont probablement.

http://wiki.hudson-ci.org/display/HUDSON/Plugins

Nous l'avons utilisé pour exécuter des versions .NET, Java et C ++ sur des intervalles chronométrés ainsi que des enregistrements SVN avec des faisceaux de test automatisés et c'était génial. L'endroit où j'ai travaillé avant la dernière fois a commencé le développement de l'iPhone juste avant mon départ et je pense qu'ils utilisaient Hudson pour cela aussi.

De plus, c'est gratuit!

Steve Whitfield
la source
35

Bamboo vs Hudson, à un niveau très superficiel, semble se résumer à:

  • Bambou: facile à utiliser et beau
  • Jenkins: Rugueux sur les bords, mais est beaucoup plus flexible que le bambou

Les deux Bamboo et Jenkins ont de nombreux bugs (vous allez rencontrer des problèmes) , mais au moins avec Jenkins vous êtes beaucoup plus susceptibles d'avoir une solution de contournement jusqu'à ce qu'il soit fixé. Avec Bamboo, vous êtes coincé dans l'attente d'une mise à jour.

Gili
la source
J'aurais deviné qu'avec Bamboo, vous avez au moins un soutien commercial pour cela.
keiki
3
@keiki, oui et non. Oui, vous bénéficiez d'un soutien commercial, mais cela coûte beaucoup d'argent (vous devez vous demander si le rapport coût / avantage a du sens). Il convient de noter que de nombreux problèmes que vous rencontrerez sont dus à des fonctionnalités manquantes. Atlassian fera de son mieux pour vous aider, mais en fin de compte, ils ont des ressources limitées et cela peut leur prendre des années pour ajouter les fonctionnalités que vous demandez (en fonction de leur popularité).
Gili
1
+1 pour la flexibilité. Bamboo est vraiment limité pour un outil moderne, cela aussi pour un outil CI, où les choses ne sont pas faites à partir de zéro. En plus de cela, Atlassian n'a pas été en mesure de prioriser / gérer les bogues Bamboo comme nous l'avons habitué à travailler avec OSS.
Paddy
16

Avertissement: je travaille avec Jenkins.

Dans notre organisation (assez grande, plus de 100 développeurs), nous avons également trouvé ces deux fonctionnalités très utiles:

  1. Plugin CAS avec stratégie de sécurité de projet matriciel
  2. Créer un plug-in de pipeline
  3. Calendrier de sortie de LTS.

À propos de vos questions:

  1. D'accord
  2. PLUGIN SCP ou PLUGIN SSH
  3. Nous utilisons FINDBUGS, plug-in de collecteur d'analyse statique, plug-ins d'analyse de code statique, plug-in d'analyse de tâches
  4. Précédent au point 3 + plugin Jenkins DocLinks
  5. Nous utilisons email Jenkins Email Extension Plugin, mais il prend également en charge d'autres systèmes, comme rss, twitter publish, sms ...
  6. Nous courons dans un hébergement Tomcat, localement.
  7. Oui.
Federico Paolantoni
la source
5

Eh bien, je n'ai pas utilisé Bamboo jusqu'à présent, mais une différence est que Hudson est un logiciel libre / libre / open source.

Puce
la source
10
contre-voté - cette réponse est vraie, mais insignifiante (vraisemblablement quelqu'un au courant des deux produits le sait); OP recherche des comparaisons de fonctionnalités.
Jason S
1

Si vous êtes prêt à payer pour cela, Anthill fait tout ce que vous regardez. Nous l'utilisons dans mon entreprise pour notre équipe Web, et c'est assez puissant.

Gérer plusieurs langues

Prêt à l'emploi, il automatise vos scripts existants et gère les artefacts qu'ils produisent quelle que soit la langue.

Déployez des artefacts sur les serveurs (c'est-à-dire déployez la guerre si tous les tests unitaires réussissent.)

Le déploiement peut être ajouté en tant qu'étape de votre processus de génération. Je ne suis pas sûr que vous souhaitiez déployer directement en production, mais vous le pourriez certainement si la direction vous le demande.

J'aimerais aussi quelque chose qui s'intègre à un outil de couverture de code décent.

Ils s'intègrent prêts à l'emploi avec Clover, Cobertura, Emma, ​​Checkstyle, CodeSonar, Coverity, FindBugs, Fortify, Klocwork, PMD et Sonar.

Les bons rapports sont bons, mais pas essentiels.

Je ne sais pas quels rapports sont disponibles mais il y a un onglet rapports (je n'y vais pas :-))

Plusieurs mécanismes de notification en cas de problème.

Je sais qu'il peut faire des e-mails (et donc des sms), s'intègre à quelques services de messagerie instantanée.

Je ne suis pas inquiet pour l'hébergement. Je vais l'exécuter sur un serveur local ou sur une instance Amazon.

J'ai vu une démo d'entre eux déclenchant une session cloud à partir d'une image, avec un agent pour le déploiement. Nous l'exécutons sur une machine Linux typique, mais je sais que certaines personnes l'exécutent sur un serveur VMWare.

En outre, c'est peut-être un gâteau dans le ciel, mais y a-t-il quelque chose qui peut également créer des applications iPhone?

Cela relèverait probablement du premier.

corsiKa
la source