Principi di continuous delivery
Scopri i principi di base della continuous delivery con queste guide introduttive.
La continuous delivery (CD) è una raccolta di numerose best practice Agile e organizzative di successo esistenti. Tramite la CD, l'organizzazione può concentrarsi sulla creazione di un processo di rilascio software semplificato e automatizzato. Al centro del processo di rilascio c'è un ciclo di feedback iterativo. Tale ciclo di feedback ruota attorno alla distribuzione del software all'utente finale il più rapidamente possibile. Si trae insegnamento dall'esperienza pratica e si incorpora quindi tale feedback nel rilascio successivo.
Continuous integration, continuous delivery e continuous deployment a confronto
Per garantire il corretto funzionamento dei servizi sempre attivi è necessario allineare la struttura, i valori e gli strumenti del team per garantire che l'eccellenza operativa diventi una competenza fondamentale. Leggi l'articolo
Valore aziendale della continuous delivery
Il valore aziendale della continuous delivery non è a esclusivo appannaggio delle aziende beniamine della tecnologia. La CD migliora la velocity, la produttività e la sostenibilità dei team di sviluppo software. Leggi l'articolo
Mappatura del flusso di valore
La mappatura del flusso di valore è una tecnica di analisi che può aiutarti a ottimizzare la pipeline di continuous delivery. Scopri come e perché viene utilizzata questa tecnica. Leggi l'articolo
La CD è una metodologia inclusiva a livello di organizzazione che include i team non di progettazione, come quelli di design, prodotto e marketing. La CD incoraggia gli sviluppatori a concentrarsi sulla distribuzione del prodotto per l'utente finale, laddove gli ambienti che non applicano la CD incentivano il "trasferimento del lavoro", in cui l'esperienza utente principale per gli sviluppatori è quella del team di controllo di qualità. Nelle prossime sezioni parleremo dei principi specifici alla base dei flussi di lavoro di CD.
Processo affidabile e ripetibile
I processi dell'organizzazione hanno un proprio ciclo di sviluppo. Di solito iniziano come checklist o "playbook" manuali, ovvero liste di task eseguiti manualmente. Successivamente, questi task possono essere automatizzati tramite strumenti e script di software. Il commit di questi playbook negli script di software ne garantisce la ripetibilità. Se la checklist deve essere rieseguita, un membro del team può eseguire lo script. L'affidabilità si raggiunge quando questi script del playbook vengono eseguiti in modo coerente tra i diversi ambienti. Ad esempio, il playbook per la distribuzione del codice in un ambiente di sviluppo o di staging dovrebbe rispecchiare il più possibile l'ambiente di produzione. Questa coerenza affidabile tra ambienti ed esecuzioni elimina un'intera categoria di bug di coerenza.
Automatizza tutto
L'automazione è un valore chiave della CD. Il tempo delle persone è costoso e dovrebbe essere impiegato con parsimonia per svolgere esercizi creativi invece che i noiosi task del playbook. Un processo manuale non è veramente ripetibile e affidabile finché non è stato sottoposto a commit nel codice e non è eseguibile automaticamente on-demand. I task automatizzati possono essere uniti tra loro per creare ulteriori livelli di automazione. Automatizza il più possibile test, rilasci, modifiche alla configurazione e altro ancora.
Controllo delle versioni
Una pietra miliare della CD, il controllo delle versioni è un must assoluto per qualsiasi progetto software che si rispetti. Il controllo delle versioni consente ai team di sviluppatori di collaborare in modo efficiente su una base di codice condivisa. Git è il sistema di controllo delle versioni più utilizzato e un ottimo alleato per la CD. Il controllo delle versioni abilita la funzionalità di annullamento consentendo il rollback alle versioni candidate al rilascio precedenti. Oltre al codice, anche la configurazione, gli script, i database e la documentazione dovrebbero essere sottoposti al controllo delle versioni per tenere traccia delle modifiche apportate nel tempo.
Build di qualità
Per la CD, la qualità non è un aspetto secondario affidato al team di controllo di qualità, ma è parte integrante di ogni fase della pipeline di rilascio. Il ciclo di feedback centrale della CD è un costante riesame della qualità fornita agli utenti finali. Le nuove funzioni vengono distribuite con serie di test automatizzati che assicurano che il nuovo codice sia privo di bug e soddisfi le aspettative di qualità. La pianificazione del progetto per i rilasci di nuove funzioni dovrebbe includere considerazioni sull'analisi, il monitoraggio delle prestazioni e i task di strumentazione dei test automatizzati.
Occupati prima delle parti più difficili
I task complicati, dispendiosi in termini di tempo o soggetti a errori aumentano nel tempo. Questi task devono essere affrontati il prima possibile per evitare ulteriori dispendi di energie. Immagina un task complicato per la cui esecuzione sono necessari 20 minuti e che viene eseguito cinque volte a settimana. Ciò si traduce in 100 minuti complicati a settimana, in circa 400 minuti al mese e così via. Immagina di poter affrontare e ottimizzare questo task per evitare del tutto questi intervalli di tempo complessi. Ovviamente, sarebbe una conquista.
"Occupati prima delle parti più difficili" è anche un esercizio che aiuta a identificare i punti deboli del processo organizzativo. La presenza di task sistematicamente procrastinati o evitati indica una probabile area di miglioramento a cui occorre dedicarsi attivamente. I team devono occuparsi regolarmente delle parti difficili per mantenere la dimestichezza con queste ultime e tenerle in primo piano negli incontri di pianificazione.
Tutti sono responsabili
L'intera organizzazione deve essere concentrata e incentivata a garantire che il risultato finale per gli utenti finali sia della massima qualità possibile. I product manager devono pianificare tenendo presenti la distribuzione e la garanzia di qualità. Il team di sicurezza deve essere coinvolto attivamente nel processo di rilascio. I membri del team di controllo di qualità devono testare gli ambienti di sviluppo e staging con lo stesso rigore che applicherebbero all'ambiente di produzione per rilevare eventuali guasti prima del rilascio finale. Gli sviluppatori devono pianificare attivamente i rilasci nell'ambiente di produzione.
"Completato" significa rilasciato
Le società di software hanno l'obiettivo di distribuire software agli utenti finali. E non possono prosperare se le app funzionano esclusivamente sul computer degli sviluppatori. La frase "A me funziona" è un campanello d'allarme che indica una mancanza di consapevolezza dell'obiettivo aziendale generale e di empatia per l'utente finale. La CD è interamente incentrata sul rilascio di software al cliente finale. Inoltre, con "completato" non si intende indicare il completamento del contributo di un singolo membro del team, ma del contributo dell'intero team.
Miglioramento continuo
Valore della continuous delivery
Mi auguro che le sezioni precedenti abbiano iniziato a illustrare le aggiunte di valore elevato offerte dalla CD. A livello generale, la CD promuove l'efficienza di esecuzione, la comunicazione tra team, l'adattamento del prodotto al mercato, l'agilità e la trasparenza organizzativa complessiva.
A un livello più specifico, la CD può essere instrumentata con misurazioni di metriche di monitoraggio esplicite. Alcune metriche di CD molto utili potrebbero essere:
- Tempo che intercorre dalla fase di progettazione della nuova funzione al rilascio nell'ambiente di produzione.
- Numero di bug di produzione riscontrati dagli utenti.
- Livello di coinvolgimento degli utenti con le nuove funzioni.
- Frequenza del rilascio di nuove funzioni.
Inoltre, la CD può essere utilizzata come base per la creazione di metriche delle prestazioni organizzative come i KPI. Infine, i ricavi aziendali e la salute finanziaria sono un ottimo parametro per misurare l'impatto delle pratiche organizzative.
Guida introduttiva alla continuous delivery
Una volta compresi i vantaggi e la filosofia della CD, i passaggi successivi riguardano la sua implementazione. Un buon punto di partenza è la continuous integration. La continuous integration o CI è il precursore della CD. La CI si concentra sull'automazione del flusso di lavoro di rilascio del codice. A questo scopo, la CI utilizza strumenti automatizzati di test del codice e task di controllo di qualità. Una volta configurata la CI, è possibile creare processi di CD per distribuire codice agli utenti finali e sviluppare un ciclo di feedback che guiderà i rilasci futuri.
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.