Come scegliere tra Hudson e Jenkins?

Mi ci è voluta un’ora o giù di lì per allenarmi Hudson si è ramificata solo di recente (gennaio 2011)
Non ho idea di quanto sia rapido il cambio di ogni ramo ora, ma ancora più importante, qual è la direzione che ogni ramo sta prendendo e quali sono i punti chiave in modo che si possa fare una scelta tra cui scegliere?

Qualcuno ha collegamenti con la roadmap del prodotto e le differenze di funzionalità?

Usa Jenkins .

Jenkins è il recente fork degli sviluppatori core di Hudson. Per capire perché, è necessario conoscere la storia del progetto. Era originariamente open source e supportato da Sun. Come gran parte di ciò che fece Sun, era abbastanza aperto, ma c’era un po ‘di trascuratezza. La fonte, i tracker, il sito Web, ecc. Sono stati ospitati da Sun nella loro piattaforma java.net relativamente chiusa.

Quindi Oracle ha acquistato Sun. Per varie ragioni, Oracle non ha esitato a sfruttare ciò che percepisce come il suo patrimonio. Questi includono un certo controllo sulla piattaforma logistica di Hudson e in particolare il controllo sul nome di Hudson. Molti utenti e collaboratori non erano a loro agio e hanno deciso di andarsene.

Quindi si tratta di ciò che Hudson vs Jenkins offre. Sia Oracle che Hudson e Jenkins hanno il codice. Hudson ha il supporto aziendale e il marchio Oracle e Sonatype. Jenkins ha la maggior parte degli sviluppatori principali, la comunità e (finora) molto più lavoro effettivo.

Leggi quel post che ho linkato in alto, poi leggo il resto di questi in ordine cronologico . Per bilanciare puoi leggere la versione di Hudson / Oracle. Per me è abbastanza chiaro chi sta giocando sulla difensiva e chi ha reali intenzioni per il progetto.

Come ha scritto Chmullig , usa Jenkins . Alcuni punti aggiuntivi:

  • In realtà, probabilmente fu Oracle a fare il biforcarsi ! E tecnicamente, anche questo è un po ‘quello che è successo .

  • È interessante vedere cosa esce da “Hudson” però. Mentre “Winston riassume lo stato e il futuro roseo del progetto Hudson” le cose che hanno pubblicato sul (nuovo) sito web Hudson in origine mi sembravano di un umorismo strano, forse questa era un’acquisizione intenzionale, ei ragazzi di Sonatype in realtà hanno alcune grandi idee la loro manica. Questa analisi , suggerendo una strategia deliberata da parte di Oracle / Sonatype per estromettere Kohsuke e l’equipaggio per creare un Hudson più “intraprendente” è una lettura molto interessante!

  • In ogni caso, questo breve confronto due settimane dopo la scissione, sebbene non proprio scientifico, mostra che Jenkins è di gran lunga più attivo nei due progetti.

… e alcune informazioni di base:

Il creatore di Hudson, Kohsuke Kawaguchi , iniziò il progetto nel suo tempo libero, anche se lavorava per Sun Microsystems e in seguito lo pagò per svilupparlo ulteriormente. Come @erickson ha notato in un’altra domanda SO ,

[Hudson / Jenkins] è il prodotto di un singolo genio intellettuale: Kohsuke Kawaguchi. Per questo motivo, è coerente, coerente e solido come una roccia.

Dopo l’acquisizione da parte di Oracle, Kohsuke non è durato a lungo (a causa della mancanza di monitor …?; -] ), e ha lavorato per CloudBees . Ciò che è iniziato alla fine del 2010 come conflitto tra gli strumenti tra la comunità di sviluppatori e Oracle e terminato con il nome / fork / split è ben documentato nei collegamenti forniti da chmullig. Per me, l’intero enigma parla, forse più di ogni altra cosa, della totale incapacità o non volontà di Oracle di sponsorizzare un progetto open-source in un modo che mantenga felici tutte le parti (Oracle, sviluppatori, utenti). Non è nel loro DNA o qualcosa del genere, come abbiamo visto anche in altri casi .

Considerato tutto quanto sopra, seguirò personalmente Kohsuke e altri sviluppatori principali in questa materia, e andrò con Jenkins.

Solo la mia opinione in merito, tre mesi dopo:

Jenkins ha continuato il percorso ben battuto dall’originale Hudson con rilasci frequenti inclusi molti aggiornamenti minori.

Oracle sembra aver delegato in gran parte il lavoro sul futuro percorso di Hudson al team Sonatype, che ha apportato alcune modifiche significative, in particolare rispetto a Maven. Lo hanno spostato congiuntamente alla fondazione Eclipse.

Suggerirei che se ti piace il suono di:

  • versioni meno frequenti ma più testate per compatibilità con le versioni precedenti (più di un ciclo di rilascio “di tipo enterprise”)
  • un prodotto focalizzato principalmente sull’integrazione forte di Maven e / o Nexus (cioè, non hai interesse per Gradle e Artifactory ecc.)
  • offerte di supporto professionale da Sonatype o Oracle preferibilmente a Cloudbees ecc
  • non ti dispiace avere una piccola comunità di sviluppatori di plugin ecc.

quindi suggerirei Hudson.

Al contrario, se preferisci:

  • aggiornamenti più frequenti, anche se richiedono un po ‘più frequente tweaking e sono forse leggermente più rischiosi in termini di compatibilità (più di un “ultimo e più grande” ciclo di rilascio)
  • un sistema con supporto di comunità più attivo per, ad esempio, altri sistemi di build / archivi di risorse
  • supportare le offerte del creatore originale et al. e / o non hai alcun interesse nel supporto professionale (ad esempio, sei felice finché puoi ottenere una correzione nella “ultima e più grande” della prossima settimana)
  • una miscela classica di streghe in stile OSS di un ecosistema di sviluppo

quindi suggerirei Jenkins. (e come notato da un commentatore, Jenkins ora ha anche delle versioni “LTS” che sono mantenute su un ramo più “stabile”)


Il corso conservativo sarebbe quello di scegliere Hudson ora e migrare a Jenkins se le funzionalità indispensabili non sono disponibili. Il corso dinamico sarebbe quello di scegliere Jenkins ora e migrare a Hudson se la ricerca di aggiornamenti richiede troppo tempo per giustificare.

Davanti a me .. Sono un commissario Hudson e autore del libro di Hudson, ma non sono stato coinvolto nell’intera divisione dei progetti.

In ogni caso ecco il mio consiglio:

Guarda entrambi e vedi cosa si adatta meglio alle tue esigenze.

Hudson completerà la migrazione per essere un progetto Eclipse di alto livello entro la fine dell’anno e ha ottenuto un intero gruppo di sviluppatori a tempo pieno, QA e altri che lavorano al progetto. Sta andando forte e ha un sacco di utenti e con il server CI predefinito di Eclipse continuerà a soddisfare le esigenze di molti sviluppatori Java. Guardando la roadmap e i piani per il futuro, è ansible vedere che, dopo l’integrazione di Maven 3 realizzata con la versione 2.1.0, sono in arrivo una serie di altre interessanti funzionalità.

http://www.eclipse.org/hudson

Dall’altra parte, Jenkins ha conquistato molti utenti originali di Hudson e ha una vasta comunità di utenti su più tecnologie e ha anche un gruppo di sviluppatori che ci lavorano.

In questa fase entrambi i server CI sono ottimi strumenti da utilizzare e, a seconda delle esigenze in termini di tecnologia, l’integrazione con uno o l’altro potrebbe essere migliore. Entrambi i prodotti sono disponibili come open source e puoi ottenere supporto commerciale da varie aziende per entrambi.

In ogni caso .. se non stai ancora utilizzando un server CI, inizia ora con uno di questi e vedrai enormi benefici.

Aggiornamento gennaio 2013: dopo un lungo processo di pulizia IP e ulteriori miglioramenti, Hudson 3.0 è ora disponibile come prima versione approvata dalla fondazione Eclipse.

Jenkins è il nuovo Hudson. In realtà è più come un rinominare, non un fork, dal momento che l’intera comunità di sviluppo si è trasferita a Jenkins. (Oracle rimane seduto in un angolo con la loro vecchia palla “Hudson”, ma ora è solo un progetto senza anima.)

Cf Ethereal -> WireShark

Ho due punti da aggiungere. Uno, Hudson / Jenkins è tutto sui plugin. Gli sviluppatori di plugin sono passati a Jenkins e così dovremmo noi, gli utenti. Due, non sono personalmente un grande fan dei prodotti Oracle. In realtà, li evito come la piaga. Per i soldi spesi per le licenze e l’hardware per una soluzione Oracle, puoi assumere due volte il personale tecnico e continuare a comprare birra ogni venerdì 🙂

Per coloro che hanno menzionato una riconciliazione come potenziale futuro per Hudson e Jenkins, con il fatto che Jenkins si unirà allo SPI , è improbabile che a questo punto si riconcilino.

Dal sito web Jenkins, http://jenkins-ci.org , il seguente riassume.

In breve, Jenkins CI è il principale server di integrazione continua open source. Costruito con Java, fornisce oltre 300 plugin per supportare la creazione e il test di praticamente qualsiasi progetto.

Oracle ora possiede il marchio Hudson, ma ha ottenuto la licenza con Eclipse EPL . Jenkins è sulla licenza del MIT . Sia Hudson che Jenkins sono open-source. Basato sulla combinazione di chi lavori e preferenza personale per open-source, la decisione è semplice IMHO.

Spero che questo sia stato utile.