Chi dovrebbe partecipare
Agli sviluppatori software o architect e amministratori di sistema.
I concetti sono utili sia per chi lavora in una grande azienda per creare un processo di rilascio più snello ed affidabile sia per chi lavora in una startup o in una piccola impresa e vuole ndare rapidamente e frequentemente in produzione senza troppa paura.
Obiettivi del Corso
Il rilascio del software spesso viene percepito come un processo lungo, macchinoso e molto rischioso. Ma non deve essere per forza un bagno di sangue.
L’obiettivo del corso di DevOps e Continuous Integration è quello di presentare a livello teorico e a livello pratico dei principi e delle tecniche che permettano di avere il controllo sul processo di rilascio, di automatizzarlo e renderlo efficiente e ripetibile per ridurre tempi, costi e rischi.
I concetti alla base di questo approccio derivano dai metodi di sviluppo agile e dal movimento devops.
I metodi agili spingono sulla consegna rapida e incrementale del valore, sulla qualità e sul miglioramento della comunicazione e del ciclo di feedback.
Il movimento DevOps si focalizza sulla visualizzazione del flusso del valore e sulla rimozione delle barriere tra i team di sviluppo e quelli di gestione dell’infrastruttura, attraverso la comunicazione e la condivisione di pratiche e strumenti.
Contenuti del Corso
Durante il corso creeremo un un ambiente di sviluppo e di produzione in modo automatico e ripetibile basandoci sul concetto di infrastructure as code. Utilizzeremo Vagrant, un tool che consente di fornire in modo rapido un ambiente virtuale di sviluppo ben definito ed uguale per tutto il team.
Per il provisioning utilizzeremo Chef, uno degli strumenti più diffusi e potenti per la gestiore della configurazione.
Il passo successivo sarà implementare una deployment pipeline cioè un insieme di passi che ci permetteranno di portare il codice di un’applicazione dalle macchine di sviluppo alla produzione passando per integrazione, test e deployment.
Utilizzeremo Jenkins, un server di Continuous Integration estremamente potente e flessibile.
Al termine del corso avremo visto come configurare in modo efficiente le macchine che ospiteranno le nostre applicazioni e come eseguire l’integrazione e il deploy del codice applicativo.