Condividi tramite


Che cos'è il recapito continuo?

La distribuzione continua di valore è diventata un requisito obbligatorio per le organizzazioni. Per offrire valore agli utenti finali, è necessario rilasciare continuamente e senza errori.

Il Continuous Delivery (CD) è il processo di automazione della build, del test, della configurazione e del deployment dall'ambiente di build a quello di produzione. Una pipeline di versione può creare più ambienti di test o di gestione temporanea per automatizzare la creazione dell'infrastruttura e distribuire nuove compilazioni. Gli ambienti successivi supportano attività di integrazione, carico e test di accettazione dell'utente che si estendono progressivamente.

Illustrazione del modo in cui il recapito continuo automatizza il flusso in produzione.

Prima del CD, i cicli di rilascio del software erano un collo di bottiglia per i team operativi e delle applicazioni. Questi team spesso ricorrevano a passaggi manuali che causavano problemi durante i cicli di distribuzione. I processi manuali hanno portato a versioni inaffidabili che hanno generato ritardi ed errori.

La Consegna Continua (CD) è una pratica snella, con l'obiettivo di mantenere la produzione aggiornata utilizzando il percorso più rapido dalla disponibilità di nuovo codice o componenti fino alla distribuzione. L'automazione riduce al minimo il tempo necessario per la distribuzione e il tempo necessario per attenuare (TTM) o il tempo necessario per correggere gli eventi imprevisti di produzione (TTR). In termini di lean, CD ottimizza i tempi di lavorazione ed elimina il tempo di inattività.

L'integrazione continua (CI) avvia il Processo CD. La pipeline di rilascio gestisce ogni fase di ambiente successivo a quello precedente dopo il completamento con successo dei test. La pipeline di rilascio CD automatizzata consente un approccio "fail fast" alla convalida, in cui i test che tendono a fallire vengono eseguiti per primi, mentre i test a esecuzione più lunga avvengono solo dopo il corretto completamento di quelli più veloci.

Le procedure complementari dell'infrastruttura come codice (IaC) e il monitoraggio facilitano il CD.

Tecniche di esposizione progressiva

CD supporta diversi modelli per l'esposizione progressiva, detta anche "controllo del raggio di esplosione". Queste procedure limitano l'esposizione alle distribuzioni per evitare di rischiare problemi con la base utente complessiva.

  • CD può sequenziare più anelli di distribuzione per l'esposizione progressiva. Un anello tenta una distribuzione in un gruppo di utenti e ne monitora l'esperienza. Il primo anello di distribuzione può essere un canary per testare le nuove versioni nell'ambiente di produzione prima di un'implementazione più ampia. CD automatizza la distribuzione da un anello al successivo.

    La distribuzione all'anello successivo può facoltativamente dipendere da un passaggio di approvazione manuale, in cui un responsabile approva elettronicamente le modifiche. CD può creare un record controllabile dell'approvazione per soddisfare le procedure normative o altri obiettivi di controllo.

  • La distribuzione blu/verde si basa sul mantenimento di una versione blu esistente mentre viene distribuita una nuova versione verde. Questa procedura usa in genere il bilanciamento del carico per indirizzare l'aumento della quantità di traffico verso la distribuzione verde. Se il monitoraggio rileva un incidente, il traffico può essere reindirizzato verso la distribuzione blu ancora in esecuzione.

  • Flag di funzionalità o interruttori di funzionalità sono un'altra tecnica per la sperimentazione e i lanci scuri. I flag di funzionalità attivano o disattivano le funzionalità per gruppi di utenti diversi in base all'identità e all'appartenenza ai gruppi.

Le pipeline di versione moderne consentono ai team di sviluppo di distribuire nuove funzionalità in modo rapido e sicuro. CD può risolvere rapidamente i problemi rilevati nell'ambiente di produzione, procedendo con una nuova distribuzione. In questo modo, CD crea un flusso continuo di valore per il cliente.

Passaggi successivi