DevOps: un approccio collaborativo per migliorare la delivery

L'adozione di una cultura DevOps e di figure specializzate può aiutare le aziende a diventare più efficienti nella delivery, ridurre il time to market del software e garantire un servizio affidabile.

INTRODUZIONE

Lo sviluppo software richiede da sempre molteplici competenze che si declinano su diversi fronti: da un lato skill più focalizzate sulle tematiche tipiche del coding e legate allo specifico contesto tecnologico applicativo, dall’altro competenze più legate alle infrastrutture che supportano la componente applicativa. La specificità di queste due facce della stessa medaglia ha da sempre portato alla segregazione delle stesse in distinti team introducendo, di fatto, un ostacolo nella comunicazione, pianificazione e collaborazione tra i due mondi che può avere dei riflessi sulla qualità dei rilasci, sull’efficienza del processo e sul time to market della delivery.

Technology Reply utilizza DevOps nelle attività di delivery. Si tratta di una metodologia di sviluppo software che fornisce una serie di principi e tecniche presi in prestito da entrambi i mondi al fine di migliorare il processo di delivery end to end, in primis massimizzando la collaborazione tra le due parti; inoltre, grazie all’adozione di tool e tecnologie che favoriscono l’automazione delle attività, rende più affidabili e più frequenti i rilasci applicativi di nuove feature.


OPPORTUNITÀ

Oggi giorno le esigenze di business cambiano velocemente e richiedono continui adattamenti; per questo motivo è indispensabile che i team che si occupano di sviluppo software abbiano un processo di delivery consolidato e altamente performante. L’adozione del DevOps consente di andare in questa direzione grazie ai principi di collaborazione e grazie all’elevato grado di automazione che normalmente porta con sé. L’utilizzo di DevOps si sposa alla perfezione con l’adozione di pratiche Agili di gestione dei progetti e trova una collocazione perfetta in contesti a microservizi.


PRINCIPI E VANTAGGI DI DEVOPS

DevOps si fonda su principi Agili che prevedono la collaborazione, la flessibilità e il miglioramento continuo del processo di sviluppo del software. Qui di seguito si riportano i principali punti cardine della metodologia e i relativi benefici.


DevOps è focalizzato sulla collaborazione tra developer e team di operation. Unificando in un unico team tutte le skill che contribuiscono alla delivery è possibile lavorare con un processo più fluido garantendo efficienza, velocità di intervento e qualità.

DevOps punta ad automatizzare i processi manuali time consuming. L’adozione dell’automazione favorisce l’incremento della frequenza di rilascio di nuove feature applicative in linea con quanto richiesto dalle metodologie di gestione agili e supporta al meglio i contesti a microservizi dove la soluzione è generalmente composta da un elevato numero di componenti. L’automazione consente una standardizzazione delle procedure di rilascio e riduce fortemente i rischi derivanti da errori manuali migliorando la qualità complessiva del processo di delivery.

L’automazione dei processi consente l’adozione di Continuous Integration e Continuous Delivery (CI/CD), processi imprescindibili oggi giorno in una software factory moderna. La combinazione di CI/CD consente di condividere e integrare velocemente le frequenti modifiche apportate dai diversi developer coinvolti nella realizzazione del sistema al fine di automatizzarne il test e intercettare tempestivamente eventuali problemi.

Infrastructure as a Code (IaC): è un metodo di gestione e distribuzione dell'infrastruttura basato sulla codifica della stessa. IaC promuove un'implementazione più rapida e omogenea e semplifica la gestione e la scalabilità dell'infrastruttura. Tale approccio semplifica anche la gestione di tematiche di Disaster Recovery (DR) rendendo tali procedure più facilmente testabili e più velocemente eseguibili all’occorrenza.

Il monitoraggio e il logging sono essenziali per garantire l'integrità e le prestazioni di un'applicazione. Grazie a questi il team DevOps può identificare e diagnosticare rapidamente i problemi, nonché tenere traccia dei progressi e delle prestazioni agendo sia su componenti applicative che su componenti infrastrutturali. Tali aspetti sono fondamentali in ottica di continuous improvement del sistema.

L’aspetto della sicurezza è una componente critica di qualsiasi sistema software. Grazie all’approccio DevOps è possibile integrare nei processi di gestione della delivery delle pratiche specifiche per garantire un elevato livello di security mediante l’utilizzo di strumenti preposti alla scansione del codice, l’esecuzione di test automatizzati e attraverso il monitoring costante della security delle applicazioni.

Il nostro team

Technology Reply da tempo ha abbracciato la metodologia DevOps al fine di poter garantire ai propri clienti un processo di delivery di elevata qualità. Nel processo di adozione della metodologia la figura dello sviluppatore si è evoluta al fine di integrare le classiche competenze più legate a tematiche di coding con un bagaglio di conoscenze derivanti per l’appunto dal mondo DevOps.

In questo contesto è nata la figura del DevOps specialist che può supportare le nuove iniziative progettuali con la predisposizione di tool e tecnologie che consentono di avviare un processo di delivery ben strutturato e possono seguire tutto il ciclo di vita del sistema in ottica di migliorare continuamente il processo di delivery e mantenere un elevato monitoring delle prestazioni del sistema.

Accanto a questa è nata la figura del Platform Engineer che contribuisce all’automazione del provisioning, della configurazione e della gestione dell’infrastruttura al fine di fornire agli sviluppatori tutte le componenti e servizi di cui l’applicazione necessita.