Perche’ DevOps

0 Comments

In questo articolo analizzeremo perche’ una azienda dovrebbe adottare la filosofia DevOps e quali sono le principali pratiche correlate.

DevOps e’ una filosofia che combina cultura aziendale, pratiche e strumenti e fornisce ad una azienda l’abilità di sviluppare applicazioni e servizi con la massima agilità. DevOps contribuisce a rilasciare prodotti più velocemente rispetto alle aziende che usano i tradizionali processi di sviluppo di software e di gestione dell’infrastruttura.

Adottando la filosofia DevOps, i team dedicati a sviluppo e produzione non agiscono più separatamente. I due team vengono considerati una entita’ unica in cui i tecnici sono attivi lungo tutto il ciclo di vita dell’applicazione, da sviluppo e testing a distribuzione e produzione, e acquisiscono una serie di competenze non limitate da una singola funzione.

In alcuni casi, anche i team dedicati a controllo della qualità e sicurezza spesso sono coinvolti più direttamente nelle fasi di sviluppo e gestione in tutto il ciclo di vita dell’applicazione. Quando in un team di DevOps la sicurezza è il punto focale di tutti, a volte prende il nome di DevSecOps.

I team si affidano all’automatizzazione più possibile, per sostituire processi manuali che rallentano la mesa in produzione del software. Apposite tecnologie e tools favoriscono l’evoluzione delle applicazioni in modo rapido e affidabile.

La Continuous Integration o Integrazione Continua (CI) è una pratica in cui gli sviluppatori aggiungono regolarmente modifiche al codice in un repository centralizzato, quindi la creazione di build e i test vengono eseguiti automaticamente. In questo modo  e’ possibile individuare e risolvere i bug con maggiore tempestività, migliorare la qualità del software e ridurre il tempo richiesto per convalidare e pubblicare nuovi aggiornamenti.

A tale fine, pratiche come lo unit test, l’automazione del processo di build sono un must per adottare questa pratica.

Il Continuous Deployment (CD) è una pratica in cui le modifiche al codice vengono applicate a una build, testate e preparate per il rilascio in produzione in modo automatico. Questo consente inoltre di passare in maniera più sicura tra le varia fasi ed ambienti in maniera. Se la distribuzione continua viene implementata correttamente, inoltre, gli sviluppatori hanno sempre a disposizione una build temporanea pronta per la distribuzione che ha già passato un processo di testing.

L’Infrastructure as Code (IaC) è una modalità di gestione dell’infrastruttura in cui provisioning e gestione dell’infrastruttura avvengono tramite lo sviluppo di codice ed in maniera automatizzata. Questo modello di gestione consente di rendere replicabile e deterministico il processo di deployment dell’infrastruttura e delle applicazioni. Tecnologie come i container e gli orchestrato supportano tutta questa evoluzione ed assieme al cloud costituiscono i blocchi di una nuova visione di sviluppo del software.

Link al nostro corso su micro-servizi