Riassunto analitico
In una azienda software che eroga servizi cloud in modalità Software as a Service, il software è lo strumento che può generare valore di business. Occorre quindi garantire servizi di deployment rapidi e in alta affidabilità, che permettano il rilascio di software testato e di qualità in qualsiasi istante. La Continuous Delivery, estensione della Continuous Integration, è un concetto innovativo nello sviluppo di software che sta diventando sempre più popolare e prevede un approccio strutturato ed automatizzato ai processi del ciclo di vita dello sviluppo software, automatizzandolo e rendendone ripetibili le varie fasi utilizzando delle Continuous Deployment pipeline. La Continuous Deployment Pipeline può essere vista come una modellizzazione di quel processo che il software attraversa, partendo dal sistema di controllo di versione sino ad essere installato sui sistemi di Test o Produzione. Ogni modifica al software deve attraversare vari stage, di verifica e controllo (analisi statica del codice, controllo delle vulnerabilità note, code review manuale), affinché esso possa essere rilasciato nella sua versione aggiornata e validata. L'approccio tradizionale per la gestione manuale dell'infrastruttura IT non è adatta per soddisfare le esigenze dei moderni cicli di sviluppo software, la complessità dell'infrastruttura aumenta all'aumentare del livello di complessità del processo di sviluppo, e i costi di approvvigionamento e gestione aumentano di conseguenza. Per questo motivo è fondamentale applicare il paradigma Infrastructure as Code (laC) anche per il provisioning dell'infrastruttura necessaria ai processi di Continuous Integration, Continuous Delivery e Continuous Deployment. Lo scopo di questo progetto è il design e la realizzazione di pipeline per la continuous delivery con auto-provisioning dell'infrastruttura per mezzo di strumenti come terraform o Google Config Connector.
|