Quando si parla di release management ci si riferisce a un processo che, nell’ambito dell’intero ciclo di sviluppo del software, o software development lifecycle (SDLC), ha l’obiettivo di pianificare, programmare, sviluppare e amministrare una build software nei diversi stadi di progettazione e ambienti IT.


Release management: quali funzioni presidia

Del processo di release management fanno parte varie attività: inizialmente si può individuare la fase di pianificazione dei requisiti, quindi delle funzionalità, o modifiche al codice, che dovranno essere integrate nella prossima release del software. Successivamente, si passa allo sviluppo del prodotto software sulla base dei requisiti indicati, fase in cui è importante la capacità di coordinamento delle diverse build in differenti stadi di sviluppo e ambienti. Il release management include fasi di testing delle build, indirizzate a verificare e validare la qualità del software, in termini di aderenza ai requisiti, assenza di bug e difetti, stabilità, sicurezza. Una volta superati i test, viene eseguita la fase di deployment del prodotto software nell’ambiente di produzione dell’impresa utente, o il suo rilascio nel mercato di massa.


Metodologia
DevOps, l’impatto sul release management

La progressiva adozione nelle organizzazioni del modello di sviluppo DevOps ha l’obiettivo di ottimizzare la velocità e l’agilità di creazione, aggiornamento, fornitura agli utenti finali di applicazioni e servizi digitali caratterizzati dal miglioramento continuo, per rispondere sempre meglio alle esigenze degli utenti stessi: la metodologia DevOps accelera il ritmo di release management, aumentando velocità e frequenza dei rilasci software, grazie a pratiche come l’integrazione continua e la distribuzione continua (CI/CD) che automatizzano creazione, gestione, distribuzione delle build.


Container e microservizi, perché aiutano il release management

Approcci di progettazione delle applicazioni software come l’architettura basata su microservizi o tecnologie come i software container, rappresentano entrambi strumenti utili per un’impresa che sta intraprendendo una strategia di accelerazione del processo di release management.


Microservizi, i benefici

Basare la progettazione di un’applicazione su microservizi significa che, invece di svilupparla integrando strettamente in un unico blocco di codice elementi come il database, la logica di business o l’interfaccia utente, la si scompone in moduli più piccoli, detti appunto microservizi, in grado di comunicare fra loro. Tale stile architetturale porta diversi benefici all’interno del processo di release management:

  • Essendo più piccolo e costituito da una frazione di codice, ogni singolo microservizio può essere sviluppato, aggiornato e rilasciato con maggior facilità e rapidità.

  • Anche quando l’applicazione è grande e complessa, ciascuno dei microservizi che la compongono può essere sviluppato in modo indipendente dagli altri, e velocemente, facendo leva sull’utilizzo delle pratiche CI/CD.

  • Usando i microservizi, i diversi team di sviluppo possono focalizzarsi solo su determinati componenti software, aumentando la produttività e la velocità dei rilasci.

 

Software container, i vantaggi nel release management

Usare un’architettura basata su microservizi permette anche di utilizzare meglio i software container, attraverso i quali è possibile impacchettare in un file di piccole dimensioni il codice sviluppato, ad esempio per un microservizio, assieme alle relative dipendenze ed altri eventuali componenti. In questo modo lo sviluppatore, quando deve eseguire un controllo d’integrità su un container, può avviarlo e fermarlo in modo indipendente dagli altri container/microservizi, semplificando e velocizzando il lavoro. Inoltre, poiché ciascun container include tutti gli elementi necessari per funzionare, quando si opera su un servizio che dipende dal funzionamento di un altro è possibile avviare il container in questione senza doversi preoccupare di configurare in modo corretto l’ambiente IT sottostante, risparmiando ulteriormente tempo. Ancora, l’opportunità di sviluppare un microservizio e impacchettarlo in un container il cui funzionamento è indipendente dall’ambiente IT sottostante, nella fase di deployment permette di ottimizzare la portabilità della software release in qualunque infrastruttura e ambiente operativo, sia esso il data center on-premise, il cloud privato o la nuvola pubblica.