1 resultado para Tripi.taka.

em AMS Tesi di Laurea - Alm@DL - Università di Bologna


Relevância:

10.00% 10.00%

Publicador:

Resumo:

Il processo di sviluppo di un’applicazione comprende più fasi, ognuna strettamente correlata alle altre. Una delle fasi di questo processo è il rilascio del software, che consiste nel rendere disponibile agli utenti l’applicazione caricandone l’eseguibile su un server, sul quale verrà poi eseguita. Per un’azienda di sviluppo software è particolarmente importante automatizzare e standardizzare il processo di rilascio del software, allo scopo di renderlo più veloce e di diminuire il tempo che intercorre fra una modifica e il momento in cui questa viene effettivamente resa disponibile per gli utenti, ottimizzando infine l’impegno degli sviluppatori. La presente tesi descrive l’implementazione di un sistema di Continuous Integration e Continuous Deliveliry scalabile su una software house con più di 900 dipendenti suddivisi in decine di team, ognuno dei quali ha in carico lo sviluppo di vari software. Le applicazioni realizzate dai team sono generalmente microservizi in esecuzione all’interno di container su piattaforma Kubernetes. Sono state quindi valutate le varie alternative per la realizzazione di questo sistema, analizzandone pro e contro, scegliendo infine GitLab per la parte di Continuous Integration e ArgoCD per la parte di Continuous Deployment. Nei vari capitoli viene quindi analizzata l’infrastruttura esistente e vengono illustrati i vantaggi e svantaggi delle varie soluzioni considerate. Per i due software selezionati viene invece descritto il lavoro svolto, con dettagli sul funzionamento del sistema e la configurazione necessaria per il corretto funzionamento dell’intero processo. La soluzione realizzata effettua build, test, code validation e deploy delle applicazioni seguendo un pattern GitOps, con un repository git contenente la configurazione attuale delle applicazioni, permettendo rollback in caso di problematiche e garantendo un alto livello di sicurezza attraverso il mantenimento dello storico della configurazione e della versione delle applicazioni.