Quando pensiamo all’Application Modernization ci riferiamo quindi a quel processo necessario per valutare e migliorare le applicazioni esistenti affinché rimangano al passo con gli obiettivi e con le necessità aziendali attuali, garantendone la pertinenza e l’allineamento con le aspettative degli utenti.
Portare le applicazioni legacy business-critical in infrastrutture moderne, sempre in costante miglioramento, consente alle organizzazioni di mantenere un vantaggio competitivo, nonché accelerare i progressi e perfezionare la flessibilità dei sistemi.
Perché l’Application Modernization?
L’Application Modernization trasforma le risorse adattandole, integrandole e ottimizzandole con le altre soluzioni digitali presenti in azienda. Consente di proteggere e sfruttare a pieno gli investimenti, aggiornando i propri software al fine di mettere in condizione le organizzazioni di lavorare in ottica data driven, dando così la concreta possibilità di migliorare l’esperienza cliente in modo personalizzato e coinvolgente. Ecco perché.
Purtroppo la maggior parte delle organizzazioni non riesce a comprendere questo punto. Secondo uno studio di McKinsey del 2021, molti iniziano il percorso di modernizzazione comprendendo il “perché” nella fase iniziale, dimenticandosene però nelle fasi successive.
Inoltre McKinsey sottolinea che il 55% della perdita del valore della trasformazione delle applicazioni si verifica dopo e durante l’implementazione, ed una parte considerevole c’è già dopo il primo giorno. Un dato a dir poco inquietante, a mio parere.
Questo è il motivo che mi spinge a sottolineare un concetto: è fondamentale dare priorità a tutti quegli obiettivi strategici che si allineano con la mission aziendale, sia a breve che a lungo termine. Anche dopo che questi obiettivi strategici verranno raggiunti, è importante continuare a misurarli in ogni fase del percorso, in modo da assicurarci di non deviare mai da essi.
Ma quali sono le tecnologie fondamentali per l’Application Modernization?
Partiamo citando il Cloud: questo tipo di tecnologia supporta e alimenta le iniziative di digital transformation, e vengono incluse piattaforme public cloud, private clouds ed hybrid cloud. I software containers e container management platforms, come Kubernetes, sono divenuti velocemente uno standard. I vantaggi che ne derivano sono una maggiore scalabilità, portabilità ed efficienza operativa che si adegua alle infrastrutture cloud, in particolare quando ci si riferisce ad ambienti ibridi e multi-cloud. Ora passiamo non tanto ad un’altra tecnologia, ma ad una scelta architetturale: i Microservices. Scegliere i microservices significa non creare un’applicazione con un’unica base di codice completa (monoliti), ma disaccoppiano i diversi componenti in parti più piccole affinché possano essere aggiornate e gestite in modo indipendente.
Chiudiamo il nostro breve elenco parlando di Orchestration e Automation: questa parte si riferisce all’automazione di molte delle attività operative associate ai container. È senza dubbio una tecnologia importante in quanto garantisce al team di sviluppo di gestire le operazioni in modo sostenibile e su larga scala.
Dedichiamo un paio di righe ai modelli e vediamoli in questa lista:
- Rehosting (o Lift and shift): significa spostare un’applicazione da un ambiente legacy a un’infrastruttura più recente, come un ambiente cloud. Questo implica che l’applicazione resti invariata, con modifiche minime al codice. Non è un approccio ottimale, ma senza dubbio meno intensivo.
- Refactoring: qui parliamo di ristrutturazione. Si tratta di una riorganizzazione significativa del codice per una migliore esecuzione in un nuovo ambiente (solitamente cloud). Questo tipo di approccio viene scelto quando si vuole suddividere, ad esempio, una struttura monolitica in parti più piccole (microservices).
- Replatforming: possiamo considerare questo modello la giusta via di mezzo tra quelli citati sopra. Non richiede grandi modifiche al codice o all’architettura sottostante, ma comporta aggiornamenti che consentono ad un’app legacy di sfruttare un ambiente cloud, tramite un cambio o una modifica del database back-end dell’applicazione.
Come detto sopra, la maggior parte delle organizzazioni ha investimenti significativi su applicazioni esistenti, sistemi legacy spesso mission-critical.
Pochi sono coloro che sono disposti o sono nelle condizioni per poterle ritirare e inserirne di nuovi: pensiamo solo ai costi o a eventuali perdite di produttività. Ecco perché l’Application Modernization è uno dei metodi più sensati per ottenere un vantaggio dai software e da tutto ciò che ne deriva.