Jenkins è un automation server nato per supportare la costruzione ed il deploy automatizzato degli applicativi (per un approfondimento puoi leggere il precedente articolo Come automatizzare la creazione di immagini applicative con Jenkins, Packer e Kubernetes“).
Questo però non vuol dire che Jenkins sia semplice da utilizzare e semplice da implementare in una pipeline di Continuous Integration(CI) ed in questo articolo vogliamo esplorare una possibile alternativa.
Come funziona Jenkins: un esempio con Docker e gli svantaggi
Jenkins è una piattaforma straordinaria e per questo è molto utilizzata a livello internazionale. Un esempio classico di case study è quello dell’automazione del processo di building e pushing delle immagine Docker. In questo caso (semplificato per scopi discorsivi) spesso si affrontano 3 step:
- Innanzitutto installare Jenkins, normalmente un’applicazione standalone con Jetty oppure un’immagine Docker in un container;
- Integrare Jenkins con il tuo repository, per es. Github, e configurarlo per fargli compiere le opportune azioni quando avviene una build;
- Installare un idoneo plugin per Docker e configurarlo correttamente per poter permettere a Jenkins di effettuare i deploy ed il push delle immagini nei vari ambienti, per es. in staging;
Quanto sopra delineato può sembrare semplice ma presenta alcuni svantaggi che vanno presi in considerazione quando vuoi implementare i processi di Continuous Integration e Continuous Delivery (CI/CD), tra questi:
- Jenkins necessita di specifiche competenze per poter essere gestito e configurato correttamente;
- Il punto precedente si può tradurre in un collo di bottiglia se l’esperto a cui ti affidi è solo uno e magari fa anche lo sviluppatore del progetto;
- I due punti precedenti comportano che la gestione di Jenkins inizia a soffrire possibili problemi di sicurezza perchè non c’è il tempo per testare e provare i plugin ed essere sempre aggiornati sui relativi bug di sicurezza che emergono nel tempo;
- Hai bisogno di risorse computazionali aggiuntive e di architetture più complesse del previsto per implementare alta affidabilità e disponibilità per Jenkins.
Contattaci subito e senza impegno per assistenza e supporto su Jenkins.
L’alternativa a Jenkins: Github Actions
Uno strumento ancora poco noto è Github Actions che integra i processi di CI/CD in maniera Cloud based senza che tu debba installare, configurare, mantenere, aggiornare o patchare assolutamente nulla. Come puoi ben immaginare il processo di CI/CD si semplifica enormemente e grazie al sistema di “encrypted secret” puoi ulteriormente integrare Github con altri repository o sistemi terzi.
Infine, sfruttando il Github Marketplace, puoi di fatto estendere le funzionalità di Github stesso (anche con tuoi plugin) per poterlo adattare completamente alle tue esigenze di business.
Github Actions rappresenta una valida alternativa a Jenkins e ciò sta ad indicare che la scelta su come integrare ed implementare i processi di CI/CD nel tuo sviluppo applicativo va fatta ponderando tutte le possibili variabili. Contattaci subito e senza impegno per una consulenza sull’implementazione dei processi di CI/CD.
Glue Labs, Jenkins, Git ed il CI/CD
Grazie alle competenze specialistiche maturate in tantissimi settori e con numerosi Clienti ed un solido gruppo aziendale, ti forniamo formazione avanzata su strumenti come Jenkins e Git ed assistenza e supporto per qualsiasi progetto di integrazione dei processi di CI/CD. Contattaci subito e senza impegno per maggiori informazioni.