Panoramica dei migliori strumenti di Continuous Integration continua (CI)
Grazie all’integrazione continua, in inglese Continuous Integration e abbreviata in CI, gli sviluppatori di software possono aggirare il problema della fase di integrazione finale, che spesso risulta problematica e dispendiosa in termini di tempo. Invece di unire tutti gli elementi singoli alla fine, con la CI le modifiche vengono integrate direttamente nel codice sorgente. Affinché la CI rappresenti un vero vantaggio e non si trasformi in ostacolo, è fondamentale adottare un approccio disciplinato e processi efficienti. Software sviluppati appositamente possono facilitare l'intero processo.
Se non siete ancora convinti che l’integrazione continua sia la soluzione migliore per voi e il vostro team, potete trovare tutte le informazioni principali nonché un confronto tra vantaggi e svantaggi nel nostro articolo approfondito sulla Continuous Integration.
Indipendenti o in combinazione con altre applicazioni diffuse, gli strumenti per la CI offrono supporto nella creazione di repository, nel testing e building nonché nel controllo delle versioni e ovviamente nella stessa integrazione continua.
8 strumenti popolari di CI
La scelta di strumenti di Continuous Integration su Internet è molto ampia. L'obiettivo di ciascuno di questi strumenti è supportare gli sviluppatori nell'adozione dell'integrazione continua, anche se possono cambiare la modalità e le caratteristiche specifiche. Gli strumenti di CI, tuttavia, non si distinguono unicamente per le funzionalità che offrono, ma presentano notevoli differenze anche in termini di prezzo e licenza. Anche se molti dei software sono open source e dunque gratuiti, alcuni produttori offrono strumenti a pagamento. Di seguito vi forniamo una panoramica dei programmi più apprezzati e vi presentiamo le loro principali caratteristiche e funzionalità.
Jenkins
Il software Jenkins è probabilmente uno degli strumenti di Continuous Integration più conosciuti sul mercato. Questo software è nato nel 2005 (allora con il nome Hudson) e continua a essere sviluppato. Il programma scritto in Java offre molteplici funzioni e interfacce che non possono essere utilizzate soltanto per la CI, ma anche per la Continuous Delivery e il Continuous Deployment.
- programmato in Java
- funziona in un EJB Container
- più di 1000 plug-in
- supporta anche la Continuous Delivery e il Continuous Deployment
- può essere combinato con molteplici soluzioni di gestione di versioni
- controllo tramite GUI (basato su web), REST API o comandi in riga di comando
- possibilità di cloud hosting
- gratuito
- open source (licenza MIT)
Travis CI
Chi lavora con GitHub adorerà sicuramente Travis CI, dato che è perfettamente compatibile con la popolare soluzione per la gestione delle versioni. Il software può essere facilmente configurato tramite un file YAML che va salvato nella root del progetto di sviluppo. GitHub informa Travis CI su ogni modifica attuata sul repository e garantisce il costante aggiornamento del progetto.
- programmato in Ruby
- indipendente dalle piattaforme
- compatibile con GitHub
- configurazione mediante file YAML
- gratuito per progetti open source
- costo per progetti commerciali compreso tra 69 $ e 489 $ al mese
- open source (licenza MIT)
Bamboo
L'azienda Atlassian, che adesso offre anche il servizio di hosting di file Bitbucket, ha lanciato lo strumento CI Bamboo nel 2007. Bamboo supporta gli sviluppatori non solo nell'integrazione, ma offre anche funzioni per il Deployment e la gestione delle release. Questo strumento lavora mediante una piattaforma web molto semplice.
- programmato in Java
- indipendente dalle piattaforme
- integrazione semplice di altri prodotti Atlassian
- ampia scelta di add-on
- possibilità di eseguire più test contemporaneamente
- comunicazione tramite piattaforma web e REST API
- gratuito per progetti open source, organizzazioni no profit e classi scolastiche
- altrimenti costo una tantum tra 10 $ e 110.000 $, a seconda del numero di server utilizzati
GitLab CI
GitLab CI è parte integrante della soluzione di gestione delle versioni GitLab. Oltre all'integrazione continua, GitLab supporta anche il Continuous Deployment e la Continuous Delivery. Come nel caso di Travis CI, anche per GitLab CI la configurazione avviene mediante un file YAML. Anche per altri aspetti, l'utilizzo del software è in confronto molto semplice.
- parte integrante di GitLab
- programmato in Ruby e Go
- configurazione mediante file YAML
- supporta anche la Continuous Delivery e il Continuous Deployment
- Open Core
- possibilità di self hosting e cloud hosting
- la versione gratuita dispone solo di alcune funzionalità
- costo per altre versioni compreso tra 4 $ e 99 $ al mese
CircleCI
Lo strumento di integrazione continua CircleCI è compatibile sia con GitHub e Bitbucket. Per il testing vengono utilizzati container o una macchina virtuale. CircleCI punta soprattutto sulla semplicità e uniformità dei processi di sviluppo. Per questo offre la possibilità di mettere automaticamente a disposizione build corretti per altri ambienti.
- configurazione mediante file YAML
- supporta anche il Continuous Deployment
- possibilità di self hosting e cloud hosting
- compatibile con container Docker, Linux VM e MacOS VM
- gratuito per container
- altrimenti a un costo compreso tra 50 $ e 3150 $ al mese
CruiseControl
Lo strumento CruiseControl è una delle applicazioni per l'integrazione continua più datate. Infatti è stato lanciato sul mercato già nel 2001 e il suo sviluppo non si è mai interrotto, anche grazie a Martin Fowler, un pioniere nel settore della Continuous Integration. Oltre a una dashboard molto chiara, gli sviluppatori possono sfruttare numerosi plug-in per facilitare il loro lavoro.
- programmato in Java
- indipendente dalle piattaforme
- dashboard basata sul web
- versioni per Ruby (CruiseControl.rb) e .NET (CruiseControl.NET)
- open source (licenza BSD)
- gratuito
Codeship
Lo strumento di CI Codeship appartiene ora a CloudBee, come Jenkins. Il programma è disponibile in due versioni: una versione base, caratterizzata da un'interfaccia web molto intuitiva, e una versione professionale che viene configurata mediante file nel repository. Chi lavora con container Docker deve scegliere la versione professionale.
- interfaccia web nella versione base
- file di configurazione nel repository nella versione professionale
- supporto di Docker nella versione professionale
- gratuito per 100 build al mese con una pipeline di test
- costo compreso tra 75 $ e 1.500 $ al mese
TeamCity
Il software TeamCity è particolarmente interessante per i suoi gated check-in, che consentono a TeamCity di testare le modifiche del codice prima ancora che vengano integrate nella mainline. Solo quando il codice sorgente sarà privo di difetti, sarà reso disponibile anche al resto del team. TeamCity esegue i test autonomamente in secondo piano in modo da non interrompere il lavoro dello sviluppatore.
- programmato in Java
- indipendente dalle piattaforme
- Gated check-in
- gratuito per 100 build con 3 Build Agent
- costo una tantum, compreso tra 299 € e 21.999 €
- 50% di sconto per start-up e gratuito per progetti open source
Tabella riassuntiva: panoramica degli strumenti di Continuous Integration
Tutti gli strumenti di CI hanno vantaggi e svantaggi diversi. Grazie alla seguente tabella riassuntiva potrete capire immediatamente quali programmi fanno al caso vostro. Potrete, ad esempio, vedere subito se la soluzione supporta anche la Continuous Delivery o se include il cloud hosting.
Jenkins | MIT | - | Molti plug-in | |||
Travis CI | MIT | 69–489 $ al mese | Collegamento diretto a GitHub | |||
Bamboo | Proprietario | 10–110.000 $ una tantum | ||||
GitLab CI | MIT/EE | 4–99 $ al mese | Collegamento diretto ad altri prodotti Atlassian | |||
Circle CI | Proprietario | 50–3.150 $ al mese | Facile da usare | |||
CruiseControl | BSD | - | Completamente gratuito | |||
Codeship | Proprietario | 75–1.500 $ al mese | Versione Pro e Base | |||
TeamCity | Proprietario | 299€ –21.999 una tantum | Gated check-in |