Adottare una strategia di modernizzazione delle applicazioni estesa all'intera organizzazione consente di migliorare i processi esistenti e di avviarsi verso una trasformazione digitale completa, destinata a divenire - per le aziende - il vero fattore differenziante sul mercato. Se ne parlerà al prossimo IBM Think Summit Italy, durante il quale si avrà modo di comprenderne approccio metodologico e soluzioni tecnologiche.

Contenuto sponsorizzato


Nel processo di completamento, di realizzazione a trecentosessanta gradi della trasformazione digitale, quello della modernizzazione delle applicazioni ormai obsolete (legacy) – ancora presenti all’interno di numerose organizzazioni – costituisce una fase nodale, finalizzata a mantenere tali applicazioni al passo coi tempi, abilitandole alle funzionalità e ai servizi resi disponibili dalle tecnologie cloud native.

In particolare, in base ai dati contenuti nel rapporto annuale 2021 dell’ISTAT sulla situazione del nostro Paese, tra il 2018 e il 2020 i servizi cloud sono stati adottati da una quota di imprese passata dal 23 al 59% e dall’11 al 32% per quanto riguarda i servizi evoluti, grazie anche – si specifica nel documento – agli incentivi fiscali contenuti nel Piano Nazionale Impresa 4.0, varati dal Governo nella Legge di Bilancio 2020 per agevolare gli investimenti in tecnologie digitali.

La modernizzazione delle applicazioni si inserisce, dunque, in una strategia di ampio respiro, che guarda all’ottimizzazione di tutti i modelli operativi aziendali e dei relativi costi – con conseguente aumento della produttività e delle opportunità di innovazione – e in cui il cloud è divenuto un elemento di spinta verso le potenzialità della digitalizzazione.

Alla radice di ogni percorso verso la modernizzazione vi è, per le aziende, la volontà di trasformare l’intera attività di business e di restare competitive sul mercato. Vediamo per mezzo di quali metodologie e tecnologie è possibile farlo.

Dalle applicazioni monolitiche alle architetture basate sui microservizi

Come primo punto, soffermiamoci sulle caratteristiche delle applicazioni legacy, spesso basate su un’architettura software monolitica, ossia poco flessibile, complessa da aggiornare e da ridimensionare, se non investendo non poche risorse in termini di tempo e di denaro.

Ebbene, la modernizzazione delle applicazioni passa attraverso l’eliminazione della rigidità delle applicazioni legacy, per migrare verso applicazioni capaci di sfruttare i vantaggi dati dalla flessibilità e dalla scalabilità nell’utilizzo delle risorse IT che il cloud è in grado di offrire.

Prima, però, di intervenire, è consigliabile un’accurata valutazione delle applicazioni in uso all’interno della propria organizzazione, che ne classifichi il loro grado di valore e di importanza – per l’esperienza cliente e per il futuro del business – insieme allo sforzo necessario a innovarle. In base a tale inventario, le applicazioni ritenute di alto valore e dal “basso sforzo” saranno le prime “candidate” del progetto di modernizzazione.

La difficoltà nell’aggiornare e ridimensionare un’applicazioni monolitica deriva dal fatto che i suoi componenti sono strettamente integrati tra loro in un singolo programma, al punto che una modifica nel codice di un solo componente implica l’aggiornamento dell’intera applicazione, limitando, in questo modo, l’agilità dei servizi IT e la capacità di innovarli rapidamente.

Ecco, allora, che modernizzare un’applicazione di questo tipo significa scomporla, slegarla, portarla a quella che è un’architettura basata sui microservizi – approccio architetturale nativo del cloud – in cui la singola applicazione viene suddivisa nelle sue funzioni di base (“servizi”), accoppiate in modo lasco e tali da poter essere implementate e ridimensionate indipendentemente l’una dall’altra.

Tra i vantaggi dell’architettura basata sui microservizi, vi sono la possibilità di aggiornare il codice più facilmente (in quanto, nuove funzioni possono essere aggiunte senza mettere mano all’intera applicazione) e di utilizzare diversi linguaggi di programmazione per differenti componenti.

Le tecnologie che supportano la modernizzazione delle applicazioni

Esistono diverse tecnologie in grado di facilitare i processi di modernizzazione all’interno delle aziende. Tra queste, alcune si sono affermate come veri e propri catalizzatori delle strategie di modernizzazione delle applicazioni.

È il caso, ad esempio, della containerizzazione, che rimanda all’impacchettamento – in una struttura logica detta “container” – di un’applicazione, come fosse un singolo pacchetto software che raggruppa il codice dell’applicazione stessa insieme a tutti i relativi file di configurazione.

La containerizzazione consente agli sviluppatori di creare e distribuire applicazioni in modo più rapido e sicuro, indipendentemente dal fatto queste siano basate su un’architettura software monolitica o su un’architettura basata sui microservizi.

Le nuove applicazioni basate su cloud possono essere costruite da zero come microservizi containerizzati, suddividendo un’applicazione complessa in una serie di servizi più piccoli, specializzati e gestibili.

Ma all’interno delle organizzazioni possono essere presenti centinaia o migliaia di container. E questo pone un problema di gestione, che rende necessaria l’adozione di una piattaforma open source di orchestrazione dei contenitori (Kubernetes ne è un esempio), capace di automatizzare l’implementazione, la gestione e la scalabilità delle applicazioni containerizzate.

Tra le molteplici attività correlate ai contenitori che questa piattaforma è capace di pianificare e di automatizzare, sono comprese la possibilità di modificare un’implementazione, ad esempio avviandola, mettendola in pausa o riprendendola; la possibilità di utilizzare, quando si verificano picchi di traffico dei contenitori, il bilanciamento del carico e di scalarlo per distribuirlo in tutta la rete e, in caso di errore di un contenitore, di riavviarlo o sostituirlo automaticamente, arrivando a eliminare i contenitori che non soddisfano i requisiti di integrità.

Modernizzazione delle applicazioni: l’intelligenza artificiale come ulteriore acceleratore

Può accadere che le aziende trasferiscano su cloud solo i carichi di lavoro più semplici e di minore complessità, rimandando la modernizzazione delle proprie applicazioni mission-critical a causa della loro incompatibilità con l’architettura cloud-native.

Si tratta, in molti casi, di applicazioni legacy molto datate, che abbracciano generazioni di tecnologie software e che contengono milioni di righe di codice, il cui processo di aggiornamento e di ridimensionamento risulta particolarmente complicato.

Diventano, in tali situazioni, strategiche le tecniche che fanno capo all’ambito di studi dell’intelligenza artificiale e, più in particolare, avanzati sistemi AI (tra cui ricordiamo quelli sviluppati da IBM Research) che consentono di automatizzare le attività di modernizzazione ad alta intensità di risorse, fornendo strumenti atti a guidare le decisioni da parte delle organizzazioni e ad aiutarle ad accelerare l’intero percorso.

Si tratta, più nel dettaglio, di strumenti di pianificazione dalle funzionalità, tali da delineare in modo automatizzato gli step per la trasformazione di una determinata applicazione, apprendendo continuamente dai feedback provenienti dal panorama tecnologico in evoluzione: una sorta di GPS per la modernizzazione delle applicazioni, che traccia il percorso ideale per l’ottimizzazione.

In altri casi, si tratta di sistemi AI basati su algoritmi di machine learning in grado di determinare la fattibilità della containerizzazione per il portafoglio di applicazioni analizzato: in estrema sintesi, di uno strumento che valuta se una data applicazione potrà migrare verso un’applicazione cloud oppure no.

Infine, un altro esempio di funzioni AI avanzate per la modernizzazione delle applicazioni è rappresentato da quelle atte ad automatizzare il lungo e laborioso processo di comprensione e di interpretazione del codice legacy in quei casi in cui gli sviluppatori che vi hanno lavorato inizialmente non sono più a disposizione. Lo strumento che possiede tali funzioni è basato su una tecnologia di intelligenza artificiale che consente di comprendere il codice, il suo contesto di regole aziendali e di dipendenze dai dati e, sulla base di questi fattori, di consigliare il set ottimale di microservizi per modernizzare l’applicazione in questione.


Applicazioni esistenti e nuove app cloud native continueranno a coesistere per i prossimi dieci anni, poiché i leader IT modernizzano in modo incrementale app e carichi di lavoro utilizzando container e microservizi, connettendosi e aggiungendo valore agli investimenti esistenti nel data center. L’integrazione di app nuove con quelle già presenti nell’ecosistema applicativo aziendale diventa imprescindibile. Ma come si procede?

Lo scopriremo nel corso della sessione “La modernizzazione delle applicazioni senza confini di piattaforma”, durante il prossimo IBM Think Summit Italy, attraverso il racconto di alcuni casi aziendali per comprendere approccio metodologico e soluzioni tecnologiche.

Info ed iscrizioni: https://bit.ly/ThinkSummitITALY

modernizzazione applicazioni banner IBM Think 2021
Scritto da:

Paola Cozzi

Giornalista Leggi articoli Guarda il profilo Linkedin