Metodologia DevOps: come funziona e gli ambiti applicativi - Digital4Trade
Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

Sviluppo Software

Metodologia DevOps: come funziona e gli ambiti applicativi

di Gianluigi Torchiani

22 Gen 2019

La metodologia che favorisce l’unificazione di sviluppo e operazioni per accelerare le modalità di rilascio del software sta incontrando un crescente successo. Tanto da essere destinata a diventare il paradigma dominante entro i prossimi cinque anni

DevOps è una di quelle tendenze che, nel mondo dell’IT, riveste un consenso unanime: la grande differenza rispetto alla tradizionale modalità di sviluppo software è rappresentata dalla possibilità di accelerare notevolmente lo sviluppo delle applicazioni. Nell’approccio dell’era pre DevOps le aziende avevano infatti a che fare con un notevole disallineamento tra sviluppatori, team operativo e produzione, che tendevano a procedere su binari separati. Con conseguenze negative sui costi dello sviluppo software, sui tempi della pianificazione e, in fin dei conti, sulla stessa reputazione di un’organizzazione.

Un problema che si è recentemente aggravato con l’evoluzione tecnologica attuale, che ha portato alla nascita di un’economia sostanzialmente software defined: le aziende di tutti i settori produttivi interagiscono con i propri clienti o partner tramite prodotti software sotto forma di applicazioni o servizi online, che possono essere utilizzati in molti dispositivi differenti. I software sono ormai costantemente impiegati per migliorare l’efficienza operativa della produzione, della logistica e delle comunicazioni; le stesse infrastrutture hardware IT sono sempre più software defined, cioè gestite e potenziate per mezzo di speciali software. Dunque le aziende hanno un’estrema necessità di avere a che fare con software e applicazioni che siano il più frequentemente possibile aggiornatati ed efficienti, in modo da mantenere ai più elevati standard la propria catena produttiva.

Cos’è e cosa significa la metodologia DevOps (developement operations)

Queste particolare circostanze rendono vincente il paradigma DevOps, un termine che nasce dall’unione delle parole dev (sviluppo) e ops (operazioni): secondo la definizione di AWS, nel DevOps “ I team dedicati a sviluppo e produzione non agiscono più separatamente. In alcuni casi, al contrario, i due team vengono fusi in un’unità 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 modelli DevOps, 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”.

 

Vantaggi del DevOps per le aziende e il business

In buona sostanza, le aziende che sposano una strategia DevOps hanno la possibilità di effettuare test e implementare nuove funzionalità e applicazioni molto più rapidamente rispetto alle modalità di sviluppo tradizionali, senza contare il fatto che gli stessi sviluppatori, lavorando in prima linea sulla programmazione, sono stimolati a scrivere codici di qualità superiore. In particolare, I processi che in passato potevano risultare manuali e lenti per i team di sviluppo, come l’aggiornamento di codice o il provisioning di un nuovo ambiente, possono essere ora eseguiti rapidamente e in modo continuativo grazie agli strumenti e alle procedure DevOps. È inoltre più facile rispettare gli standard per la sicurezza e l’affidabilità perché questi elementi sono direttamente incorporati nel processo.utti lavorano in un ambiente incentrato sulle competenze in cui determinati dipartimenti o settori non desiderano condividere informazioni tra loro nella stessa azienda, il che probabilmente porta all’inefficienza di un’organizzazione.

 

 

DevOps VS non DevOps: le differenze

Una grande differenza tra DevOps e non DevOps, spesso non adeguatamente sottolineata, può essere identificata nell’aspetto dimensionale. I team DevOps si caratterizzano per un lavoro su piccoli lotti di codice, in modo da rendere possibile il testing e rilascio continuo e, al contempo, ridurre al minimo i rischi. Al contrario gli sviluppatori tradizionali sono abituati a lavorare su enormi porzioni di codice, in maniera tale da rispettare le date di rilascio stabilite in fase di programmazione, fattore che espone inevitabilmente a un rallentamento della produttività e a un possibile aumento dei costi.  Inoltre, nel mondo non DevOps ogni professionista tende a lavorare con altri che condividono le proprie competenze o attività. Si tratta di una modalità che non facilita la condivisione di informazioni tra i diversi dipartimenti aziendali, provocando inevitabilmente inefficienze all’interno di un’organizzazione.

 

DevOps: Integrazione e distribuzione continua

Altre due caratteristiche fondamentali di un sistema di sviluppo DevOps sono l’integrazione continua (CI) e l‘erogazione continua e/o la distribuzione continua (CD). CI significa che nel processo di sviluppo i test su una porzione di codice sono continui e automatici, mentre CD sta a indicare che il processo di messa in produzione del codice validato dopo il dovuto collaudo diventa automatica. Sono proprio queste due caratteristiche che rendono possibile l’accelerazione dei tempi di rilascio. In passato, ad esempio, molte aziende mettevano in produzione il nuovo codice a date prestabilite, con tempistiche magari mensili. Ma la velocità attuale del business ha reso questo modello per cicli di rilascio del tutto obsoleto; DevOps, invece, punta proprio ad automatizzare il ciclo di rilascio per renderlo il più possibile immediato.

Come lavorano i team di DevOps

Oltre al cambiamento delle modalità di lavoro da svolgere, DevOps determina inevitabilmente anche un cambiamento del tipo di lavoro da svolgere, nota un’azienda esperta di questo settore come Red Hat. “La metodologia DevOps non permette semplicemente di accelerare la creazione delle solite, vecchie applicazioni monolitiche, ma si prefigge di creare nuove tipologie di software, che rispondono più efficacemente all’esigenza di delivery continua. Proprio per questo, per la realizzazione del software i team DevOps spesso utilizzano un’architettura a microservizi e collegano tali servizi fra loro attraverso le API. I team possono accelerare la delivery concentrandosi sulla creazione di funzionalità più limitate (..)”.

DevOps: più attenzione alla sicurezza

L’aumento della velocità reso possibile dall’adozione del modello DevOps non significa però un minore controllo sulla conformità di controllo e applicazioni, tutt’altro. Il vero vantaggio derivante dall’adozione di questo paradigma è proprio che l’aspetto sicurezza non è più affidato a un team separato, ma entra immediatamente a far parte del modello di sviluppo del software stesso e della sua relativa fase di test. Si tratta della cosiddetta Security By Design, un principio che è stato adottato da numerosi vendor del mercato, come ad esempio Trend Micro. Dal momento che il DevOps rende possibile ai team di sviluppo lavorare per microservizi, ossia per piccole parti di applicazione che possono essere modificate in maniera molto veloce. Il risultato indiretto è a tutto favore della sicurezza: ogni team ha di avere meno codice da analizzare e maggiori possibilità di rimediare a eventuali errori o a vulnerabilità. Che in ogni caso, data la possibilità di aggiornamento rapido e continuo resi possibili da DevOps, possono essere risolti in maniera molto più tempestiva.

DevOps: boom atteso entro 5 anni

Ma quanto è diffuso attualmente il modello DevOps? Secondo i dati di una recente ricerca pubblicata da Fujitsu, entro il prossimo quinquennio le aziende si aspettano notevoli passi avanti nel completamento della diffusione di DevOps. In particolare, questa metodologia viene considerata dalla maggior parte delle aziende coinvolte nello studio come un approccio prezioso per affrontare il cambiamento continuo necessario per raggiungere un superiore grado di flessibilità a fronte di costi decrescenti. D’altra parte, le percentuali che scaturiscono dal report indicano come molta strada rimanga ancora da fare: solo meno di metà degli intervistati (45%) giudica attualmente DevOps come ‘stabilito’ (25%) o ‘completamente stabilito’ (20%). Solo un’azienda su quattro ha completato un progetto DevOps pilota e il 22% lo sta realizzando o pianificando. D’altra parte, appena l’8% del campione non possiede alcun piano per esplorare DevOps. Nonostante solo il 20% delle aziende disponga attualmente di processi DevOps maturi, i responsabili decisionali IT si attendono importanti cambiamenti. I risultati del sondaggio Fujitsu State of Orchestration 2018/19 evidenziano come quasi otto intervistati su dieci (78%) si aspettino che le aziende ricorrano a DevOps per erogare applicazioni e servizi su scala entro i prossimi cinque anni. Le principali ragione per perseguire un modello DevOps, emerge dal report Fujitsu, sono quelle di poter gestire meglio i cambiamenti e i miglioramenti continui (42%), diventare più rapidi e capaci di supportare i cambiamenti business (37%), e abbattere i costi (36%).

DevOps: i vantaggi per gli ISV

L’avvento del modello DevOps ha ovviamente rimescolato le carte nel mondo del software, a tutto vantaggio dei piccoli produttori software, i cosiddetti ISV (Indipendent Software vendor). Che ora, oltre alla loro rodata flessibilità organizzativa, possono contare su una flessibilità tecnica senza precedenti. Il maggiore beneficio per gli ISV, in particolare, risiede nella stretta integrazione esistente tra DevOps e cloud, che consentono di abbattere molte delle barriere IT tipiche della vecchia era del software. In poche parole, molti ambienti di test e provisioning, necessari al moderno sviluppo software, risiedono nei servizi cloud offerti dai principali provider globali. Che possono quindi essere utilizzati, in modalità pay per use, dagli sviluppatori degli ISV per rilasciare più rapidamente applicazioni o aggiornamenti. La modalità cloud, tra l’altro, rende possibile ampliare a dismisura la collaborazione, particolare non di poco conto se si tiene conto che i team di sviluppo sono spesso sparsi per il mondo, così come i clienti finali. Tutto questo consente agli produttori di progettare, assemblare e testare piccoli pezzi di funzionalità più velocemente rispetto al passato e in maniera più efficace.

 

Come fare DevOps: gli step da seguire

Da un punto di vista teorico, la strategia DevOps non può non fare riferimento alla metodologia Agile, e cioé a quella summa di principi derivati dal “Manifesto Agile” che nel 2001 ha definito un modello di sviluppo focalizzato sull’obiettivo di consegnare al cliente, in tempi brevi e frequentemente (early delivery – frequent delivery), software funzionante e di qualità. Rispetto ai metodi tradizionali a cascata o ad altri processi software, le pratiche Agile presuppongono la formazione di team di sviluppo piccoli, cross-funzionali e auto-organizzati, lo sviluppo iterativo e incrementale, la pianificazione adattiva e il coinvolgimento diretto e continuo del cliente nel processo di sviluppo. Se si vuole mettere in piedi un IT shop di successo, il primo passo è dunque quello di scegliere una metodologia Agile intuitiva, con dei framework di sviluppo come Scrum (che enfatizza tutti gli aspetti di gestione di progetto legati a contesti in cui è difficile pianificare in anticipo) o KanBan (che aiuta a visualizzare e rendere esplicito il flusso di lavoro per riconoscere prima le opportunità di miglioramento, limitando il work in progress). Questi framework sono importanti perché aiutano i team di sviluppo a definire rapidamente gli obiettivi e le priorità, ad assegnare i compiti e a identificare dove possono verificarsi problemi nello sviluppo di un processo.

DevOps: le possibili criticità

Nonostante tutti i vantaggi promessi dal modello DevOps, come peraltro ha messo in luce la ricerca Fujitsu citata in precedenza, tale paradigma è ancora lontano dalla completa affermazione. E anche le storie di successo commerciale ancora non abbondano. Il problema, come ha messo in luce un report di Micro Focus, è probabilmente costituito dal carattere immateriale dei DevOps. È infatti difficile capire se un’organizzazione è riuscita a realizzare il DevOps. Non esistono infatti riconoscimenti formali o certificati da esibire o che attestino inequivocabilmente di aver seguito le metodologie descritte in precedenza. Anzi spesso capita che un’azienda dichiari di aver adottato la metodologia DevOps, quando in realtà nella sua filiera di produzione sono stati integrati appena un paio di processi. Inoltre, il livello di immediatezza e collaborazione nell’IT promosso da DevOps può essere utile a livello teorico, ma non è affatto semplice da implementare. Soprattutto per ragioni di carattere culturale: DevOps richiede infatti un livello preliminare di agilità (grande o piccolo, in base alle preferenze) che per molti reparti IT aziendali è ancora parecchio lontano. Secondo una ricerca condotta nel 2018 per CA Technologies da Freeform Dynamics, il gap di competenze digitali rimane un ostacolo di primo piano: circa l’82% delle organizzazioni italiane concorda nel ritenere difficile reperire personale con competenze DevOps; il 72% incontra difficoltà nell’individuare professionisti con skill in materia di Agile e il 67% trova a fatica risorse con esperienza di lavoro in team multidisciplinari. Inoltre la persistenza di architetture di tipo legacy in azienda può senza dubbio rappresentare un freno alla piena realizzazione del modello DevOps.

Gianluigi Torchiani

Cagliaritano trapiantato a Milano, in dieci anni ha scritto di qualsiasi argomento. Papà, un passato in canoa olimpica e un presente nel calcetto. Patito di classic rock. Redattore #Digital4Trade

Metodologia DevOps: come funziona e gli ambiti applicativi

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *