Bamboo vs Jenkins: Quale strumento CI/CD usare?
Il Ottobre 7, 2021 da adminOggi è impossibile parlare di sviluppo software senza discutere di DevOps, e l’Integrazione Continua e la Consegna Continua sono punti importanti da considerare, in quanto le loro migliori pratiche possono portare a migliori piani di distribuzione, meno bug nei vostri rilasci e un feedback più rapido dai vostri processi.
Qual è il modo migliore per avere aggiornamenti costanti e rilasciare versioni affidabili? Quali strumenti si dovrebbero usare? Queste domande portano molti team a cercare un confronto tra Bamboo e Jenkins – dopo tutto, non è per questo che siete su questa pagina?
Daremo uno sguardo approfondito a Bamboo e Jenkins di Atlassian e definiremo alcuni dei differenziatori come strumento di integrazione continua.
Bamboo Continuous Integration
Nel 2007, Atlassian ha annunciato la prima versione di Bamboo per entrare in questa nicchia emergente del mercato. Ciò che Bamboo porta è una potente combinazione di organizzazione, flessibilità, facile interfaccia grafica e metodologie CI/CD per offrire una grande esperienza durante la creazione dei vostri piani di costruzione e distribuzione. L’obiettivo principale di Atlassian Bamboo è quello di aiutare la consegna del vostro software ad essere flessibile e forte (quasi indistruttibile) come un bambù.
Bamboo si svolge dal codice al deployment:
Qui potete vedere come organizzare le vostre build attraverso una struttura ben definita. Su Bamboo si creano piani (build o deploy), poi si impostano Stages, Jobs e Tasks – tutto molto flessibile e facile da impostare tramite l’UI.
All’interno del tuo piano, puoi avere più Stages. Secondo la documentazione di Atlassian, ogni Stage:
- “Ha un singolo lavoro per default, ma può essere usato per raggruppare più lavori,
- Esegue i suoi lavori in parallelo, su più agenti (se disponibili),
- Deve completare con successo tutti i suoi lavori prima che la fase successiva del piano possa essere elaborata,
- Può produrre artefatti che possono essere resi disponibili per essere usati da una fase successiva.”
Sotto le Fasi, avete i Jobs, che sono un gruppo di Compiti (i vostri elementi principali da eseguire). Secondo la documentazione di Atlassian, un Job:
- “Elabora una serie di uno o più task che vengono eseguiti in sequenza sullo stesso agente,
- Controlla l’ordine di esecuzione dei task,
- Raccoglie i requisiti dei singoli task nel Job, in modo che questi requisiti possano essere abbinati alle capacità dell’agente,
- Definisce gli artefatti che il build produrrà,
- Può usare solo artefatti prodotti in uno Stage precedente,
- Specifica qualsiasi etichetta con cui il risultato del build o gli artefatti del build saranno etichettati.”
Bamboo diventa più forte con la sua integrazione integrata con altri strumenti Atlassian, come Jira Software e Bitbucket Server. È possibile ottenere visibilità sulle modifiche al codice, sui risultati della compilazione e sui dettagli delle distribuzioni in tutte le piattaforme.
Per un uso intenso è possibile sfruttare gli agenti di compilazione remota, compresi gli agenti di compilazione elastica (Amazon EC2), in modo da avere compilazioni distribuite su più server, riducendo il tempo di attesa.
Le caratteristiche principali includono:
- “Jira Software e l’integrazione di Bitbucket Server per la visibilità end-to-end sull’implementazione del rilascio, la qualità e lo stato.
- Invia un flusso continuo di build agli ambienti di test e rilascia automaticamente le build ai clienti.
- Gestione degli agenti di build elastica che ti permette di scalare la capacità di build collegando i server sulla tua rete utilizzando Amazon EC2. Puoi visualizzare i requisiti di sistema per ogni build con la funzione Agent Matrix, permettendoti di assegnare le build agli agenti giusti.
- Fusione automatica tra rami Git e Mercurial.
- Solo dal nome del ramo, puoi rilevare automaticamente, costruire, testare e unire i rami per distribuire continuamente il codice ai server di produzione o di staging.
- Sono disponibili supporto e risorse per i team aziendali. “
I dettagli tecnici sulle piattaforme supportate includono:
- Bamboo funziona su Java (attualmente supporta Java 1.8)
- SOS supportati: Microsoft Windows, Linux, Solaris e MacOS / OSX
- Database supportati: Mysql, Postgres, SQL Server e Oracle
- Web Browser supportati: Firefox, Chrome, Safari, Microsoft Edge, e IE 11
- Repository sorgente: GIT, Mercurial, Subversion e Perforce
- Docker per Mac / Linux (17 o successivo)
Jenkins Continuous Integration
Primamente rilasciato nel 2004 (precedentemente chiamato Hudson), Jenkins è uno dei più popolari strumenti CI disponibili. Seguendo la stessa idea di Bamboo, affronta le metodologie CI/CD per permettere ai team di costruire, testare e distribuire software di qualità.
Jenkins è un’applicazione open source gratuita. Ha un’enorme comunità che aiuta a mantenere e migliorare l’applicazione e il suo ecosistema. Uno dei suoi vantaggi è che ha centinaia di plugin, che permettono ai clienti di modellare Jenkins per soddisfare quasi tutti i processi CI/CD desiderati.
Questo è un esempio di uno scenario che può essere realizzato con Jenkins:
Le caratteristiche principali includono:
- “Integrazione continua e consegna continua.
- Facile installazione.
- Facile configurazione.
- Centinaia di plugin
- Extensibile attraverso la sua architettura di plugin
- Può facilmente distribuire il lavoro su più macchine, aiutando a guidare la costruzione, i test e le distribuzioni su più piattaforme.”
Jenkins ha anche caratteristiche integrate come lo scripting direttamente sull’interfaccia utente per creare/aggiornare i compiti/pipeline. È disponibile una versione cloud.
Ecco un esempio di un Jenkinsfile
utilizzando la sintassi di Declarative Pipeline (le definizioni si trovano al link precedente).
I dettagli tecnici sulle piattaforme supportate includono:
- OS supportati: Microsoft Windows, Linux, Solaris e MacOS
- Web Browser supportati: Firefox, Chrome, Safari, Microsoft IE 11
- Repository sorgente: CVS e Subversion, supporto integrato per Git, e si integra anche con un gran numero di altri sistemi di controllo della versione tramite plugin.
- Può essere installato come contenitore Docker
Bamboo vs. Jenkins: Il confronto
Entrambe le applicazioni sono molto potenti e offrono una serie di caratteristiche:
BAMBOO |
JENKINS |
|
---|---|---|
Built-nei flussi di lavoro di ramificazione Git |
supportato |
x |
Built-in progetti di distribuzione |
supportato |
x |
Integrazione di Jira Software |
supportato |
x |
Built-in integrazione con Bitbucket Server |
supportato |
x |
API REST |
supportato |
supportato |
Test Automation |
supportato |
via plugins |
Permessi di grado Enterprise-Grade permissions |
supportato |
via plugin |
G2Crowd ha creato un confronto basato sulle recensioni degli utenti per i seguenti punti:
BAMBOO |
JENKINS |
|
---|---|---|
Soddisfa i requisiti | 8.8 | 8.9 |
Facilità d’uso | 8.5 | 7.8 |
Facilità di installazione | 7.5 | 7.8 |
Facilità di amministrazione | 8.2 | 7.8 |
Qualità del supporto | 8.2 | 7.6 |
Come entrambi gli strumenti mirano allo stesso obiettivo ed entrambi forniscono un servizio di alta qualità, come puoi sapere quale strumento è il migliore per te? Prendete in considerazione alcuni punti:
- Jenkins è uno strumento open-source, mentre Bamboo è uno strumento commerciale. Jenkins è un progetto supportato dalla sua comunità globale, mentre Bamboo ha il suo team dedicato per il suo sviluppo.
- Bamboo ha un approccio più user-friendly di Jenkins – come di solito, le applicazioni open-source sono più interessate ad altre caratteristiche.
- Jenkins ha un enorme numero di plugin per consentire ai clienti di raggiungere i loro obiettivi, mentre Bamboo viene fornito con la maggior parte delle caratteristiche integrate e conta con centinaia di plugin disponibili su Atlassian Marketplace.
- Bamboo si integra perfettamente con la suite Atlassian, offrendo una grande esperienza se si sta già utilizzando Jira Software e Bitbucket.
- Jenkins e Bamboo hanno entrambi una grande documentazione online, offrendo ai clienti la possibilità di ricercare e trovare una soluzione prima di raggiungere il supporto per l’aiuto.
- Bamboo ha un grande supporto professionale disponibile per i clienti con licenza, oltre alla documentazione online e all’aiuto della comunità Atlassian. Jenkins ha un supporto comunitario e puoi ottenere un supporto professionale da Cloudbees.
- Bamboo è uno strumento a pagamento e il prezzo dipende dal tuo utilizzo, in base a quanti agenti remoti avrai bisogno. Jenkins è uno strumento gratuito.
È una decisione piuttosto difficile da prendere, ma possiamo aiutarvi con questa decisione. Come Atlassian Platinum Solution Partner, possiamo mostrarvi tutti i vantaggi dell’uso di Bamboo e come può migliorare il vostro team di sviluppo per ottenere il massimo dall’integrazione continua con gli strumenti Atlassian. Che si tratti di un piccolo team di sviluppo o di un’operazione gigantesca con centinaia di build in coda, siamo sicuri che Bamboo può aiutarvi a consegnare il software più velocemente e con maggiore qualità.
Vuoi provare Bamboo? Mettiti in contatto con il team di Valiantys che può assisterti con le licenze e l’implementazione.
Vuoi provare Bamboo?
Lascia un commento