CI/CD: l’automazione nelle fasi di sviluppo operativo

 

 

Per CI/CD (Continuous Integration/Continuous Delivery) si intende un approccio allo sviluppo e alla distribuzione di software volto a creare continuità tra la pianificazione di funzionalità e bugfix, la loro implementazione e la distribuzione di nuove release.

Cos’è una CI/CD pipeline

Il flusso CI/CD si basa sulla necessità di implementare e distribuire in modo programmatico e agile nuove features su un progetto software. Questo si realizza, nella pratica, nella stesura di script che automatizzano le fasi tipiche del rilascio della nuova release di un’applicazione.

Tra queste fasi ne identifichiamo tre fondamentali e comuni a quasi tutte le pipeline CI/CD:

  • Build: in questa fase l’applicazione viene pacchettizzata, insieme agli ultimi cambiamenti, e – nella maggior parte dei casi – caricata su un registry privato affinché possano svolgersi i successivi stage della pipeline.
  • Test: in questa fase il “pacchetto” creato nella fase di build viene installato in un ambiente predisposto per l’esecuzione di test, attraverso i quali ci si assicura che le nuove modifiche apportate all’applicazione non abbiano causato regressioni o nuovi bug.
  • Deploy: una volta superata la suite di test, l’applicazione può essere rilasciata sulle macchine di produzione. Nello stage di deploy ci si occupa di distribuire l’applicazione nella sua nuova versione sulle piattaforme volte ad ospitarla: macchine virtuali, orchestratori di container, hosting statici, ecc.

Il flusso CI/CD ha un grosso impatto non solo sulle procedure di rilascio di un progetto, ma anche sul suo sviluppo. Le pipeline, infatti, sono oggi integrate in modo maturo nella maggior parte delle piattaforme di version control (GitLab, GitHub, ecc) e permettono di automatizzare e standardizzare i controlli sul codice che devono essere effettuati a fronte di ogni contribuzione.

L’importanza di una continuous integration/continuous delivery

Per comprendere l’importanza e il valore dell’approccio CI/CD basti pensare ad un flusso operativo che non la contempli: senza una pipeline a disposizione, a fronte di ogni cambiamento nel codice di un’applicazione sarebbe necessario che una persona preposta si occupi di eseguire manualmente i test, preparare l’applicazione alla distribuzione e infine distribuirla in ambiente di produzione.

Questi passaggi, specie su progetti di larga scala, possono essere estremamente onerosi, proni all’errore e stressanti. Automatizzare il processo permette allo stesso tempo di assumere pieno controllo del rilascio del proprio progetto e di delegare questi task.

Il costo è soltanto costituito dal tempo necessario alla progettazione e al mantenimento della pipeline, che nella maggior parte dei casi risulta molto meno dispendioso rispetto alla sua controparte manuale.

Valutazione su Emagister per ITS ICT Piemonte
ECCELLENTE
Valutazione 5 stelle su Emagister per ITS ICT Piemonte
5,0/5
Emagister:
Dai la tua opinione su Fondazione ITS per le Tecnologie dell’informazione e della Comunicazione per il Piemonte
Badge Cumlaude su Emagister per ITS ICT Piemonte
Badge Cumlaude 2019 su Emagister per ITS ICT Piemonte
Fondazione ITS per le Tecnologie dell’informazione e della Comunicazione per il Piemonte
Linkedin Higher Education
Segui su Linkedin Fondazione ITS per le Tecnologie dell’informazione e della Comunicazione per il Piemonte
ITS ICT Piemonte