Guida Kanban · Fondamenti Lean
Continuous delivery: principi, pipeline e vantaggi
Il continuous delivery è una pratica software in cui il codice è sempre mantenuto in uno stato rilasciabile, così le nuove modifiche possono essere rilasciate agli utenti in modo rapido, sicuro e in qualsiasi momento. Trasforma in realtà tecnica l'ideale Kanban di un flusso continuo di piccole unità.
Punti chiave
- Il continuous delivery mantiene il software sempre rilasciabile.
- Una deployment pipeline automatizza build, test e rilascio.
- Completa Kanban eliminando i rilasci in blocco.
Origini
La pratica è stata descritta in modo approfondito da Jez Humble e David Farley nel loro libro del 2010 Continuous Delivery. Si basa sui principi Agile, in particolare sul primo: consegnare software di valore presto e in modo continuo.
CI vs continuous delivery vs continuous deployment
| Pratica | Cosa significa |
|---|---|
| Continuous integration (CI) | Gli sviluppatori fanno merge frequenti di piccole modifiche; ogni merge viene compilato e testato automaticamente |
| Continuous delivery (CD) | Ogni modifica che supera la pipeline potrebbe essere rilasciata; il rilascio è una decisione di business |
| Continuous deployment | Ogni modifica che supera la pipeline viene rilasciata automaticamente |
La deployment pipeline
- Fase di commit: eseguire la build del codice e test automatizzati rapidi.
- Fase di accettazione: test funzionali e di integrazione automatizzati.
- Test aggiuntivi: test di prestazioni, di sicurezza ed esplorativi.
- Rilascio: distribuire in produzione, spesso con feature flag o rilasci graduali.
- Monitorare: osservare l'utilizzo reale e gli errori, ed eseguire rapidamente il rollback se necessario.
Vantaggi
- Rilasci più piccoli e meno rischiosi.
- Feedback più rapido da utenti reali.
- Riduzione del lead time dall'idea al cliente.
- Giorni di rilascio meno stressanti.
- Qualità più elevata grazie all'automazione.
Continuous delivery e Kanban
Kanban limita il work in progress e mantiene piccoli gli elementi; il continuous delivery elimina la fase finale di rilascio in blocco. Insieme permettono a ogni elemento di arrivare ai clienti non appena è completato. Vedi DevOps.
Modelli gratuiti per questo argomento
Domande frequenti
Il continuous delivery riguarda solo il software?
Il termine nasce nel software, ma il principio di mantenere il lavoro sempre pronto per il rilascio in piccoli incrementi si applica a contenuti, documentazione e altri prodotti digitali.
Serve il continuous deployment per fare continuous delivery?
No. Continuous delivery significa che potete rilasciare in qualsiasi momento; continuous deployment significa che rilasciate effettivamente in modo automatico.
Che cos'è il continuous delivery?
Il continuous delivery è una pratica software in cui il codice è sempre mantenuto in uno stato rilasciabile, così qualsiasi modifica può essere distribuita in produzione in modo sicuro e rapido in qualsiasi momento.
Qual è la differenza tra continuous delivery e continuous deployment?
Nel continuous delivery ogni modifica è pronta per il rilascio, ma è una persona a decidere quando distribuirla. Nel continuous deployment ogni modifica che supera la pipeline viene rilasciata automaticamente.
Qual è la differenza tra continuous integration e continuous delivery?
La continuous integration consiste nel fare merge e testare frequentemente le modifiche al codice. Il continuous delivery la estende in modo che il codice integrato sia sempre distribuibile in produzione.
Che cos'è una deployment pipeline nel continuous delivery?
Una sequenza automatizzata di fasi, come build, test e deployment negli ambienti di test, che ogni modifica attraversa prima del rilascio.
Chi ha scritto il libro Continuous Delivery?
Jez Humble e David Farley, nel loro libro del 2010 Continuous Delivery.
Quali sono i vantaggi del continuous delivery?
Rilasci più piccoli e meno rischiosi, feedback più rapido dagli utenti, meno errori manuali e giorni di rilascio meno stressanti.
Quali strumenti si usano per il continuous delivery?
I team combinano di solito controllo di versione, un server CI/CD, framework di test automatizzati e strumenti di infrastructure-as-code. I prodotti specifici contano meno dell'automazione e della disciplina.
Che rapporto c'è tra continuous delivery e Kanban?
Entrambi puntano a piccoli lotti che scorrono costantemente verso i clienti. Una board Kanban con un cycle time si abbina naturalmente a una pipeline in grado di rilasciare qualsiasi elemento completato.
Che cos'è un feature flag nel continuous delivery?
Un interruttore nel codice che attiva o disattiva una funzionalità senza un nuovo deployment, consentendo ai team di rilasciare il codice in sicurezza prima che una funzionalità sia visibile a tutti gli utenti.