Bamboo vs. Hudson (aka Jenkins) vs qualsiasi altro sistema CI [chiuso]


119

Qualcuno là fuori ha esperienza sia con Hudson che con Bamboo? Qualche idea sui punti di forza e di debolezza relativi di questi prodotti?

Ok, dal momento che la gente continua a menzionare altri prodotti CI, lo aprirò ulteriormente. Ecco il mio problema generale. Voglio configurare un sistema CI per un nuovo progetto. Questo progetto probabilmente avrà componenti Java (WAR e JAR), alcuni moduli python e forse anche un componente .NET. Quindi voglio un server CI che possa:

  1. Gestisci più lingue,
  2. Distribuisci artefatti sui server (ovvero distribuisci la guerra se tutti gli unit test vengono superati).
  3. Vorrei anche qualcosa che si integrasse con uno strumento di copertura del codice decente.
  4. I rapporti di bell'aspetto sono belli, ma non essenziali.
  5. Meccanismi di notifica multipli quando le cose vanno storte.
  6. Non sono preoccupato per l'hosting. Lo eseguirò su un server locale o su un'istanza Amazon.
  7. Inoltre, questa potrebbe essere una torta nel cielo, ma c'è qualcosa che può anche creare app per iPhone?

2
Solo per confondere ancora di più le acque hai considerato Team City? Hanno una versione gratuita (limitata dal numero di utenti). L'ho usato in passato e mi piacciono molto le informazioni che fornisce.
Shane Courtrille


2
Continua a confondere le acque :) Integrityapp.com Questo può essere distribuito a Heroku, così puoi avere un server CI gratuitamente.
Nerian

Non ho visto TeamCity. E non mi rendevo conto che Oracle ha costretto Hudson a diventare Jenkins. Modificherò la domanda per riflettere questo.
Karthik Ramachandran

2
sal

Risposte:


50

Dichiarazione di non responsabilità: lavoro su Bamboo e quindi non commenterò le funzionalità di altri prodotti CI poiché la mia esperienza con essi è limitata.

Per rispondere alle tue esigenze specifiche:

Gestisci più lingue

Bamboo ha il supporto immediato per più lingue. I clienti lo usano con Java, .Net, PHP, JavaScript ecc. Detto questo, la maggior parte dei server di compilazione sono abbastanza generici da eseguire almeno uno script che può dare il via al processo di compilazione.

Distribuisci artefatti sui server (ovvero distribuisci la guerra se tutti gli unit test vengono superati).

Bamboo 2.7 supporta le fasi di costruzione, che ti consentono di suddividere la tua build in una fase di test unitario e una fase di distribuzione. Solo se la fase di unit test ha esito positivo, la build passerà alla fase di distribuzione. In Bamboo 3.0 supporteremo la condivisione degli artefatti tra le fasi, permettendoti di creare un artefatto (ad esempio la tua guerra) nella prima fase e utilizzare questo artefatto nelle fasi successive per il test e la distribuzione.

Vorrei anche qualcosa che si integrasse con uno strumento di copertura del codice decente.

Bamboo viene fornito con il supporto per Clover e ha anche un plugin disponibile per Cobertura .

I rapporti di bell'aspetto sono belli, ma non essenziali.

Bamboo ha un sacco di rapporti che sono belli, ma non essenziali :)

Meccanismi di notifica multipli quando le cose vanno storte.

Bamboo può notificarti tramite e-mail, RSS, IM, un plug-in IDE o un bel wallboard visibile a tutto il team.

Non sono preoccupato per l'hosting. Lo eseguirò su un server locale o su un'istanza Amazon.

Per esperienza, è generalmente più economico ospitare il proprio server CI. Ma se hai bisogno di scalare, Bamboo semplifica la distribuzione delle tue build ad agenti locali aggiuntivi o la scalabilità ad Amazon tramite agenti Elastic.

Inoltre, questa potrebbe essere una torta nel cielo, ma c'è qualcosa che può anche creare app per iPhone?

Simile alla risposta alla tua prima domanda, la maggior parte dei server CI sarà in grado di creare app per iPhone in qualche modo. È possibile che sia richiesto un po 'più di scripting.

Prezzo: Bamboo non è gratuito (a parte la nostra licenza iniziale gratuita ) / libre / open-source, ma riceverai il codice sorgente di Bamboo se acquisti una licenza commerciale e il supporto completo. Rispetto al costo della potenza di calcolo e alla potenziale manutenzione richiesta per un server CI, il costo di una licenza Bamboo è piuttosto ridotto.

Spero che questo ti aiuti.


15
La struttura dei prezzi di Bamboo è imperfetta. Non fa differenza tra utenti con build parallele e utenti che necessitano semplicemente di agenti remoti per test multipiattaforma. Se provi a eseguire un minuscolo server di build per Windows, Linux e Mac (forse anche versioni diverse di ciascuno) il prezzo salta rapidamente a migliaia di dollari all'anno. Un approccio migliore sarebbe stato quello di addebitare build simultanee.
Gili

La caratteristica principale di Bamboo contro i jenkins è l'unione automatica dei rami per evitare la deriva tra gli sviluppatori nei team. Ma purtroppo lo supportano solo per GIT e Mercurial, quindi chiunque utilizzi SVN o qualsiasi altra cosa non funzionerà. Ma Jenkins ha il plug-in SVN Merge che ci consente di farlo.
george_h

1
@george_h Il plugin GIT per Jenkins ora supporta l'unione automatica dei rami. Non sono sicuro di quando sia stato implementato.
slu

1
È fantastico. In realtà ho usato sia bambù che jenkin e jenkins era di gran lunga migliore. Alla fine è tutto solo un server che esegue Ant + Maven.
george_h

40

Non ho usato Bamboo ma ho usato Hudson, Cruise e TFS e tra tutti Hudson è stato senza dubbio il migliore. È incredibilmente facile da configurare e ha una GUI web davvero carina per la configurazione del progetto. La cosa fantastica di Hudson è che supporta praticamente qualsiasi linguaggio e funzionalità che potresti desiderare supponendo che qualcuno abbia scritto un plug-in per esso, che probabilmente ha.

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

L'abbiamo usato per eseguire build .NET, Java e C ++ su intervalli di tempo, nonché controlli SVN con sistemi di test automatizzati ed è stato fantastico. L'ultimo luogo in cui ho lavorato ha iniziato lo sviluppo di un iPhone poco prima che me ne andassi e credo che stessero usando Hudson anche per quello.

Inoltre è gratis!


35

Bamboo vs Hudson, a un livello molto superficiale, sembra ridursi a:

  • Bambù: facile da usare e di bell'aspetto
  • Jenkins: ruvido intorno ai bordi, ma è molto più flessibile del bambù

Sia Bamboo che Jenkins hanno numerosi bug ( incontrerai problemi) ma almeno con Jenkins è molto più probabile che tu abbia una soluzione alternativa fino a quando non viene risolto. Con Bamboo, sei bloccato in attesa di un aggiornamento.


Avrei immaginato che con Bamboo avessi almeno un supporto commerciale per questo.
keiki

3
@keiki, sì e no. Sì, ottieni supporto commerciale ma costa un sacco di soldi (devi chiederti se il rapporto costi / benefici ha senso). Vale la pena notare che molti dei problemi che incontrerai sono causati da funzionalità mancanti. Atlassian farà del suo meglio per aiutarti, ma alla fine hanno risorse limitate e potrebbero volerci anni per aggiungere le funzionalità che richiedi (a seconda della loro popolarità).
Gili

1
+1 per flessibilità. Bamboo è davvero limitato per uno strumento moderno, anche quello per uno strumento CI, in cui le cose non vengono fatte da zero. Inoltre, Atlassian non è stato in grado di dare la priorità / gestire i bug di Bamboo nel modo in cui siamo abituati a lavorare con OSS.
Paddy

16

Disclaimer: sto lavorando con Jenkins.

Nella nostra organizzazione (abbastanza grande, più di 100 sviluppatori), abbiamo trovato molto utili anche queste due funzionalità:

  1. Plugin CAS con strategia di sicurezza del progetto a matrice
  2. Build Pipeline Plugin
  3. Programma di rilascio di LTS.

Sulle tue domande:

  1. ok
  2. PLUGIN SCP o PLUGIN SSH
  3. Usiamo FINDBUGS, plug-in di raccolta di analisi statiche, plug-in di analisi del codice statico, plug-in di scanner di attività
  4. Precedente al punto 3 + plugin Jenkins DocLinks
  5. Usiamo email Jenkins Email Extension Plugin, ma supporta anche altri sistemi, come rss, twitter publish, sms ...
  6. Stiamo funzionando in un hosting Tomcat, localmente.
  7. Sì.

5

Bene, finora non ho usato Bamboo, ma una differenza è che Hudson è un software libero / libero / open source.


10
downvoted - questa risposta è vera, ma banale (presumibilmente qualcuno a conoscenza di entrambi i prodotti lo sa); OP sta cercando confronti di funzionalità.
Jason S

1

Se sei disposto a pagare per questo, Anthill fa tutto ciò che stai guardando. Lo usiamo nella mia azienda per il nostro team web ed è piuttosto potente.

Gestisci più lingue

Fuori dagli schemi, automatizza gli script esistenti e gestisce gli artefatti che producono indipendentemente dalla lingua.

Distribuisci artefatti sui server (ovvero distribuisci la guerra se tutti gli unit test vengono superati).

La distribuzione può essere aggiunta come passaggio nel processo di compilazione. Non sono sicuro che vorresti distribuire direttamente alla produzione, ma sicuramente potresti farlo se la direzione ti dice che devi.

Vorrei anche qualcosa che si integrasse con uno strumento di copertura del codice decente.

Si integrano immediatamente con Clover, Cobertura, Emma, ​​Checkstyle, CodeSonar, Coverity, FindBugs, Fortify, Klocwork, PMD e Sonar.

I rapporti di bell'aspetto sono belli, ma non essenziali.

Non sono sicuro di quali rapporti siano disponibili ma c'è una scheda rapporti (non ci vado :-))

Meccanismi di notifica multipli quando le cose vanno storte.

So che può fare email (e quindi sms), si integra con pochi servizi di messaggistica istantanea.

Non sono preoccupato per l'hosting. Lo eseguirò su un server locale o su un'istanza Amazon.

Ho visto una demo di loro avviare una sessione cloud da un'immagine, completa di un agente per la distribuzione. Lo eseguiamo su una tipica macchina Linux, ma so che alcune persone lo eseguono su un server VMWare.

Inoltre, questa potrebbe essere una torta nel cielo, ma c'è qualcosa che può anche creare app per iPhone?

Probabilmente rientrerebbe nel primo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.