Nelle aziende le applicazioni obsolete sono all’origine di una serie di problemi che vanno da una minore sicurezza alla non conformità alle regole di compliance , fino a un aumento dei costi di gestione e ad un freno all’innovazione necessaria per rimanere competitivi sul mercato. Un calo nella performance di dette applicazioni è, quindi, non solo causa di estrema vulnerabilità, ma costringe anche le organizzazioni al mantenimento di sistemi legacy improduttivi, con il conseguente dispendio di risorse e di tempo del personale IT, entrambi sottratti a una necessaria modernizzazione che apporterebbe una maggiore efficienza unita a benefici economici sul medio-lungo periodo. Data questa premessa, il percorso verso una app modernization in ottica cloud-first e mobile-first è quanto mai opportuno e va intrapreso scegliendo tra 5 diverse strategie di modernizzazione delle applicazioni: rehost, refactor, re-architect, rebuild, replace.
Conosciuta anche come modello “lift and shift”, questa strategia prevede lo spostamento delle risorse di base dell’applicazione da un data center on-premise al cloud, senza la necessità che il codice dell’applicazione subisca alcuna modifica. Pur essendo il sistema più semplice di app modernization, presenta alcuni svantaggi tra i quali: costi più elevati dei servizi in cloud, potenziali problemi di sicurezza, rallentamento del time to market, minori automazioni nelle pipeline di Continuous Integration (CI) e Continuous Deployment (CD), efficacia attenuata in termini di resilienza e fault tolerance. Per tali motivi può rappresentare il primo passo di una migrazione verso il cloud durante il quale selezionare le applicazioni da far migrare rispetto a quelle che non devono essere coinvolte nel rehosting, valutando caso per caso.
A differenza del rehost, questo approccio alla modernizzazione interviene sul codice di determinate applicazioni, sebbene con lievi cambiamenti. Cerca di risolvere l’obsolescenza dell’applicazione mediante un miglioramento della leggibilità, della manutenibilità, della riusabilità e dell’estendibilità del codice. Quest’ultimo, reso portabile, è in grado di utilizzare i vantaggi del cloud dal punto di vista della velocità, delle risorse e dei costi. Tuttavia, anche il refactoring condivide i medesimi limiti indicati sopra a proposito del rehosting e, quindi, si presta ad essere una soluzione transitoria di modernizzazione.
La strategia di re-architect agisce scomponendo e dividendo un’applicazione monolitica in un insieme di servizi che possono essere costruiti, distribuiti e gestiti indipendentemente l’uno dall'altro. Le tecnologie utilizzate includono il modello PaaS (Platform as a Service), microservizi, serverless, containerizzazione e pratiche avanzate di DevOps. I benefici di questo approccio nella modernizzazione delle applicazioni si ripercuotono immediatamente sugli obiettivi aziendali in termini di maggiore agilità del business, velocizzazione del time to market, riduzione dei costi e opportunità di reinventare la customer experience. La principale difficoltà nell’implementazione di questo metodo è quella di dover ripensare le applicazioni in termini di servizi indipendenti.
Se la precedente può essere paragonata alla ristrutturazione di una casa, il rebuilding per analogia è la ricostruzione dalle fondamenta. Operazione che potrebbe risultare più conveniente sia nel campo dell’edilizia sia in quello della modernizzazione delle applicazioni. Queste ultime, infatti, con il rebuilding avrebbero fin dall’inizio le caratteristiche proprie delle app cloud-native contribuendo ad accelerare l’innovazione, liberare valore aggiunto, contenere i costi operativi complessivi, abbassare il time to market, aumentare resilienza, agilità e flessibilità. Il rebuilding di un’applicazione richiede uno sforzo maggiore
rispetto a quello necessario per le strategie di modernizzazione indicate in precedenza. È anche vero che tale sforzo nel panorama attuale è facilitato dai progressi di linguaggi, framework e tecnologie. Basti pensare che la programmazione di livello inferiore, un tempo richiesta per la costruzione delle applicazioni, oggi è di solito astratta e perciò semplifica anche la ricostruzione.
Con questa strategia è possibile sostituire, tramite una soluzione più agile basata sul cloud, un’applicazione legacy che ha alcune funzioni ancora utili. Un esempio classico è la sostituzione di una versione on-premise di Microsoft Exchange Server con Office 365 basato su cloud. I vantaggi di questa soluzione sono i costi operativi minimi, un alto risparmio potenziale, il miglioramento della sicurezza e il supporto applicativo demandato all’esterno dell’organizzazione. L’unico svantaggio è che il replacement non sempre è applicabile. Per questo, prima di optare per una delle 5 strategie di modernizzazione elencate, è opportuno affidarsi a un partner che svolga un’analisi accurata delle applicazioni presenti in azienda e suggerisca il metodo più adeguato a una efficace modernizzazione applicativa