Pianificare, tracciare, orchestrare e rilasciare applicazioni complesse in qualsiasi ambiente, sono tra i compiti più importanti cui i team DevOps dovrebbero prestare attenzione. Non solo è necessario gestire nel modo più corretto il ciclo di vita del rilascio delle applicazioni nelle fasi di sviluppo, implementazione e produzione, serve anche personalizzare i modelli e adottare le best practice per allinearsi con le policy aziendali riguardo i rilasci.

Bisogna prendere decisioni strategiche in corsa per velocizzare i processi, pianificare, gestire, monitorare e controllare a livello centrale tutti gli ambienti di test e di pre-produzione, ma anche snellire i processi di distribuzione e le attività di rilascio sfruttando appena possibile soluzioni di automazione. Curare “tutto” il ciclo di vita delle applicazioni è effettivamente complesso, ma rappresenta una priorità sono gli stessi team DevOps ad evidenziarlo.

La riuscita dei progetti di sviluppo in ambito DevOps è infatti ostacolata da processi di governance manuali che limitano l’agilità. Per accelerare i processi, senza rinunciare alla qualità, è necessario invece decentralizzare la governance dei rilasci sviluppando pratiche comuni per definire i controlli sfruttando gli strumenti di automazione già disponibili per eliminare il lavoro manuale e quindi anche i possibili errori.

Lo evidenziano molto bene gli analisti di Gartner che sottolineano tre punti chiave: la gestione centralizzata dei rilasci consente a chi governa le operation di mitigare i rischi, ma questo modello di governance va a scapito dell’agilità e limita l’efficacia di un approccio DevOps (1); i silos IT e la mancanza di una cultura diffuso dello “sviluppo applicativo” limita la collaborazione e quindi ostacola l’affermarsi di strategie di governance adattative indispensabili in questo ambito (2); i processi di approvazione manuale rallentano le fasi finali di rilascio ai clienti (3).

Per questo serve decentralizzare la governance delle release (1), ma anche definire e codificare i controlli proprio sviluppando quelle Community of Practice (CoP) che incoraggiano la partecipazione attiva di tutte le parti interessate (2) e quindi ravvicinare le cadenze di rilascio utilizzando le toolchain DevOps (3) per mitigare automaticamente i rischi di conformità, governance e sicurezza prima del deployment. Sul primo aspetto, interessante per l’organizzazione del lavoro dei team, bisogna ricordare che la governance adattativa richiede uno sforzo collaborativo che deve coinvolgere tutti gli stakeholder IT.

Chi si occupa della revisione delle modifiche, di test/sviluppo, delle operations e chi decide i rilasci continuerà come prima a facilitare la governance del processo. Tuttavia, invece di operare in modo indipendente e lineare, le parti dovranno e potranno cooperare unificando gli sforzi e focalizzandosi sulle priorità. Le soluzioni software disponibili serviranno a mantenere allineati processi e squadra. 

Si tratta di urgenze confermate anche dai numeri. Sempre secondo Gartner, entro il 2023, il 90% delle organizzazioni non riuscirà a soddisfare i termini in velocità di rilascio richiesti per fornire ontime ai propri clienti (o internamente all’azienda) quello di cui hanno bisogno, se negli ambienti DevOps si persevera con un approccio di gestione dei rilasci centralizzato. Ed entro lo stesso anno si prevede già che il 75% delle applicazioni sarà rilasciato sfruttando uno strumento di orchestrazione non solo per essere più veloci, ma anche per mitigare i rischi.

Su questo punto è importante entrare un poco più nel dettaglio. Quando i team lavorano allo sviluppo e alla distribuzione di una versione c’è sempre la tendenza a “mantenere e raggruppare” in un’unica versione diversi miglioramenti applicativi. Con l’intenzione di offrire rilasci dal forte impatto.

Governance centralizzata vs Governance Adattativa
Governance centralizzata vs Governance Adattativa

Ma questa modalità di procedere – con una cadenza di rilascio non frequente e file di grandi dimensioni – spesso porta scarsi risultati. Inoltre, la mancanza di personale specializzato in sviluppo, test e rilascio mette alla prova l’organizzazione aziendale che si trova a faticare più del dovuto su ogni progetto.

Per questo orchestrazione e automazione possono invece rappresentare la soluzione. Essenziale quindi proprio l’utilizzo delle toolchain. Incorporare i controlli di rilascio in toolchain DevOps servirà ad automatizzare i processi e ridurre i tempi. Una gestione del rilascio delle versioni correttamente pianificata, il provisioning e la distribuzione del codice orchestrati permetteranno di raggiungere l’obiettivo di trasformare il rilascio delle versioni delle applicazioni in attività quotidiane dall’esito prevedibile, senza rischi.  

Un nuovo approccio

Orchestrare rilasci continuativi è un modo relativamente nuovo di pensare e distribuire applicazioni aziendali ma facilita miglioramenti continui, una migliore integrazione e la possibilità di riuscire a soddisfare per tempo le richieste aziendali. Certo il controllo dei rilasci e l’automazione della distribuzione restano fondamentali per garantire delivery regolari e fornire una base solida per la governance.

I servizi di sviluppo software saranno sempre di più componente integrante del business ma è necessario passare da tecniche di sviluppo tradizionali a metodologie Agile più versatili. Continuous Integration (CI) e Continuous Delivery (CD) per questo stanno diventando quasi parole d’ordine.

Ancora di più negli scenari cloud ibridi. Lo spiegano bene gli analisti di CCS Insight. Se si considerano gli ambienti IT ibridi che richiedono la distribuzione delle applicazioni in multicloud, è evidente la complessità che si presenta data dall’introduzione di sistemi aggiuntivi. In questi casi parti di applicazioni dovranno essere modellate e consegnate per i diversi ambienti, saranno in esecuzione con strumenti e processi diversi. Basta pensare al rilascio delle applicazioni per le diverse piattaforme mobile.

Cumulare ritardi nei rilasci per la mancanza di orchestrazione nei processi di sviluppo si riflette in modo negativo sul business. Ma gli strumenti tipici di CI/CD non sempre sono in grado di riconoscere o gestire processi complessi di rilascio per questo sarà importante scegliere le soluzioni più adeguate. Secondo tre criteri.

Queste soluzioni devono assicurare che i processi di coding e le attività siano seguiti in modo ripetibile, per incrementare la qualità e ridurrei rischi (1). Devono poter garantire efficienza e ottimizzazione all’interno del processo di rilascio complessivo, definire il timing dei rilasci garantendo che le diverse attività siano completate in modo tempestivo (2). Ed infine, assicurare trasparenza e visibilità sul processo, consentendo alle parti interessate di vedere a che punto è il lavoro su una release per gestire meglio l’intero flusso di lavoro in caso di problemi (3).

Micro Focus in questo ambito propone le soluzioni Release Control e Deployment Automation la prima valorizza i benefici di un approccio “workflow oriented” – qualsiasi modifica sulla governance delle release si riflette nei workflow. Così è possibile eseguire più flussi di lavoro in parallelo, certi che ciascuno sarà in esecuzione al ritmo proprio  mantenendo sotto controllo le possibilità di fare un passo indietro quando opportuno.
La soluzione Deployment Automation permetterà – on-premise come in cloud – di sfruttare i processi di automazione per accelerare l’implementazione riducendo i rischi. Ne parliamo in un contributo dedicato. 

Non perdere tutti gli approfondimenti della room Micro Focus Powering Digital Transformation

© RIPRODUZIONE RISERVATA