Quando le funzioni di Development e Operations si incontrano, nasce il DevOps, la metodologia agile di sviluppo software basata sull’integrazione e la multidisciplinarietà, che aiuta la Direzione IT a farsi fulcro dell’innovazione. Nel percorso di adozione del Dev Ops, il Cloud può rappresentare un potente alleato. Ma come è possibile avviare questo processo? E, prima di tutto, cosa si intende per Dev Ops? Scopriamolo in questo articolo, a cura dell’Osservatorio Cloud Transformation del Politecnico di Milano.
DevOps: significato e rilevanza per le aziende
L’introduzione di una metodologia DevOps all’interno dell’azienda è una sfida culturale in cui diventa fondamentale modificare il modo di lavorare e le gerarchie tradizionali. Tuttavia, per comprendere meglio questa metodologia, è doveroso conoscere prima il significato di DevOps:
Il DevOps è una filosofia di lavoro che, attraverso la rottura dei silos tra Sviluppo (Dev) e Operations (Ops), aumenta la collaborazione tra i team e, anche grazie a una focalizzazione al cliente e all’utilizzo di nuovi strumenti di automazione, è in grado di abilitare l’azienda a un’erogazione di servizi con maggiore velocità e affidabilità.
Rompendo i soliti compartimenti stagni e favorendo l’integrazione tra sviluppatori e area Operations – con team autonomi, responsabili, votati al confronto, in grado di accelerare tempi di progettazione, testing e rilascio – l’IT può dunque gestire i progetti digitali garantendo time-to-market ridotti ed elevata qualità dell’output. In questo modo velocizza il rilascio del software, anticipandone e riducendone i problemi e migliorando l’allineamento alle aspettative del business.
Il DevOps rappresenta in un certo qual modo l’estensione dei principi Lean e Agile all’intera organizzazione secondo un principio di end-to-end. Inizialmente, l’Agile nasce in contrapposizione alle tradizionali metodologie di sviluppo “waterfall” (“a cascata”) delle quali cercava di superare i limiti proponendo un approccio iterativo e incrementale che velocizzasse il raggiungimento dei risultati.
DevOps: oltre i limiti dei tradizionali modelli
Nel mondo dello sviluppo software, i due ruoli coinvolti, ovvero Developer e Operations, tradizionalmente lavorano in modo sequenziale: lo sviluppatore concepisce e sviluppa il software fino alle fasi di rilascio, a valle delle quali la responsabilità per l’effettivo funzionamento dell’applicazione è in mano alle Operations. Questa modalità a cascata di gestire il ciclo di vita del software, unita ad una mancanza di strumenti di automazione, comporta continui ricircoli e disservizi, nonché malcontento a livello organizzativo.
Le metodologie DevOps cercano di superare questi limiti promuovendo due aspetti:
- una modalità di lavoro in cui queste due figure siano effettivamente un team e si confrontino continuativamente nelle fasi di pianificazione, sviluppo, rilascio e gestione del software;
- l’utilizzo di strumenti di automazione che permettano una più rapida identificazione dei problemi del software e realizzazione delle attività di rilascio in produzione.
Come funziona il modello DevOps
Si può immaginare la catena distributiva del software in DevOps come un circolo infinito in cui le diverse fasi (Collaboration, Integration, Deployment, Operations, Monitoring) si concatenano in maniera continuativa e fluida supportate da specifici strumenti di automazione delle attività, quali ad esempio:
- Collaboration: include strumenti di gestione del codice che tengono traccia delle modifiche realizzate nel tempo e delle diverse versioni, richiamandole al bisogno e permettendo agli sviluppatori di lavorare in modo concorrenziale e parallelo;
- Continous Integration: comprende strumenti per l’automatizzazione delle fasi di integrazione del codice e di testing, da un punto di vista funzionale e prestazionale, ogni qualvolta il software venga modificato (grazie ad un repository condiviso) ;
- Continous Deployment: in questa fase vi sono strumenti per l’automatizzazione del rilascio software in produzione che eseguono procedure standardizzate di configurazione delle infrastrutture, distribuzione del software e testing;
- Continous Operations: include strumenti che permettono di gestire la manutenzione del software e dell’hardware, parallelizzando le versioni, in modo che non generino disservizi per l’utente;
- Continous Monitoring: comprende strumenti di monitoraggio del software in produzione e conseguente gestione di eventuali feedback e problematiche.
Il ruolo del Cloud nell’adozione del DevOps
Come abbiamo accennato all’inizio di questo articolo, il Cloud può rappresentare un potente alleato nel progettare un percorso di adozione del DevOps, in quanto nativamente predisposto da un punto di vista di strumenti e architetture.
In particolare, il modello infrastrutturale del PaaS (Platform as a Service) mette a disposizione ambienti di sviluppo performanti, pronti in tempi rapidi e muniti di strumenti pre-configurati di gestione del ciclo di vita del software, ponendosi come layer tecnologico base su cui implementare strategie DevOps su larga scala.
A oggi, secondo i dati dell’Osservatorio Cloud Transformation, il 71% delle aziende ha adottato DevOps. Si tratta di un dato incoraggiante, che dimostra come la sinergia delle strategie Cloud e DevOps in azienda può essere il fattore chiave per aumentare la pervasività di queste due trasformazioni, dando quella spinta dall’alto per rendere l’IT veramente agile e pronto a promuovere la trasformazione digitale.
Vuoi conoscere le opportunità del Cloud per innovare la tua azienda?
- Autore
Gli Osservatori Digital Innovation del Politecnico di Milano sono un punto di riferimento qualificato sull’Innovazione Digitale in Italia.
Gli ultimi articoli di Redazione Osservatori Digital Innovation
-
Identità finanziaria, cos’è e come funziona 19 luglio 2024
-
Robotic Process Automation: cos'è e come funziona la RPA? 12 aprile 2024
Rimani aggiornato sui trend dell’Innovazione Digitale
Inserisci qui la tua email
Potrebbe interessarti
Articoli più letti