Il ruolo del DevOps è quello di rendere produttivo e affidabile un software durante le varie fasi del suo ciclo di vita. Scopri cosa fa, quali strumenti utilizza e perché è importante.
Il cosiddetto DevOps, una combinazione di development e operations, è colui che si occupa di rendere produttivo e quindi disponibile all’uso un software una volta che è stato sviluppato.
Il DevOps utilizza strumenti, processi e metodi specifici per coordinare le varie fasi dello sviluppo e del rilascio di un software, interfacciandosi con gli sviluppatori front-end e back-end e preparando l’applicativo da loro creato per l’utilizzo da parte dell’utente finale. Come uno scenografo a teatro, sistema l’ambiente in modo che sia pronto per lo spettacolo.
Differenze tra developer e DevOps
Se i front-end e back-end developer si occupano di scrivere il codice di un software, il DevOps è incaricato di gestirlo e rilasciarlo su vari ambienti, rendendolo disponibile nel sistema.
Fra il team di sviluppo e quello operativo spesso c’è una divisione netta perché hanno competenze e obiettivi differenti, e se non si condividono le informazioni si rischia di lavorare in compartimenti stagni. Se gli sviluppatori vogliono introdurre nuove funzionalità in un determinato software, il team operativo deve garantirne la stabilità dopo il rilascio.
Il DevOps serve proprio a colmare il divario fra la necessità di apportare modifiche rapide a un software e le attività volte ad assicurarne l’affidabilità, deve quindi possedere ottime competenze interpersonali per collaborare con i diversi team.
Rispetto al lavoro dello sviluppatore, cambiano l’obiettivo e le finalità del lavoro, poiché il DevOps non crea il software in sé, bensì si prende cura del sistema su cui verrà rilasciato e della sua infrastruttura.
Cosa fa un DevOps
Il compito di un DevOps è quindi verificare e preservare la fruibilità e la stabilità di un software dopo che è stato sviluppato. Il DevOps ha come obiettivo l’unificazione e l’automazione dei processi, ed è fondamentale per gestire il codice scritto dai developer, la sua gestione applicativa e la sua distribuzione. In breve, il DevOps si occupa del deployment del software, ovvero di tutte quelle attività che lo rendono disponibile per l’utilizzo.
La nostra esperienza ci ha portato a un processo che prevede delle fasi di rilascio ben precise:
- DEV (development): si tratta dell’ambiente in cui il quality tester effettua i primi test per verificare che ciò che è stato fatto dai programmatori sia in linea con le richieste del cliente.
- QA (quality assurance): se il primo test dà un risultato positivo, il codice viene inserito in un ambiente dove lo si fa testare a un campione di utenti che conosce già il comportamento che ci si aspetta dal software, con l’obiettivo di verificare le modifiche con dati più realistici.
- PROD (produzione): una volta che i test nelle fasi precedenti hanno dato risultati positivi si avvia una serie di rilasci del prodotto in modo da renderlo operativo.
Queste fasi non sono necessariamente separate e successive tra loro: si tratta di processi interconnessi, che insieme formano quello che viene spesso definito metodo CI/CD, ovvero l’insieme delle pratiche di integrazione continua (CI) e distribuzione/deployment continuo (CD). Il metodo CI/CD è supportato dai team operativi e di sviluppo, che collaborano secondo la metodologia Agile e con un approccio DevOps.
Tali pratiche introducono l’automazione costante e il monitoraggio continuo per tutto il ciclo di vita dell’applicazione, dalle fasi di integrazione e test a quelle di distribuzione.
Gli strumenti del DevOps
Un DevOps lavora principalmente con strumenti cloud come Cloud AWS e Microsoft Azure. Si tratta degli ambienti tecnologici più diffusi sul mercato per questo tipo di operazioni, scelti anche da noi di Hermes in quanto offrono diverse soluzioni di integrazione e sono particolarmente flessibili e scalabili. In più, un buon DevOps deve assolutamente conoscere tool come Jenkins, Docker e Sonar Cube.
L’automazione cloud agevola il lavoro del DevOps, perché riduce i tempi, evitando anche gli eventuali errori che potrebbero verificarsi svolgendo a mano operazioni molto ripetitive,ed è utile per mettere a sistema i vari test e controlli che il DevOps deve eseguire prima di rilasciare il prodotto. Per questo vengono utilizzati tool che eseguono automaticamente test di qualità e anche test integrativi (robot framework): l’automazione di questi controlli garantisce che ogni volta che il cliente avanza delle richieste di modifica, il codice precedente non presenti regressioni.
Un lavoro di squadra
Il ruolo del DevOps è fondamentale perché, situandosi a metà strada fra lo sviluppatore e l’utente, garantisce la coesione di tutto il processo di produzione. Un prodotto software, infatti, non dà performance ottimali solo grazie alla qualità del codice scritto dai developer, ma grazie all’intero ciclo di produzione, ed è qui che il DevOps fa la differenza, poiché si occupa di creare una collaborazione più stretta fra i team di sviluppo e quelli operativi.
Insomma, per creare un prodotto di qualità non basta un team di sviluppo ma serve un team completo, una filosofia che Hermes abbraccia da sempre. La capacità di lavorare in team, unita alle competenze tecniche, gestionali e relazionali, è imprescindibile per i nostri talenti.