Una gestione efficace dell'intero portafoglio applicativo di un'azienda è essenziale per il successo del business, ma non viene particolarmente valorizzata nel settore IT e solitamente viene associata a costi elevati, processi manuali, errore umano e allocazione inefficace delle risorse. In pratica, è un candidato perfetto per l'automazione. La gestione automatica delle applicazioni, supportata da intelligenza artificiale (IA) e machine learning, può ridurre i costi del 40% nell'arco di 3-5 anni (a seconda del livello di maturità attuale), riducendo i costi di manodopera IT e aumentando i livelli di efficienza e produttività. Le aziende devono tuttavia comprendere che la transizione dai processi di gestione manuale delle applicazioni alla gestione automatica può essere lunga, complicata e costosa, almeno nelle prime fasi di un progetto, quando viene sostenuta la maggior parte dei costi di determinazione dell'ambito, pianificazione e avvio.

È inoltre essenziale capire che l'automazione non è un'attività isolata, ma un processo continuo nell'ambito di una strategia di miglioramento continuo. L'obiettivo a lungo termine è costituito dalla transizione dal lavoro manuale a un mondo futuristico di robot capaci di adattarsi automaticamente e utilizzare la IA per promuovere il miglioramento continuo dei sistemi.

L'automazione sta trasformando i servizi IT

Ma da dove si comincia? Nella maggior parte delle aziende, conviene procedere passo per passo, implementando un singolo progetto discreto, quindi valutandone i vantaggi e imparando dall'esperienza prima di intraprendere il passo successivo.

Gli approcci più diffusi sono due: intraprendere il progetto autonomamente o rivolgersi a un provider di servizi gestiti che supervisioni il progetto. 

Solitamente i provider di servizi dispongono di piattaforme o soluzioni di automazione pre integrate che forniscono diversi vantaggi in termini di velocità di adozione, produttività e risultati. Le soluzioni di automazione sviluppate dai clienti hanno in genere una natura frammentaria, perché si evolvono incrementalmente, pertanto impiegano più tempo per generare valore a causa delle esigenze di formazione e delle problematiche di familiarità con gli strumenti, governance e adozione.

Soprattutto, le aziende devono accollarsi completamente i costi del primo anno e, quando il sistema è finalmente in funzione, assumersi il rischio di raggiungere gli obiettivi di business associati al progetto, come il risparmio sui costi oppure un miglioramento di capacità o qualità.

La seconda opzione consiste nel sottoscrivere un contratto triennale o quinquennale per servizi gestiti, in cui l'esborso iniziale viene distribuito sull'intera durata del contratto e il provider di servizi gestiti si assume il rischio associato al raggiungimento degli obiettivi e la responsabilità della gestione ordinaria del portafoglio applicativo.

In entrambi i casi, le aziende devono essere pienamente consapevoli dei cambiamenti tecnici e culturali necessari per aumentare efficacemente i livelli di automazione nel processo di gestione delle applicazioni.

Fasi dell'automazione

Di seguito sono illustrati i passaggi principali della transizione dai processi manuali a quelli automatizzati:

Valutazione: è importante identificare la causa delle attività di supporto più dispendiose in termini di tempo. Questo aiuta a definire l'ambito dell'implementazione e le operazioni da eseguire durante le attività che richiedono la percentuale più ampia del lavoro di supporto. La valutazione è sia una singola operazione iniziale, sia un'attività continua con lo scopo di identificare i problemi e aumentare l'ottimizzazione.

Per identificare le attività dispendiose in termini di tempi che possono essere automatizzate è possibile procedere in questo modo:

  • Analizzare i ticket di supporto applicativo allo scopo di identificare gli incidenti e i problemi ricorrenti, per esaminare ed eliminare la causa alla radice. Per l'analisi degli schemi è possibile utilizzare il machine-learning, che semplifica l'analisi di enormi volumi di ticket allo scopo di identificare gli eventi più ricorrenti. È possibile eseguire esercizi di mappatura dei flussi di valore per identificare i casi di "sindrome dell'eroe", che induce a pensare che esista una sola persona in grado di risolvere determinati problemi. Questi esercizi consentono di identificare anche le situazioni in cui il passaggio di consegne fra i diversi provider di servizi non riesce a causa della rigida separazione dei domini, quali applicazioni, rete e infrastruttura. È inoltre possibile identificare le lacune di comunicazione con gli utenti, per assicurarsi che vengano informati quando un problema viene risolto.
  • Esaminare le attività non pianificate per identificare le opportunità di automatizzare le operazioni e lo sviluppo applicativo. Registrando le metriche relative al tempo medio di riparazione (MTTR, Mean Time To Repair), le aziende hanno la possibilità di identificare le aree in cui è necessario sfruttare l'automazione per incrementare i livelli di qualità e coerenza.

Onboarding: prima di eseguire il deployment degli strumenti di automazione, occorre valutare il portafoglio applicativo e impostare efficacemente il lavoro con i nuovi strumenti. Potrebbero essere necessarie attività di programmazione, modellazione o riorganizzazione dell'architettura applicativa, oppure l'aggiunta di API per compensare la mancanza di interfacce di automazione.

L'automazione potrebbe essere ostacolata dalla mancanza dei dati necessari per prendere decisioni informate sul ritorno sull'investimento (ROI) in automazione e sfruttare i vantaggi dell'analisi avanzata. A volte i dati sono compartimentati e non risultano accessibili a tutti coloro che ne hanno bisogno.

Senza un'analisi olistica è difficile identificare i componenti mancanti. È necessari analizzare tutti i servizi disponibili, cosa che richiede dati relativi a monitoraggio, cambiamenti, incidenti, gestione del ciclo di vita e automazione. 

In teoria, è possibile combinare dati provenienti da varie origini in modo da formare un data lake, in cui i processi di analisi consentono di identificare gli schemi ripetitivi al fine di identificare le opportunità di ottimizzazione. Ad esempio, è possibile utilizzare le mappe termiche per determinare quale dei componenti monitorati risente dei problemi più comuni in un determinato periodo di tempo.

Gli algoritmi IA possono essere applicati solo se si dispone dei dati sottostanti appropriati. Non si tratta di fare magie, perché senza la raccolta e la registrazione di dati appropriati la IA non è semplicemente possibile.

Creazione di una baseline: dopo l'onboarding, è essenziale creare una baseline delle applicazioni e degli ambienti operativi corrispondenti. Questa baseline è fondamentale per consentire all'automazione di identificare le applicazioni che offrono prestazioni inferiori o superiori a quelle normali. Inoltre, la strumentazione futura farà ampio uso dei dati raccolti durante la creazione della baseline.

Sviluppo di attività: l'ultima fase dell'automazione consiste nel creare le attività equivalenti che semplificano i processi automatici normalmente associati alle attività di supporto più dispendiose in termini di tempo. Di seguito sono riportati alcuni degli obiettivi più comuni:

  1. Deployment di applicazioni. Automazione del rilascio delle modifiche alle applicazioni e delle configurazioni nelle varie fasi del ciclo di vita delle applicazioni, come creazione, test, prova e produzione. Solitamente queste operazioni vengono eseguite solo una volta, con piccoli miglioramenti. Esiste l'opportunità di automatizzare i test, le pipeline di rilascio, la scansione del codice e la valutazione della build.
  2. Azioni correttive. Sviluppo del codice e degli script necessari per intraprendere le azioni correttive quando è presente un problema operativo noto. Queste sono le automazioni più costose e in genere sono uniche, perché sono molto specifiche dell'applicazione e della riparazione.
  3. Azioni ripetitive. Includono ad esempio i controlli a catena, in cui vengono eseguiti determinati controlli manuali per verificare l'integrità di un'applicazione.
  4. Manipolazione dei dati. Si verifica quando viene presentata una richiesta di trasformazione dei dati a supporto del processo applicativo.
  5. Operazioni. Sono in genere correlate all'arresto, all'avvio e alla scalabilità dei servizi, oppure al ripristino di emergenza.

Strumentazione

Per promuovere il miglioramento dell'efficienza è necessario investire in strumenti di nuova generazione. Potenziare o aggiornare gli strumenti attuali non è sufficiente, perché in questo modo non si ottengono i vantaggi di produttività garantiti dall'uso di un insieme di strumenti operativi più moderno in generale.

Tali strumenti dovrebbero includere il monitoraggio avanzato, che fornisce insight più approfonditi andando oltre l'utilizzo dell'infrastruttura. Gli strumenti moderni di gestione delle prestazioni applicative (APM, Application Performance Management) vanno oltre il monitoraggio delle prestazioni di base di un'applicazione, per comprendere le dipendenze e le relazioni fra l'applicazione e i suoi componenti. Inoltre, gli strumenti APM hanno iniziato a incorporare funzioni IA per analizzare l'intero stack applicativo, semplificando l'identificazione automatica delle cause alla radice. Si tratta di un miglioramento importantissimo per la produttività, che alleggerisce in parte il carico di lavoro associato alle attività manuali di indagine ed elaborazione intensiva dei dati.

La risoluzione automatizzata richiede ancora più strumenti, che dipendono da piattaforme, sistemi operativi e infrastruttura applicativa. Occorre inoltre prevedere l'orchestrazione dei runbook, che collega gli incidenti alla risoluzione. Per la risoluzione automatizzata sono necessarie anche interfacce di programmazione. Se non esistono, è possibile ricorrere agli strumenti di automazione robotica dei processi (RPA, Robotic Process Automation), che automatizzano le interazioni umane con le applicazioni, ma possono esporre un'interfaccia di programmazione all'azienda.

L'implementazione di tali strumenti, in aggiunta allo sviluppo dei flussi di lavoro e degli script necessari, costituisce un componente chiave dell'investimento iniziale richiesto nell'ambito dell'automazione della gestione delle applicazioni.

Cambiamento culturale

Il cambiamento culturale gioca un ruolo essenziale per l'adozione efficace dell'automazione. La necessità di presentare richieste di modifica per ogni minimo cambiamento all'ambiente frena considerevolmente l'adozione. Per semplificare l'adozione di livelli superiori di modifica autonoma è necessario perfezionare processi, flussi di lavoro e procedure di approvazione.

Occorre inoltre allinearsi con una modalità operativa DevOps, in cui i piccoli cambiamenti frequenti comportano un rischio inferiore a quello dei tradizionali cicli di rilascio a cascata.

Nel contesto dei flussi di lavoro automatizzati, una procedura di test efficace e la dimostrazione tramite un progetto pilota di adozione possono conquistare la fiducia delle parti interessate e fugare il timore che le modifiche non gestite possano costruire un rischio per l'ambiente. I flussi di lavoro di approvazione automatizzati possono prevede punti di controllo che consentono l'adozione incrementale, per passare da una modalità operativa tradizionale a una altamente automatizzata.

Implementare la gestione automatizzata delle applicazioni

In teoria la gestione automatizzata delle applicazioni dovrebbe avvenire in modo completamente automatico, in assenza di personale, con funzionalità di correzione e riparazione automatiche. Se le nuove applicazioni vengono sviluppate con tecnologie cloud-native, questa visione è molto più facile da realizzare. L'automazione viene integrata fin dall'inizio, nell'intento di arrivare a una modalità operativa che non richiede alcun intervento umano. Tuttavia, un portafoglio tipico contiene una combinazione di applicazioni legacy, mainframe e Software-as-a-Service (SaaS) che sono state sviluppate quando le tecnologie di automazione non erano ancora così sofisticate o integrate fin dall'inizio per semplificare le operazioni con le applicazioni.

Automatizzando la gestione in questi ambienti misti dovrebbe essere possibile:

Incrementare la capacità, permettendo agli utenti di eseguire le attività meno adatte alle macchine.

Migliorare la qualità, evitando gli errori e supportando il processo decisionale umano attraverso l'identificazione delle cause alla radice dei problemi.

Aumentare la velocità, riducendo i tempi di rilevamento, accelerando la risoluzione di problemi e incidenti e velocizzando il deployment del codice.

Tagliare i costi, riducendo il lavoro manuale necessario. 

Inoltre, per i CIO è importante comprendere che il processo di configurazione del sistema automatizzato è molto impegnativo di per sé. Ad esempio, per stilare un inventario delle applicazioni e valutare il portafoglio applicativo, sono necessari questionari, interviste con le principali figure interessate e confronti dei set di dati.

Anche per decidere i trattamenti da applicare, creare il toolset ed eseguire l'onboarding delle applicazioni occorre un notevole impegno da parte di un esperto nel campo. 

L'investimento in automazione crea una modalità operativa sostenibile che consente di evitare l'aumento lineare del numero di addetti al supporto in proporzione all'aumento del numero o della complessità delle applicazioni in portafoglio.

Questa ottimizzazione offre alle aziende la possibilità di risparmiare fondi che possono essere reinvestiti in iniziative per l'incremento del valore di business e aumentare le ore di attività operativa dedicate ai progetti di sviluppo.

L'esigenza di ridurre i costi di anno in anno può essere soddisfatta solamente con un'automazione completa, che deve essere utilizzata per tutte le nuove applicazioni sviluppate. Applicando i metodi DevOps a una proporzione più ampia del portafoglio, le aziende che riescono a implementare efficacemente questo cambiamento hanno la possibilità di passare da un carico di lavoro operativo estremamente impegnativo a un processo altamente automatizzato e autosufficiente.

Ulteriori informazioni sulla gestione automatica delle applicazioni.

About the Author

Informazioni sull'autore

Matt Kay è Global Product Manager della divisione Application Services di DXC Technology. È responsabile di orchestrare i team di produzione, vendita e delivery di gran parte del portafoglio dei servizi applicativi di DXC. È specializzato in gestione delle applicazioni e ha realizzato servizi di nuova generazione che sono stati commercializzati e venduti su vasta scala a diverse aziende Fortune 500. Ha anche diretto il lancio di DXC Application Service Automation, che permette ai clienti di automatizzare le aree chiave dei processi di gestione dei servizi applicativi al fine di aumentare i livelli di produttività, qualità e coerenza dei servizi.