Magazine_Banner

Il Vantaggio DevSecOps

DevSecOps
Oggi il mondo dello sviluppo software si muove alla velocità della luce e per essere competitivi sul mercato non basta realizzare applicazioni perfettamente funzionanti e sicure, ma occorre ridurre al minimo il time to market.

La metodologia DevSecOps aiuta a garantire il successo di un progetto consentendo rilasci continui nei tempi richiesti dal business.

Non si tratta semplicemente di accelerare i processi e aumentare la competitività, ma anche di avvicinare il mondo degli sviluppatori agli addetti alle operations, riducendo il gap tra team con obiettivi differenti che necessariamente devono interagire tra loro per il raggiungimento di un risultato comune.

Come abbiamo potuto constatare in Teleconsys non è sufficiente implementare nuovi strumenti, ma è fondamentale attuare alcuni accorgimenti culturali che hanno consentito di integrare in breve tempo tutti i team (sviluppo – ADUX, Sicurezza ed infrastruttura – NEGIS ed operations SEOP) aziendali allo scopo di costruire un framework organizzativo integrato.

devops
CI / CD
Attraverso la continuos integration e la continuos delivery (CI/CD) agevoliamo l’integrazione delle diverse componenti software che sono state sviluppate e, grazie all’implementazione dei test automatici all’interno delle pipeline di build e release, riduciamo il tempo di delivery mettendo a disposizione immediatamente nuove funzionalità al Cliente che potrà accertarne l’efficienza prima della messa in produzione.

La capacità di affinare tempestivamente le funzionalità software rispettando le esigenze del cliente nelle diverse iterazioni del processo garantisce la piena soddisfazione di tutti.

Dagli sviluppatori, che non devono mettere continuamente “mano” a funzionalità che non rispettano i desiderata, al cliente, che riesce esattamente ad ottenere quello che vuole.

I feedback forniti agli sviluppatori dall’esecuzione dei test automatici ad ogni rilascio di codice sorgente sono fondamentali per ridurre i tempi di bug fixing e consentire la messa in produzione di un software sicuro.

Automatizzare i processi di build e le pipeline di release diventa, pertanto, fondamentale, perché consente di gestire correttamente il rischio dei rilasci conoscendo sempre lo stato di salute dell'applicazione grazie ai report forniti dai processi di devsecops.

Caso D’uso
In uno dei nostri progetti più complessi gestito sul Cloud Azure e basato interamente su un’architettura a microservizi abbiamo la necessità di gestire due repository Git: uno presso il Cliente, accessibile solo dalla loro rete interna, ed uno esterno, impiegato per lo sviluppo.

Abbiamo optato per la realizzazione di pipeline di sincronizzazione che eseguiamo manualmente nel momento in cui la fase di development è terminata ed abbiamo la necessità di allineare il codice del repository presso il Cliente. Al termine della sincronizzazione, automaticamente, vengono eseguite pipeline di build e testing con la relativa generazione degli Artifact.

L'automatismo consente di rilevare le modifiche apportate rispetto alla precedente versione del software ed eseguire le pipeline di release per il rilascio dell’applicativo, dei microservizi o dei web job che necessitano di essere aggiornati con la nuova versione.

Un processo automatico come quello sopra descritto ci consente di dedicare tempo ad altre attività core mentre il sistema lavora per noi, eseguendo grazie alle pipeline anche le verifiche di qualità e di sicurezza.

Un processo supervisionato ed automatizzato con tali caratteristiche evita sicuramente diversi errori dettati dall’intervento umano.

I vantaggi dell’uso degli Slot
Un ulteriore vantaggio che è possibile trarre dal cloud (es. Azure) è l'utilizzo degli slot di distribuzione attraverso i quali è possibile creare ambienti speculari.

Il software rilasciato sullo slot sarà raggiungibile ad un indirizzo diverso da quello live che continuerà ad eseguire il codice della versione precedente. Nuove funzionalità potranno, pertanto, essere verificate direttamente nell’ambiente operativo senza creare disagi agli utenti e, una volta approvate, sarà sufficiente promuoverle in produzione. Tale operazione viene comunemente detta “swap” e non solo permette di avere un avvio della nuova release in produzione priva di down time in quanto i processi sono tutti già avviati, ma qualora si riscontrasse una qualsiasi anomalia, sarebbe possibile effettuare uno swap inverso per ripristinare immediatamente la vecchia versione del codice.

L'elevata configurazione delle pipeline consente di introdurre swap automatici o inserire processi approvativi. I rilasci in produzione risulteranno pertanto più semplici con meno stress per il team addetto alle operazioni.

Tutto funziona come in una grande catena di montaggio perfettamente collaudata ed efficiente che riduce al minimo gli sprechi e garantisce il controllo di ogni fase.

Scopri come la nostra unità ADUX utilizza DevSecOps

Condividilo su: