DevOps: i pilastri per accelerare il ciclo di sviluppo software

Mia-Platform Team 21 settembre 2020

DevOps è un paradigma di sviluppo software di crescente diffusione nei reparti IT delle imprese. Questa metodologia si sta diffondendo grazie alla capacità di fornire benefici chiave: DevOps, automatizzando le fasi di build, test e deployment, permette non solo di ridurre i costi di rilascio del software, ma anche di accrescere velocità e frequenza dei rilasci stessi, senza compromessi in termini di qualità, affidabilità e solidità del codice sviluppato. 

 

Definizione e origini di DevOps

Nel modello DevOps, contrazione delle parole ‘development’ (Dev) e ‘operations’ (Ops), ossia le squadre di professionisti che tradizionalmente formano il reparto IT, vengono costituiti feature team che, condividendo pratiche e principi di lavoro, e utilizzando determinati strumenti software lungo tutto il ciclo di sviluppo, contribuiscono a creare una pipeline di distribuzione del codice completamente automatizzata. 

La metodologia DevOps viene illustrata per la prima volta nel 2009 alla O’Reilly Velocity Conference, da John Allspaw, software engineer, e Paul Hammond, web developer, all’epoca impiegati in Flickr, la piattaforma globale di gestione e condivisione immagini.   

DevOps integra i metodi di sviluppo Agile e Lean Software Development (LSD) con una serie di altre pratiche, che estendono i concetti di agilità ed efficienza oltre il dominio dello sviluppo software, per arrivare a includere l’intero ciclo di sviluppo del codice (SDLC) e i sistemi IT necessari al funzionamento del codice stesso. 

 

Cardini essenziali su cui è imperniato DevOps

Le colonne portanti di DevOps sono essenzialmente tre:

1) Automazione dell’infrastruttura

Adottando modalità di gestione dell’infrastruttura come “Infrastructure as Code” (IaC), è possibile automatizzare tramite script il deployment di tutto l’ambiente IT richiesto per la creazione e il funzionamento del codice: gli script eseguono in automatico la configurazione dell’hardware, dei sistemi operativi, della rete, di container e macchine virtuali. La modalità IaC permette di gestire in automatico anche le attività di testing, ad esempio configurando e standardizzando l’implementazione degli ambienti e automatizzando l’esecuzione dei test a livello end-to-end. 

 

2) Sviluppo iterativo CI/CD (continuous integration/continuous delivery/continuous deployment)

Sul versante software development, la modalità di sviluppo CI/CD automatizza, accelera e razionalizza le attività di sviluppo, testing e deployment del codice applicativo, rendendo possibile la creazione di una pipeline di fornitura del software completamente integrata. 

 

3) Controllo qualità e manutenzione sistemi

Attraverso DevOps, il controllo qualità tramite l’automazione dei test, ma anche l’aggiornamento del software, e la manutenzione dei sistemi IT sono assicurati di continuo e in automatico, lungo tutto il ciclo di sviluppo del codice. Ciò permette di migliorare la governance IT, nonostante la complessità del codice e l’aumento della velocità e della frequenza di rilascio di nuove versioni del software. Questo perché, come già accennato, attraverso il paradigma IaC è possibile automatizzare non solo il deployment iniziale dell’infrastruttura IT, ma anche le successive attività di controllo versione e manutenzione delle configurazioni di server e sistemi in ambienti di test e produzione che, altrimenti, andrebbero ogni volta gestite in modalità ‘manuale’. 

 

img-pagina-5


DevOps, questione di cambiamento culturale

Parlando di tool di DevOps si fa riferimento a numerose categorie di strumenti, spesso open source, ciascuna dedicata a specifiche fasi del ciclo di sviluppo. Vi sono strumenti di controllo versione, come Git, che mantengono traccia di tutte le modifiche nella base di codice; server di automazione della pipeline come Jenkins; tool IaC come Ansible. Ma anche strumenti di monitoraggio continuo come Kibana, e software di orchestrazione di container come Kubernetes. Esistono poi piattaforme che consentono di organizzare e controllare tutti questi strumenti da un’unica console, come la DevOps Console di Mia-Platform.  

Avere una strategia DevOps, tuttavia, non significa soltanto identificare e selezionare determinati strumenti e tecnologie di automazione dello sviluppo software e del deployment dell’infrastruttura IT. 

Queste innovazioni tecnologiche, infatti, non sono sufficienti, se non si attua un reale cambiamento culturale, in grado di superare la tradizionale separazione di competenze e responsabilità tra i team, per abbracciare una modalità di lavoro in cui i nuovi strumenti servono a generare comunicazione tra i processi e collaborazione tra le persone.

 

I benefici e gli altri paradigmi basati su DevOps

Tra i benefici chiave che DevOps porta a un’organizzazione IT troviamo:

  • Accelerazione delle attività di creazione, testing, aggiornamento e rilascio del codice applicativo;
  • Potenziamento di sicurezza e affidabilità dei processi e del codice;
  • Miglioramento costante del SDLC, grazie a feedback continui;
  • Adattabilità continua ai cambiamenti del mercato e alle richieste degli utenti. 

La popolarità di DevOps ha portato alla nascita di altri modelli, che intendono riprodurre i principi di DevOps in contesti specifici; tra questi spiccano DataOps, per l’analisi dei dati, e GitOps, per il controllo versione su tutti gli elementi che entrano in gioco nel ciclo di sviluppo .

 

Conclusioni

La migrazione verso DevOps non si compie, semplicemente, installando e utilizzando alcuni strumenti e tecnologie: DevOps è una filosofia di sviluppo software che può realizzarsi solo attraverso un percorso di cambiamento culturale e delle modalità di lavoro all’interno del reparto IT. Oggi, per le imprese, adottare il paradigma DevOps costituisce un passo essenziale per riuscire a innovare e potenziare le metodologie di sviluppo del software, e tenere il passo con le dinamiche di mercato.

 

Mia Platform - White Paper - Tutto quello che devi sapere per orientarti nel mondo del DevOps

Post Correlati

DevOps, DataOps, GitOps, NoOps… facciamo chiarezza!

Fondandosi su metodologie quali Agile e Lean, indirizzate a rompere la rigidità dei modelli di sviluppo software classici, primo fra ...
Mia-Platform Team 12 febbraio 2020

Microservizi, quanto devono essere grandi?

L’utilizzo dei Microservizi nella creazione delle nuove applicazioni è un trend che si sta sempre più affermando tra i team di svilup...
Mia-Platform Team 24 aprile 2020

Continuous delivery: gestire il ciclo di vita del codice con Mia-Platform

Il continuous delivery è una moderna pratica dell’ingegneria del software che consente di rilasciare più velocemente le applicazioni ...
Mia-Platform Team 18 giugno 2020