Cos'è CI?
L'integrazione continua è un metodo di sviluppo software in cui i membri del team possono integrare il proprio lavoro almeno una volta al giorno. In questo metodo, ogni integrazione viene controllata da una build automatizzata per cercare l'errore. Il concetto di CI è stato introdotto per la prima volta più di due decenni fa per evitare "l'inferno dell'integrazione", che si verifica quando l'integrazione viene rimandata alla fine di un progetto.
In questo tutorial imparerai
- Cos'è CI?
- Cos'è Travis CI?
- Cos'è Jenkins?
- Cosa fa Travis?
- Cosa ha fatto Jenkin?
- Caratteristiche di Travis CI:
- Caratteristiche di Jenkin:
- Travis contro Jenkins
- Indice di popolarità
- Che è migliore?
Come funziona CI?
- Gli sviluppatori scrivono il codice e inviano le modifiche al repository condiviso
- Successivamente, il server CI monitora il repository e valuta tutte le modifiche
- CI costruisce il sistema e conduce l'integrazione e gli unit test
- Il server rilascia artefatti distribuibili
- Il server di integrazione continua assegna un tag di build alla versione e al codice di costruzione
- Quindi il server CI segnala al team la riuscita della build. Se i test falliscono, il server avvisa dell'evento al team di sviluppo. Il team risolverà i problemi il più velocemente possibile.
DIFFERENZA CHIAVE
- Travis CI è uno strumento CI commerciale mentre Jenkins è uno strumento open source.
- Travis CI impiega molto meno tempo per iniziare mentre Jenkins ha bisogno di una configurazione elaborata.
- Travis CI offre meno opzioni di personalizzazione mentre Jenkins offre vaste opzioni di personalizzazione.
- Travis CI ha un file di configurazione YAML mentre Jenkins fornisce all'utente un'opzione di configurazione completa.
Cos'è Travis CI?
Travis CI è stato il primo strumento CI as a Service. Ha introdotto un nuovo approccio alla creazione di codice nel cloud. Questo strumento CI consente all'utente di registrarsi, collegare il proprio repository, creare e testare le proprie app.
Lo strumento Travis CI può facilmente integrarsi con i comuni repository cloud come GitHub e Bitbucket. Offre molte opzioni CI automatizzate che eliminano la necessità di un server dedicato poiché il server Travis CI è ospitato nel cloud. Ciò consente di eseguire test in ambienti diversi, su varie macchine, in esecuzione su diversi sistemi operativi.
Travis CI è gratuito per progetti open source. Per i progetti commerciali, è necessario acquistare un piano aziendale.
Cos'è Jenkins?
Jenkins è uno strumento di integrazione continua pluripremiato che monitora le esecuzioni dei cicli di distribuzione. È iniziato come progetto collaterale del gruppo di ingegneri del software di Sun. Successivamente è stato ampliato come uno dei popolari strumenti CI open source che aiutano i team di sviluppo software ad automatizzare le loro distribuzioni.
Jenkins è uno strumento basato su Java, il che significa che è necessario solo Java Runtime Environment per utilizzarlo. Quindi, Jenkins può essere installato su qualsiasi sistema operativo in cui viene eseguito Java.
In questo strumento, gli sviluppatori possono anche specificare le condizioni per le build personalizzate. Jenkins supporta un enorme archivio di plugin. Ciò consente agli sviluppatori di modificare l'aspetto e il funzionamento di Jenkin.
Inoltre, la suite di plug-in Jenkins Pipeline viene fornita con strumenti speciali che consentono agli sviluppatori di modellare pipeline di consegna facili o complesse utilizzando il metodo DSL (linea di iscrizione digitale).
Cosa fa Travis?
Travis CI offre i seguenti vantaggi:
- Puoi monitorare i progetti GitHub
- Esegue test e genera risultati rapidamente. È possibile l'esecuzione di test paralleli.
- Crea artefatti e controlla la qualità del codice
- Facile distribuzione su servizi cloud
- Può identificare piccole e grandi modifiche al codice.
- Gli sviluppatori possono utilizzare Travis CI per guardare i test quando sono in esecuzione.
- Lo strumento si integra con Slack, HipChat, Email, ecc.
Cosa fa Jenkin?
Jenkins ti consente di automatizzare le tue attività di compilazione, test e distribuzione. Lo strumento fornisce supporto per diversi sistemi operativi come Windows, Mac OSX e Linux.
Inoltre, Jenkins ti dà la possibilità di creare e testare rapidamente il tuo codice per ottenere un feedback tempestivo sul fatto che sia pronto per la produzione o meno. Nella maggior parte dei casi, Jenkin richiederà poche modifiche in base ai requisiti personalizzati del tuo team.
Caratteristiche di Travis CI:
- Integrazione automatica con GitHub
- Accesso al repository per creare richieste pull
- Supporto per 21 linguaggi come Android, C, C #, C ++, Java, JavaScript (con Node.js), Perl, PHP, Python, R, Ruby, ecc.
- Strumenti di test e build preinstallati
- Servizi disponibili: database, code di messaggi, ecc.
- Distribuzione su più servizi cloud
- Crittografa file o variabili di ambiente sicuro
- Macchine virtuali ricreate dopo ogni build
- Client CLI e API per lo scripting
- Viene fornito con hosting basato su cloud gratuito che non richiede manutenzione o amministrazione.
Caratteristiche di Jenkin:
- Facile da installare, aggiornare e configurare
- Build distribuite
- Monitoraggio dei lavori esterni
- Più di 600 plugin per personalizzare il tuo ambiente Jenkins
- Oltre 1000+ repository pubblici su GitHub, 500+ collaboratori, forte attività di commit
- Supporto per vari metodi di autenticazione, sistemi di controllo della versione, notifiche, ecc.
- Jenkins fornisce l'API di accesso remoto e le sue funzionalità.
- Fornisce un potente strumento CI / CD per grandi progetti
- Supporta vari modelli di lavoro come Freestyle, Pipeline, ecc.,
- Consente agli sviluppatori di aggiungere le proprie estensioni
- Compatibile con Docker, Libvirt, Kubernetes e molti altri programmi
Travis contro Jenkins
Parametro | Jenkin | Travis |
---|---|---|
Costo | Jenkins è gratuito. Ma il team di sviluppo deve eseguire e mantenere il proprio server dedicato. Questa potrebbe essere considerata una spesa extra. | Le suite enterprise di Travis CI partono da $ 129 al mese. Aumento dei costi in base al livello di supporto richiesto. |
Tempo di preparazione | Jenkins ha bisogno di una configurazione elaborata. Quindi avrai un tempo di attesa molto lungo per l'installazione completa. | Ci vuole molto meno tempo per iniziare. Crea un file di configurazione e inizia l'integrazione. |
Prestazione | Se stai cercando uno strumento CI con opzioni di personalizzazione illimitate, Jenkins è la scelta migliore per te. | Travis CI è la scelta migliore se stai lavorando in un progetto open source. |
Tipo di strumento | È un open-source gratuito per utilizzare lo strumento. | È uno strumento CI commerciale |
Utilizzo | Facile da usare | Flessibile da usare |
Github | Buono per Github | Eccellente per Github |
Supporto | Ampio supporto dalla comunità. | Supporto limitato per la comunità. |
Professionisti |
|
|
Contro |
|
|
Piani di utilizzo | Gratuito | Gratuito per progetti open source. Tuttavia, pagato per Enterprise. |
Macchina server | Basato su server | Basato su cloud |
Opzioni di personalizzazione | Di più | Di meno |
Configurazione | Completamente personalizzabile | YAML |
Controllo sul sistema | Pieno | Molto meno |
Indice di popolarità
Il numero di domande etichettate Jenkins e Travis in Stack Overflow.
Che è migliore?
Quindi, con la discussione di cui sopra, possiamo ottenere che Travis e Jenkins offrono entrambi funzioni meravigliose. Tuttavia, i piccoli progetti open source sono più adatti per Travis CI in quanto è facile da eseguire e veloce da configurare. D'altra parte, la grande impresa è più adatta a Jenkins in quanto offre licenze gratuite per un progetto privato e una vasta gamma di funzionalità personalizzabili. Quindi, possiamo dire che entrambi questi strumenti di integrazione continua sono buoni a modo loro.