Emanuele Cagnola, Italy director di Dynatrace, ci parla del mondo DevOps e ci spiega come l’intelligent software può accelerare il successo digitale.
È innegabile che la domanda di servizi digitali sia alle stelle, insieme alle aspettative degli utenti.
I consumatori desiderano esperienze connesse senza interruzioni e si prevede che le organizzazioni investiranno 1,78 trilioni di dollari nella trasformazione digitale nel 2022, rispetto a 1,31 trilioni di dollari nel 2020 per stare al passo con queste richieste.
Questo rapido ritmo di trasformazione ha esercitato una pressione sempre maggiore sui team DevOps per operare più velocemente senza compromettere la qualità. Ora ci si aspetta che realizzino e lancino aggiornamenti più piccoli e incrementali alle applicazioni più volte al giorno. Verosimilmente, solo pochi anni fa, i team avrebbero fornito un grande aggiornamento a trimestre.
Con questa pressione crescente, anche le grandi aziende che esemplificano i più alti standard di esperienza digitale non sempre riescono a farlo bene.
L’interruzione di Facebook di ottobre, che ha impedito agli utenti di accedere ai suoi servizi per sei ore, è un esempio di come anche una piccola modifica della configurazione dell’infrastruttura digitale crei il caos. Affinché le organizzazioni possano innovare senza compromettere l’esperienza degli utenti, hanno bisogno di pratiche di sviluppo e delivery moderne e intelligenti. Questo può ridurre il rischio di errori imprevisti, migliorare la qualità del codice e alleviare il carico sui team DevOps.
Qualità compromessa per la velocità
I cicli di innovazione sono diventati più rapidi. Una recente ricerca di Dynatrace evidenzia che le organizzazioni prevedono che la frequenza di rilascio delle loro versioni software aumenterà del 58% entro il 2023. Ma molti avranno difficoltà a tenere il passo, poiché i team DevOps già lottano con i carichi di lavoro esistenti.
Innumerevoli ore sono state investite nello sviluppo di aggiornamenti per centinaia di update di dispositivi, applicazioni e sistemi operativi. Con l’aumento della complessità dell’IT, l’impegno richiesto ai team DevOps crescerà ulteriormente.
Tuttavia, scrivere codice è solo metà della battaglia. I lunghi test manuali, le toolchain sempre più frammentate e l’esplosione di dati risultante dal passaggio al cloud hanno aggiunto difficoltà al processo di sviluppo.
Con così tanto da fare e senza risorse aggiuntive, la pressione sui team DevOps può costringerli a sacrificare la qualità del codice. Di conseguenza, è più probabile che gli errori di codifica scivolino attraverso la rete, mettendo a rischio i servizi digitali e le esperienze degli utenti.
Anche piccoli cambiamenti comportano rischi
In aggiunta alla sfida, può essere difficile comprendere il vero impatto di una nuova versione del software finché non viene pubblicata. Peggio ancora, è spesso difficile annullare la modifica nel caso in cui crei un problema e ripristinare una versione precedente e stabile dell’applicazione.
Gran parte di questa sfida è creata dalla complessità degli ambienti multicloud di oggi. I servizi digitali sono costituiti da centinaia di milioni di righe di codice e miliardi di dipendenze, che si estendono su più piattaforme e diversi tipi di infrastruttura.
Questa interconnessione rende difficile per i team DevOps comprendere le conseguenze delle modifiche che apportano, per quanto insignificanti possano sembrare.
Ha anche creato un sovraccarico di avvisi, poiché gli strumenti di monitoraggio del cloud acquisiscono un volume, una velocità e una varietà di dati che vanno oltre la capacità umana di gestione. Spesso è impossibile per questi team trovare rapidamente la singola riga di codice che ha provocato un problema.
Un approccio più automatizzato e intelligente
Per evitare che codice di scarsa qualità raggiunga la produzione e garantire un’esperienza utente senza interruzioni, le organizzazioni necessitano di un approccio più intelligente allo sviluppo del software.
Questo inizia con l’applicazione dell’automazione continua alle attività ripetibili, che consente ai team DevOps di lavorare su attività a più alto valore. In primo luogo, le organizzazioni dovrebbero stabilire gate di qualità automatizzati che misurino le nuove build rispetto agli obiettivi di livello di servizio (SLO) per gli indicatori chiave delle prestazioni come il tempo di risposta o il throughput. Ciò significa che le nuove modifiche al codice non possono andare in esecuzione a meno che non soddisfino i requisiti minimi per la user experience, il che impedisce un impatto negativo imprevisto.
Nel caso in cui qualcosa vada storto, le organizzazioni possono migliorare i tempi di risoluzione sfruttando capacità di osservabilità end-to-end unificate. Questo livello di osservabilità fornisce ai team DevOps informazioni dettagliate a livello di codice su tutte le build di software, app e servizi su qualsiasi piattaforma cloud, in fase di sviluppo o già distribuita.
La combinazione di questa osservabilità con AIOps – l’uso dell’AI nelle operation – può portare questi insight verso un ulteriore step, assegnando automaticamente la priorità ai problemi in base al loro impatto sul business. Questo consente alle organizzazioni di identificare rapidamente gli avvisi più urgenti e risolverli, prima che si verifichino dei problemi per gli utenti.
Diminuire la pressione e raggiungere il successo
Il miglioramento delle pratiche di sviluppo tramite AIOps, automazione e osservabilità può mitigare significativamente la pressione sui team DevOps e aiutarli a tenere il passo con la trasformazione digitale. Poiché le organizzazioni continuano a rilasciare software più velocemente, è sempre più importante integrare insight continui e automatici nell’intero ambiente dei servizi digitali, per accelerare la trasformazione e fornire esperienze software più fluide.