Ricerca nel sito web

Che cos'è una pipeline CI/CD?


Il modo in cui definisci una pipeline di integrazione continua/distribuzione continua dipende dai requisiti della tua organizzazione.

Una pipeline di integrazione continua/distribuzione continua (CI/CD) è un punto fermo per ogni iniziativa DevOps. La pipeline CI/CD abbatte i silos tradizionali e consente ai team di sviluppo e operativi di collaborare durante l'intero ciclo di vita dello sviluppo del software.

Meglio ancora, il passaggio a DevOps e a una pipeline CI/CD può aiutare la tua organizzazione a fornire software in modo più sicuro e a una velocità più elevata.

Abbattere la pipeline CI/CD

Esistono molte definizioni di pipeline CI/CD, quindi consiglio sempre alle organizzazioni di definire la propria versione di pipeline CI/CD e altri concetti DevOps anziché utilizzare quella di qualcun altro. Gli strumenti CI/CD open source ti offrono la libertà e le opzioni per costruire una pipeline CI/CD che soddisfi i requisiti della tua organizzazione.

Le fasi che formano una pipeline CI/CD sono sottoinsiemi distinti di attività raggruppate in fasi della pipeline. Le fasi tipiche della pipeline includono:

  • Crea: gli sviluppatori compilano il codice dell'applicazione. 
  • Test: il team di controllo qualità (QA) testa il codice dell'applicazione utilizzando strumenti e strategie di test automatizzati. 
  • Rilascio: il team di sviluppo consegna il codice dell'applicazione al repository del codice.
  • Distribuzione: il team DevOps mette in produzione il codice dell'applicazione. 
  • Sicurezza e conformità: il team di QA convalida una build in base ai requisiti del progetto. Questa è la fase in cui le organizzazioni implementano strumenti di scansione dei contenitori che controllano la qualità delle immagini rispetto alle vulnerabilità e alle esposizioni comuni (CVE). 

Si tratta di fasi standard per una pipeline CI/CD, tuttavia alcune organizzazioni adattano il modello di pipeline CI/CD per adattarlo alle proprie esigenze. Ad esempio, un'organizzazione che crea applicazioni per il mercato sanitario, con i suoi rigorosi standard di conformità, può distribuire i controlli di test, convalida e conformità in tutta la propria catena di strumenti.

Altri esempi potrebbero essere un'organizzazione che dipende da una complessa catena di fornitura di software con software open source (OSS). I componenti commerciali possono istituire un cancello in cui i membri del team di sviluppo generano una distinta base software (SBOM) per i pacchetti OSS oppure il fornitore di software commerciale esterno deve fornire una SBOM come parte dei risultati del contratto.

Barriere alle condutture CI/CD

L'implementazione di una pipeline CI/CD modifica i processi e la cultura di un team. Sebbene molti sviluppatori siano ricettivi all'automazione di alcune attività e test, le persone possono rappresentare un ostacolo all'adozione di CI/CD.

Passare da un processo a cascata a CI/CD può scuotere la struttura di potere fondamentale e implicita in alcune organizzazioni. Poiché una pipeline CI/CD aumenta la velocità di distribuzione del software, i "guardiani" del vecchio processo manuale potrebbero sentirsi minacciati da questo cambiamento.

Opportunità di integrazione

Le radici open source degli strumenti che compongono una toolchain CI/CD creano opportunità per alcune interessanti integrazioni man mano che raggiungi maggiori livelli di maturità DevOps nella tua cultura, processi e strumenti.

La società di analisi Forrester ha previsto nel 2020 che l’apprendimento just-in-time entrerà a far parte della pipeline CI/CD. Ha senso se ci pensi. Ciò ha ancora più senso nell’attuale era del lavoro a distanza e anche per l’onboarding da remoto di nuovi dipendenti. Ad esempio, un'organizzazione potrebbe integrare nella propria pipeline un wiki di documentazione con la documentazione dei processi interni.

Un'organizzazione più ambiziosa può integrare un sistema di gestione dell'apprendimento (LMS) come Moodle nella sua pipeline CI/CD. Potrebbe utilizzare LMS per pubblicare brevi video sulle nuove funzionalità della toolchain DevOps che gli sviluppatori devono apprendere durante l'onboarding o quando gli strumenti vengono aggiornati lungo la pipeline.

Alcune organizzazioni stanno integrando la chat di gruppo e altri strumenti di collaborazione direttamente nelle proprie pipeline CI/CD. La piattaforma di chat fornisce avvisi e consente la collaborazione e la comunicazione tra i team. L'integrazione di Mattermost, Rocket.Chat o di un'altra piattaforma di chat aziendale nella pipeline CI/CD richiede pianificazione e analisi anticipate per garantire che gli utenti della pipeline non siano sommersi dagli avvisi.

Un'altra opportunità di integrazione da esplorare è la creazione di analisi e report avanzati nella pipeline CI/CD. Questo ti aiuta a sfruttare i dati che passano attraverso la tua pipeline.

Pensieri finali

La pipeline CI/CD è fondamentale per DevOps. Inoltre, l'open source lo rende adattabile e flessibile ai nuovi requisiti derivanti dalle modifiche operative implementate durante il percorso DevOps.

Spero di vedere una risposta open source alla tendenza della piattaforma DevOps unificata, in cui le organizzazioni cercano una soluzione CI/CD end-to-end. Gli ingredienti di una soluzione del genere sono là fuori. Dopotutto, GitLab e GitHub fanno risalire le loro piattaforme alle radici open source.

Infine, non dimenticare la formazione e la sensibilizzazione alla base di ogni toolchain CI/CD di successo. Documentare le toolchain e i processi di accompagnamento migliorerà l'onboarding degli sviluppatori e la formazione continua del team DevOps.

In che modo tu e la tua organizzazione definite la vostra toolchain CI/CD? Per favore condividi il tuo feedback nei commenti.

Articoli correlati: