Continuous Delivery: cos'è la seconda metà del binomio CI/CD

La Continuous Delivery segue la Continuous Integration e fa in modo che le funzioni di test e implementazione delle applicazioni siano eseguite in maniera certa e standardizzata

Autore: Redazione ImpresaCity

Lo sviluppo software con modifiche frequenti alle applicazioni tipico della Continuous Integration (CI) servirebbe in sé a poco, se non fosse immediatamente seguito da un approccio altrettanto iterativo alla implementazione del nuovo codice. Si tratta della cosiddetta Continuous Delivery (CD), talmente connessa alla CI da fare in effetti parte di un binomio CI/CD oggi inscindibile.

Se ragioniamo in ottica DevOps, la Continuous Delivery è la più legata alla parte Ops e può essere considerata come il ponte tra lo sviluppo e le operations. Entra infatti in azione quando un insieme di modifiche al codice è stato completato ed accettato da tutto il team di sviluppo, ed è quindi il momento di implementarle negli ambienti di produzione.

Come per la CI, anche nel caso della Continuous Delivery uno dei vantaggi principali dell'approccio "continuo" sta nell'automazione delle procedure, in modo da ridurre al minimo la possibilità di errori o cattive configurazioni. La delivery delle applicazioni o dei servizi modificati si attiva automaticamente a seconda degli eventi che si è deciso di considerare come scatenanti, di solito i commit del codice in ambienti come GitHub o il lasso di tempo trascorso dall'ultimo aggiornamento in produzione.


Continuous Delivery vuol dire anche test

È importante considerare che nella Continuous Delivery rientra anche la parte principale delle attività di test automatizzato sul buon funzionamento e sulle prestazioni delle applicazioni e dei servizi, modificati nella precedente Continuous Integration. La CI comprende sì una sua parte di testing, ma questa viene demandata ai singoli sviluppatori e tocca quindi in modo separato le varie modifiche che ciascuno apporta.

Le attività di test che rientrano nella Continuous Delivery coprono invece il funzionamento di una applicazione o di un servizio nel suo complesso, in particolare per quanto riguarda gli aspetti di sicurezza e anche - elemento essenziale negli ambienti a microservizi - il buon funzionamento del dialogo via API.

Un elemento essenziale nella parte di test è che questa deve essere il più possibile standardizzata, oltre che automatizzata. Chi si occupa di assicurazione qualità per il software deve poter definire quali tipi di test devono essere eseguiti per quali tipi di applicazioni/servizi e, soprattutto, quali di questi test devono essere necessariamente superati per poter considerare funzionale una nuova versione del codice.

I passi della Continuous Delivery

Operativamente la Continuous Delivery è affidata a piattaforme estese che coprono anche la parte di CI, come in primo luogo Jenkins. Per la parte di CD questi tool seguono una sequenza di passi automatizzati e standardizzati. Si possono adottare diverse best practice ma non esiste "la" pipeline di Continuous Delivery. Ogni azienda può definire la sua (o le sue), mettendo insieme le esigenze dei team di sviluppo e di quelli di operations.


In linea di massima, un tool di Continuous Delivery esegue almeno i seguenti passi.
- Attiva le risorse IT richieste dalla implementazione della nuova versione di una applicazione (o servizio).
- Configura queste risorse (e riconfigura quelle eventualmente già attive) in funzione delle esigenze dell'applicazione stessa.
- Si assicura di poter ripristinare i sistemi a una configurazione stabile se la nuova applicazione non dovesse funzionare correttamente.
- Implementa concretamente i nuovi componenti applicativi.
- Riavvia i moduli e i servizi che hanno bisogno di un "refresh" per adattarsi alla nuova configurazione dell'infrastruttura IT.
- Esegue i test automatizzati previsti.
- Se l'applicazione fallisce questi test, ripristina i sistemi a una configurazione stabile.
- Permette agli altri sistemi e allo staff IT di osservare tutto quello che è successo.

Come accennato, è importante che la pipeline di Continuous Delivery venga standardizzata in accordo tra team di sviluppo e team operations, perché questa standardizzazione delle procedure è una garanzia per entrambi. Gli sviluppatori sanno di poter modificare frequentemente le applicazioni senza problemi, mentre le operations sanno che sono in atto procedure automatiche che garantiscono la stabilità dei sistemi.

Dato che in generale velocità e stabilità non vanno d'accordo quando si tratta di IT, il vantaggio di una piattaforma di CI/CD è evidente. Questo non vuol dire eliminare del tutto gli attriti tra sviluppo e operations: serve comunque che le due parti arrivino a un accordo non sempre semplice su tutto il flusso Continuous Integration / Continuous Delivery. Una volta raggiunto questo accordo, però, standardizzazione e automazione garantiscono che questo sia rispettato sempre in maniera coerente.

Visualizza la versione completa sul sito

Informativa
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, consulta la cookie policy. Chiudendo questo banner, acconsenti all’uso dei cookie.