Legacy modernization: approcci e strategie

triangolo

Legacy application modernization: perché innovare i sistemi legacy 

La legacy modernization è il processo di aggiornamento, ammodernamento e innovazione degli applicativi più datati ancora in uso. I sistemi legacy sono software obsoleti dal punto di vista tecnologico, ma centrali per l’azienda poiché, spesso, gestiscono i principali processi business.

Proprio la loro centralità è uno dei motivi di mancato intervento: pensiamo ad esempio al settore bancario dove software scritti in cobol gestiscono i processi di core banking, sui quali vengono eseguite migliaia di operazioni ogni giorno. Questi applicativi, seppur obsoleti, spesso non presentano problematiche gravi dal punto di vista funzionale: sono normalmente sistemi robusti e affidabili. Il problema si pone invece sul fronte dell’agilità, della scalabilità, della flessibilità e dal punto di vista dei costi di manutenzione estremamente alti.

Perché i software legacy sono svantaggiosi per le aziende?

  • Assorbono tra il 70 e l’80% del budget IT a causa degli alti costi di manutenzione, a discapito di interventi migliorativi e di ammodernamento;
  • Non permettono di migliorare l’offerta dal punto di vista della customer experience;
  • Nascondono numerose vulnerabilità lato sicurezza, mettendo a rischio i dati, anche sensibili, dei clienti;
  • Presentano un problema nel reperimento delle risorse umane skillate sui vecchi linguaggi;
  • Presentano limiti all’utilizzo della tecnologia mobile;
  • Presentano spesso problemi di incompatibilità e impongono limiti stringenti all’innovazione;
  • Presentano costi infrastrutturali e di manutenzione legati alle dipendenze tecnologiche.

Cosa puoi ottenere da un processo di modernizzazione dei software legacy?

A seconda della strategia di modernizzazione scelta, ci sono diversi interventi che possono migliorare la performance applicativa. A seconda delle esigenze e dello scenario attuale, l’azienda può considerare di intervenire per minimizzare gli svantaggi dei sistemi legacy, rendendoli più agili, più facilmente manutenibili e pronti ad evolvere in futuro.

La modernizzazione dei sistemi legacy permette di integrare il parco applicativo già esistente con nuove soluzioni che ottimizzano i processi e ne riducono i costi. In un mercato in continua evoluzione, ad alta competitività e con i bisogni degli utilizzatori finali sempre più mutevoli, modernizzare i software obsoleti è un investimento fondamentale che non può essere rimandato.

Legacy software modernization: di quale strategia hai bisogno?

La legacy modernization è un insieme di strategie che permette alle aziende di migliorare i propri sistemi informatici e attivare best practice moderne come l’automazione.

Essendo un insieme di interventi diversi, con obiettivi diversi e processi più o meno impattanti, la fase di analisi AS-IS è fondamentale.

Solo dall’analisi puntuale dello scenario attuale, è possibile identificare quali siano gli interventi necessari: portata avanti con il cliente, rappresenta non solo la fase di raccolta requisiti ma anche di confronto sugli obiettivi più a lungo termine.

La modernizzazione include quindi una serie di approcci, tecniche e strategie, diverse tra loro ma spesso intrecciate:

  1. Refactoring
  2. Replatforming
  3. Rearchitecting
  4. Rebuilding

Il refactoring è il processo di revisione e ottimizzazione del codice, così da renderlo più stabile e sicuro, eliminandone ridondanze e riducendone la complessità. Il codice risulta così più “pulito” e facile da manutenere. Il comportamento esterno e funzionale dell’applicativo non cambia, ma la qualità del codice migliora e si evita l’accumulo di debito tecnico.

Per replatform invece si intende il passaggio dell’applicativo su un’altra piattaforma di runtime e, a questo proposito, si fa spesso riferimento alla containerizzazione degli applicativi. Questo perché spostare un applicativo su un container comporta una serie di vantaggi che nessun’altra soluzione tecnologica è in grado di fornire ed è spesso il primo passo verso un processo graduale di modernizzazione. La portabilità dei container, ossia la possibilità di eseguirlo e replicarlo in qualsiasi ambiente, la loro velocità di esecuzione e il ridotto consumo di risorse, sono tutti elementi che agevolano le altre soluzioni di modernizzazione software.

Ad esempio: proprio il passaggio di un’architettura monolitica su un container, il cosiddetto approccio lift and shift, permette di eseguire il rearchitecting in maniera graduale, con lo spezzettamento delle funzionalità in servizi, fino alla finale dismissione del monolite.

Proprio la migrazione dell’architettura software è una delle principali soluzioni di software modernization: il passaggio da un’architettura monolitica a una a servizi liberamente accoppiati permette di:

  • Ottenere un applicativo più resiliente ai guasti grazie all’indipendenza dei singoli servizi;
  • Aggiornare più velocemente gli applicativi grazie all’isolamento;
  • Agire su porzioni di codice più piccole e quindi più comprensibili e facili da manutenere;
  • Avere scalabilità a livello del singolo servizio, allocando le risorse dove necessario;
  • Rilasciare nuove funzionalità più velocemente e ridurre il time to market.

Infine, le aziende che vogliono iniziare un processo di modernizzazione possono valutare la strategia di rebuild dell’applicativo ossia della riscrittura del software in un linguaggio più moderno, performante e innovativo.

Abbandonare un linguaggio legacy e riscrivere il software in un linguaggio moderno è fondamentale se l’azienda desidera sfruttare al massimo il vantaggio competitivo offerto dal cloud computing. Spesso, infatti, l’applicazione viene riscritta direttamente cloud-native.

Rendere un applicativo cloud- ready significa proprio questo: modernizzarne i componenti e aggiornarne architettura e linguaggio in modo da favorirne la migrazione al cloud e sfruttarne tutti i vantaggi.

La legacy modernization è quindi il processo di revisione e trasformazione degli applicativi più datati e obsoleti che li rende più flessibili, agili, facilmente integrabili e ne riduce i vincoli e limiti tecnologici che impediscono l’innovazione continua.

 

Scopri quale strategia serve alla tua azienda