Per Iniziare
Comincia dalle basi e scopri come utilizzare Mia-Platform a piccoli passi.
Comincia dalle basi e scopri come utilizzare Mia-Platform a piccoli passi.
Inizia ora
Diventa Partner certificato e scopri tutti i benefici del Partner Program.
Scopri il nostro programma
Ogni sviluppatore ha provato, almeno una volta nella vita, quella sensazione di tensione che accompagna il Delivery Day. Conoscendo le insidie dello sviluppo di un software, si teme che nel momento in cui questo comincerà ad essere utilizzato emergeranno difetti, incongruenze e malfunzionamenti.
Ma siamo davvero sicuri che debba necessariamente essere così? Si può superare il timore del rilascio trasformando ogni giorno in un D-day? Sì, attraverso la pratica del Continuous Delivery.
A differenza dei processi tradizionali, in cui la fase di sviluppo prodotto è separata dalle attività funzionali al rilascio del software, il Continuous Delivery si propone di realizzare software sempre pronto per essere rilasciato.
In che modo? Attraverso l’integrazione continua di ogni singolo sviluppo, rilasciato in un ambiente di staging, analogo a quello di produzione. Il software che arriva a questa fase ha già superato le fasi di build e test, e di fatto è già in condizione di poter essere rilasciato. Ogni cambiamento introdotto nel sistema seguendo questa prassi è quindi un release candidate, rilasciabile in produzione come una nuova versione del software.
Questo processo può essere portato al suo estremo, automatizzando quest’ultimo passaggio ed eliminando l’approvazione dell’essere umano alla messa in produzione: si tratta della pratica di Continuous Deployment.
Differenze tra diversi modelli di rilascio
A partire dalla concezione di release candidate, è possibile individuare i sei principi essenziali per garantire un processo di rilascio efficace e continuo.
La metodologia di CD è celebre per essere utilizzata nelle più grandi aziende del mondo digitale come Google, Yahoo, Amazon e Facebook per citarne qualcuna. Ma la sua funzionalità non è legata alle dimensioni aziendali: si tratta di un insieme di principi che possono essere efficacemente applicati a qualsiasi dimensione aziendale.
La nostra esperienza in tema di Continuous Delivery è nata dalla necessità di conciliare i rilasci di prodotto con gli sviluppi, gli aggiornamenti e la manutenzione degli applicativi dei clienti, ciascuno dei quali ha tempistiche ed esigenze proprie.
Tre anni fa uno dei nostri Team ha deciso di introdurre nel proprio percorso di rilascio alcuni principi di Continuous Delivery, trasformandoli in applicazioni pratiche adoperabili nel proprio contesto; dato il loro successo, oggi questi principi sono diventati un caposaldo dello sviluppo in Mia‑Platform. Guardiamoli insieme:
La pipeline del team che porta il codice dal checkout all’ambiente di staging (NB: per questo team, la linea rossa indica uno step attivato manualmente).
I principi di Continuous Delivery, applicati al contesto di sviluppo di ciascun team, permettono di affrontare e superare la paura del rilascio, facendo evolvere il software in modo più rapido, semplice e affidabile.
Secondo la nostra esperienza, un buon processo di delivery deve essere automatico, attivabile da qualsiasi membro del team, uguale per tutti gli ambienti e deve prevedere momenti di build e deploy separati. Inoltre, deve seguire un sistema di versionamento rigoroso e garantire in modo continuo il rollback del software.
Questo articolo proviene da un talk di Riccardo Porrini e Tommaso Ballardini ed è stato pubblicato in forma originale su Mokabyte nel numero di Maggio 2019.