Attualità

Scalare i processi DevOps a livello enterprise

Nelle implementazioni della metodologia DevOps è facile incorrere in difficoltà impreviste quando si cerca di ottenere su più larga scala i successi inizialmente ottenuti nei progetti pilota, condotti con piccoli team. I consigli di Mia-Platform per mettere in opera DevOps a livello d’impresa, evitando gli attriti nel lavoro degli sviluppatori con benefici in termini di efficienza e di time-to-market

Pubblicato il 15 Lug 2021

Agile al DEVSECOPS

Nelle aziende che stanno adottando la metodologia DevOps si giunge spesso al punto in cui l’ampliamento dei progetti si scontra con la scoperta di colli di bottiglia nei processi, nella scalabilità dei servizi e con la complessità di gestione dei tool. Problemi che affliggono, in particolare, gli approcci al DevOps centralizzati, implementati per ottenere standardizzazione e governance. Per prevenire questi problemi gli esperti di Mia-Platform (ne parlano Giulio Roggero, CTO, e Francesco Soncini Sessa, Head of Strategic Alliances in questo meetup di Agile Reloaded UK) propongono una soluzione platform-based, progettata per offrire la governance richiesta a livello centrale, ma anche per offrire i supporti self-service attraverso i quali i team di sviluppo applicativo possono gestire più liberamente il loro lavoro, senza passare dal team di operation a ogni rilascio. Il team centrale rimane, ma solo con funzioni di controllo e gestione della piattaforma. Questo modello integra le prerogative indicate da Gartner per le DevOps Value Stream Delivery Platform grazie a una serie di strumenti e capabilities diversificate. Vediamo di seguito con maggiore dettaglio come implementare e scalare i processi DevOps nelle grandi imprese con l’obiettivo di fornire un’esperienza il più fluida possibile ai team di sviluppo.

Far evolvere DevOps a livello d’impresa: sfide e complessità

Un supporto efficace per i team di sviluppo applicativo non può prescindere dall’applicazione delle best practice di DevOps, in particolare per quanto riguarda le responsabilità e il controllo su quando (e come) vengono distribuite nuove funzionalità. Questo è fondamentale, in particolare, se si sta adottando lo stile di sviluppo a microservizi, in cui tante componenti software indipendenti devono essere messe assieme per testare le interazioni; cosa possibile solo con un approccio self-service indipendente.

Nelle realtà che hanno approcciato DevOps da poco tempo predomina l’urgenza di mettere in relazione lo sviluppo del codice con le configurazioni e l’automazione dell’infrastruttura. In questi casi i progetti sono affidati a piccoli team dove sviluppatori e operation lavorano bene insieme, senza subire pressioni aziendali in merito a standardizzazioni e governance.
Quando il team cresce e DevOps viene applicato in misura maggiore, emergono le prime difficoltà nell’aggiungere persone, avviare nuovi team e iniziative. Con grandi team i tempi si allungano, viene meno la chiarezza della governance, diventa difficile condividere l’esperienza e la conoscenza tra le persone. In molte realtà si cerca di ovviare al problema definendo le linee guida per le pipeline di lavoro, centralizzando le operazioni sul team DevOps e regolando l’accesso ai servizi attraverso sistemi di ticketing. I vantaggi ottenuti in termini di governance e di automazione sono controbilanciati dalla perdita di autonomia dei team dello sviluppo applicativo e dai colli di bottiglia sul team di operation.

Emergono inoltre altre necessità. Per sviluppare software a microservizi serve un repository dove contenere tutto il necessario per tracciare le applicazioni, i log per monitorare l’utilizzo dell’infrastruttura e permettere al team di identificare i problemi potenziali. Usare molteplici tool e funzionalità crea complessità e costi, inficiando l’obiettivo del DevOps di ridurre il time-to-market, migliorare funzionalità e capacità end-to-end.

L’importanza di una piattaforma self-service per il supporto agli sviluppatori

Secondo gli esperti di Mia-Platform, un’organizzazione che voglia approcciare DevOps con lungimiranza e in modo scalabile deve necessariamente affidarsi a una piattaforma capace di aggregare le funzionalità utilizzate, rendendole disponibili con approccio self-service e garantendo le caratteristiche di tracciabilità e di osservabilità previste dalla metodologia.

Implementando i processi e le regole in piattaforma e offrendo funzionalità accessibili in self-service diventa più facile controllare gli aspetti che riguardano l’infrastruttura, potendo sfruttare dei template per semplificare le attività e garantire uno stile di sviluppo uniforme e garantendo il rispetto dei requisiti chiave. La modalità self-service migliora l’esperienza, la soddisfazione e l’efficacia del lavoro dei team di sviluppo; non serve chiedere autorizzazioni per poter cominciare a scrivere codice, per distribuirlo e così via. Tramite un Developer Portal il team non deve preoccuparsi di gestire il ciclo di vita del software, dell’infrastruttura, della configurazione dei microservizi, dell’implementazione, del monitoraggio, del debugging, della documentazione delle API e dell’eventuale gestione del marketplace dei servizi. Tutte queste funzionalità sono realizzate attraverso un vasto insieme integrato di tecnologie open source che altrimenti sarebbe necessario padroneggiare in prima persona. Nello sviluppo delle nuove applicazioni cloud-native in cui la logica di business è frammentata in microservizi indipendenti, il Developer Portal opera come punto di raccordo per i team impegnati nei progetti.

Come facilitare il lavoro dei team di sviluppo attraverso il provisioning delle risorse

Una quota importante del tempo di chi sviluppa è oggi assorbita da compiti quali la definizione dei requisiti d’infrastruttura e quindi dall’avvio, presso i team operativi, dei processi di richiesta dei cluster con le capacità elaborative, di rete e di security che occorrono. Il valore aggiunto di un portale interno a supporto di chi sviluppa consiste nel provisioning, in self-service, delle risorse infrastrutturali. Il team di sviluppo può creare da solo l’infrastruttura di cui ha bisogno, seguendo gli standard dell’organizzazione esattamente come accadrebbe con un fornitore esterno di servizi in cloud. Questo offre il vantaggio di poter scalare più rapidamente, quindi permettere di avviare un nuovo progetto e iniziare a scrivere codice in pochi minuti, sfruttando le regole già implementate nella piattaforma.

Il portale conosce i requisiti di autorizzazione attribuiti allo sviluppatore per creare cluster, collegarsi al database e così via, attraverso un unico modello. Un audit log conserva le azioni eseguite sull’infrastruttura, per esempio, per verificare il rispetto delle norme GDPR e delle policy di aggiornamento dei servizi. Se, per esempio, il database ha bisogno di una patch di sicurezza, si può avviare l’aggiornamento con un click, senza dover chiedere a un altro reparto di farlo. La scalabilità dell’infrastruttura è garantita in modo automatico dall’infrastruttura stessa, così come il backup, personalizzabile in base alle esigenze di conservazione dei dati. Nel portale sono notificati gli allarmi se qualcosa non dovesse funzionare correttamente. E’ inoltre possibile controllare quanta parte dell’infrastruttura si sta realmente utilizzando per tenere sotto controllo i costi e ottenere consigli su come ottimizzarli. In sintesi, con il supporto del Developer Portal è possibile scalare DevOps a livello d’impresa, sollevando i team di sviluppo dalle incombenze operative che sono causa di attriti con gli altri team dell’azienda, migliorando la qualità del lavoro e il time-to-market dei progetti.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4