Le pratiche DevOps
Vantaggi delle pratiche DevOps
I punti cardine
Continuous Integration (CI) : il software viene costantemente sottoposto a processi di build e test ad ogni push sul repository Git. Questo ci permette di garantire la consistenza durante le differenti fasi di sviluppo e integrazione. Continuous Delivery : una volta terminato con successo il processo di integrazione, il software viene pacchettizzato e archiviato su appositi sistemi di storage ( Artifactory, Container Registry , ecc…). Il pacchetto, quindi, è disponibile al rilascio su qualsiasi ambiente, da quello di sviluppo o collaudo, fino a quello di produzione. Continuous Deployment (CD) : una volta pacchettizzato il software può essere rilasciato (automaticamente o manualmente) sugli ambienti target: sviluppo, collaudo, pre-produzione, produzione. Le automazioni caricano il corretto set di configurazioni necessarie per lo specifico ambiente oggetto del deploy .
Kick-off di progetto veloci e standardizzati
Il cuore pulsante del nostro processo
“Cloud-native ready” by-design
La nostra toolchain
GitLab per il versioning e l’archiviazione del codice, oltreché per l’esecuzione delle procedure di automazione (attraverso lo strumento delle GitLab Pipelines ) che garantiscono il ciclo di vita del software. Atlassian Jira per la gestione del progetto, la definizione dei requisiti, la pianificazione dei rilasci. Atlassian Confluence per le analisi, la documentazione di progetto, i deliverables documentali, i decision logs , i report operativi. Docker per la containerizzazione del software, che ci garantisce un approccio standardizzato, modulare e moderno agli sviluppi. Ansible per lo sviluppo delle procedure automatiche di installazione, test, integrazione, pacchettizzazione, rilascio. Nexus per la gestione dei repository Maven e NPM e l’archiviazione degli artefatti (software o librerie) necessari durante le operazioni di build del software e/o deploy. Container Registry per l’archiviazione delle immagini Docker che contengono specifiche release del software. Kubernetes per il deploy e l’orchestrazione ed erogazione degli ambienti di sviluppo, test, pre-produzione e, in alcuni casi, anche produzione del software. Google Cloud come cloud provider per la creazione, running e gestione delle nostre infrastrutture di sviluppo e produzione. Slack , uno strumento di messaggistica istantanea che favorisce la condivisione immediata di informazioni tra i differenti attori del progetto (team di sviluppo, team operativo, Product Ownership, Cliente, Stakeholders).