L’esigenza del time-to-market nel business digitale sostiene la necessità delle imprese di ottenere più velocità nel rilascio delle applicazioni, obiettivo questo delle moderne pratiche di continuous delivery che, sempre più spesso, precedono o accompagnano l’implementazione delle metodologie agile e DevOps.
Da sola o in compagnia della continuous integration, la continuous delivery consente di mettere in produzione più velocemente le applicazioni, attraverso l’automazione del rilascio raccordando tutte le fasi che lo precedono. Realizzare la continuous delivery consiste infatti, sia dal punto di vista tecnico sia organizzativo, nel creare una catena di montaggio in grado di collegare senza soluzione di continuità le fasi di sviluppo e validazione con quelle di test e altre che sono funzionali al deploy. Di fatto con la creazione di un processo automatizzato e ripetibile che fa sì che tutti i nuovi sviluppi software siano immediatamente pronti per la messa in produzione.
Cos’è e come funziona la continuous delivery
Come suggerisce il nome, continuous delivery significa rilascio continuo, locuzione che nella pratica software si traduce nella capacità di supportare l’evoluzione del software in parallelo con quella dei requisiti facilitando la reattività all’emergere di nuove esigenze. Rispetto allo sviluppo tradizionale, la continuous delivery dà priorità alla capacità di distribuire il software, prediligendo quindi lo sviluppo incrementale rispetto all’aggiunta in blocco delle nuove funzionalità attraverso major release. Modifiche e aggiunte puntuali possono essere rilasciate in modo continuo e sono meno rischiose per il funzionamento complessivo dell’applicazione.
La continuous delivery si ottiene integrando i tool, i processi e il lavoro dei team nelle software factory. L’integrazione tra i tool serve a garantire che le modifiche e le aggiunte di codice siano rapidamente rilasciabili attraverso l’automazione dei passaggi tra fasi di validazione e pre-produzione. Il lavoro congiunto dei team è funzionale alla focalizzazione sul risultato finale, che non è scrivere codice, bensì generare valore effettivo per l’utilizzatore finale.
I quattro pilastri della continuous delivery
La continuous delivery assieme alla continuous integration (CD/CI) sono pratiche che accompagnano l’introduzione delle metodologie Agile e DevOps/DevSecOps con cui oggi si vanno a raccordare le attività a supporto del ciclo di vita dei servizi digitali. La continuous delivery va a toccare, in particolare, quattro aspetti dello sviluppo software.
Il primo è la gestione dei requisiti che con una migliore formalizzazione e continuo aggiornamento diventa parte integrante del ciclo di creazione del valore.
Il secondo riguarda l’implementazione di cicli feedback molto veloci per le fasi di compilazione, test e deploy, facendo in modo che tutti gli attori siano nelle condizioni di approvare rapidamente ogni rilascio nell’ambiente prescelto.
Il terzo tocca l’automazione dei processi di build, test e deploy: un passo fondamentale per rendere i processi ripetibili, poterli quindi gestire facilmente con maggiore frequenza.
Infine la quarta area d’intervento riguarda l’acquisizione delle competenze per ingegnerizzare il software a microservizi, in modo che sia possibile rilasciarlo in modo più rapido, senza venir meno a test e validazioni prima dell’entrata in produzione. L’architettura del software è determinante per la capacità di spostare le build in ogni momento e in qualsiasi ambiente d’esecuzione.
I vantaggi della continuous delivery per l’azienda
Con la continuous delivery il software è rilasciato in produzione più velocemente, con notevoli vantaggi per l’aggiornamento dei processi aziendali, così come per il time-to-market dei nuovi servizi erogati in forma diretta agli utenti finali. La continuous delivery si sposa con l’adozione delle moderne pratiche agili nella progettazione di servizi e prodotti, permettendo di incorporare velocemente nel software i requisiti che emergono un po’ alla volta dai feedback degli utenti. A supporto dello sviluppo agile, la continuous delivery consente di ridurre la rischiosità dei nuovi progetti d’impresa che dipendono dal software, permettendo di controllare meglio i costi e ottenere codice di maggiore qualità e più sicuro.