La modernizzazione mainframe è raramente una singola decisione. È una scelta tra diverse strategie distinte, ognuna con un profilo di costo, tempi e rischio molto diverso, e la risposta giusta dipende dai vostri obiettivi di business piuttosto che da preferenze tecnologiche. Scegliere di “riscrivere tutto” quando basterebbe un replatform, o un “lift and shift” quando il vero problema è codice non manutenibile, è il modo in cui i programmi di modernizzazione sprecano milioni.

Questa guida confronta le principali strategie di modernizzazione, quando ciascuna ha senso e come scegliere.

TL;DR

  • Le strategie principali sono rehost, replatform, refactor, rearchitect/rewrite, replace e retire; la maggior parte è comunemente raggruppata in rehost, replatform e refactor/rewrite
  • Il rehosting è il più rapido ed economico ma cambia meno; il rewrite offre il risultato più moderno al costo e al rischio più elevati
  • La scelta giusta dipende dai driver di business: riduzione dei costi, agilità, rischio, disponibilità di competenze e stato del codice esistente
  • La maggior parte dei grandi programmi nel Regno Unito combina le strategie sull’intero parco applicativo anziché applicare un unico approccio a tutto

Perché modernizzare il mainframe

I driver sono coerenti tra le aziende del Regno Unito: il bacino di competenze COBOL e mainframe sta andando in pensione, i costi operativi del mainframe sono elevati, i sistemi sono difficili da modificare rapidamente e la loro integrazione con moderne piattaforme cloud, dati e IA è complessa. Non fare nulla comporta un rischio crescente man mano che le competenze scompaiono. La domanda di solito non è se modernizzare, ma come.

Le strategie di modernizzazione mainframe

I framework di settore elencano sei o sette opzioni; nella pratica si raggruppano in poche scelte significative.

Rehost (“Lift and Shift”)

Spostare l’applicazione esistente, sostanzialmente invariata, su una nuova infrastruttura, ad esempio emulando l’ambiente mainframe su cloud o hardware standard. Il codice COBOL resta sostanzialmente com’è.

  • Pro: Opzione più rapida ed economica; basso rischio di delivery; uscita immediata dai costi di hardware e licenze mainframe.
  • Contro: Non cambia quasi nulla del codice. Avete ancora COBOL, ancora il problema delle competenze e guadagnate poca agilità. È una leva sui costi, non una modernizzazione del software stesso.
  • Ideale per: Organizzazioni che devono uscire rapidamente dall’hardware mainframe e rinviare una modernizzazione più profonda.

Replatform

Passare a una nuova piattaforma con alcune modifiche, ad esempio ricompilare il COBOL per eseguirlo su Linux o nel cloud, o spostare il database da DB2 a un equivalente moderno, senza riscrivere la logica di business.

  • Pro: Benefici significativi di infrastruttura e costi con sforzo moderato; mantiene intatta la logica di business collaudata; rischio inferiore a un rewrite.
  • Contro: L’applicazione è fondamentalmente ancora la vecchia applicazione; i guadagni di agilità sono limitati e il problema delle competenze a livello di codice persiste.
  • Ideale per: Organizzazioni che desiderano benefici di cloud e costi preservando la logica funzionante e limitando il rischio.

Refactor

Ristrutturare e migliorare il codice esistente, e spesso convertirlo in un linguaggio moderno, senza cambiarne il comportamento esterno. Qui si colloca la conversione automatizzata da COBOL a un linguaggio moderno, che produce codice manutenibile in un linguaggio con un solido bacino di sviluppatori.

  • Pro: Risolve il problema delle competenze passando a un linguaggio mainstream; migliora la manutenibilità; preserva il comportamento; può essere fatto in modo incrementale.
  • Contro: Più impegno di rehost o replatform; richiede rigorosi test di parità dell’output; la conversione automatizzata necessita comunque di lavoro umano su accesso ai dati e precisione.
  • Ideale per: Sistemi la cui logica è solida ma il cui linguaggio e struttura sono il problema. Questo è il caso ideale per la maggior parte delle modernizzazioni COBOL.

Rearchitect / Rewrite

Ricostruire il sistema, riprogettandone l’architettura (ad esempio in servizi o un design cloud-native) e reimplementando la logica di business su uno stack moderno.

  • Pro: Offre il risultato più moderno, agile e manutenibile; rimuove completamente il debito tecnico accumulato.
  • Contro: Il costo più elevato, i tempi più lunghi e il rischio più grande; reimplementare da zero decenni di regole di business non documentate è dove i grandi programmi falliscono.
  • Ideale per: Sistemi realmente inadatti allo scopo, dove il business ha bisogno di capacità che il design attuale non può supportare.

Replace e Retire

Sostituire il sistema con un prodotto commerciale pronto all’uso (COTS) o SaaS, oppure dismetterlo del tutto se non è più necessario.

  • Pro: Può essere il risultato più conveniente quando esiste un prodotto adeguato o la funzione è obsoleta.
  • Contro: I COTS raramente corrispondono esattamente a una logica su misura; migrazione e change management sono rilevanti; non praticabile per sistemi veramente differenzianti.
  • Ideale per: Funzioni commodity (ad esempio buste paga o contabilità generale) dove esiste un prodotto maturo.

Confronto tra le strategie

StrategiaCostoTempiRischioBeneficio di modernizzazione
RehostPiù bassoPiù breveBassoBasso (solo infrastruttura)
ReplatformBasso-medioBreve-medioBasso-medioMedio
RefactorMedioMedioMedioAlto (codice e competenze)
RewritePiù altoPiù lungoAltoPiù alto
Replace / RetireVariabileVariabileMedio-altoVariabile

Come scegliere

Lasciate decidere i driver di business, non la tecnologia:

  • Il driver principale è il costo e un’uscita rapida dall’hardware: iniziate con rehost o replatform.
  • Il driver principale è la carenza di competenze e la manutenibilità: refactor, in genere convertendo il COBOL in un linguaggio mainstream.
  • Il driver principale è una nuova capacità che il vecchio design non può supportare: rearchitect o rewrite delle parti che ne hanno bisogno.
  • La funzione è una commodity: valutate un replace.

Nella pratica, i grandi parchi applicativi britannici combinano gli approcci: replatform delle parti stabili, refactor del codice difficile da manutenere, rewrite dei pochi sistemi che necessitano di nuove capacità e retire di ciò che non è più utilizzato. Se il percorso scelto prevede la conversione del COBOL in un linguaggio moderno, la panoramica sulla migrazione COBOL confronta i linguaggi di destinazione come C#, Java, Python, Go, C++ e Rust, e la guida ai costi della migrazione COBOL illustra budget realistici.

Il servizio Mecanik di migrazione mainframe legacy copre la dismissione dell’infrastruttura insieme alla migrazione del codice, e il servizio di modernizzazione COBOL copre il lavoro di refactor e conversione a livello di codice.

Punti chiave

  • La modernizzazione mainframe è una scelta tra rehost, replatform, refactor, rewrite e replace/retire, ciascuno con un profilo costo-rischio distinto.
  • Il rehost è il più rapido ed economico ma modernizza meno; il rewrite è il più trasformativo ma il più costoso e rischioso.
  • Il refactoring (spesso la conversione del COBOL in un linguaggio moderno) è il caso ideale quando la logica è solida ma il linguaggio e le competenze sono il problema.
  • La maggior parte dei grandi programmi combina le strategie sull’intero parco; lasciate decidere i driver di business, non le preferenze tecnologiche.

Domande frequenti (FAQ)

Qual è la differenza tra il rehosting e il refactoring di un’applicazione mainframe? Il rehosting (“lift and shift”) sposta l’applicazione esistente su una nuova infrastruttura con il codice sostanzialmente invariato, quindi affronta il costo dell’hardware ma non il problema del codice o delle competenze. Il refactoring ristruttura e spesso converte il codice in un linguaggio moderno preservandone il comportamento, il che risolve il problema della manutenibilità e delle competenze.

È meglio riscrivere o migrare il COBOL? Dipende dal sistema. Se la logica di business è solida ma il linguaggio è il problema, convertire (refactoring) il COBOL in un linguaggio moderno è di solito a minor rischio e costo di un rewrite. Un rewrite completo è giustificato solo quando il design attuale non può supportare le capacità di cui il business ha bisogno.

Quale strategia di modernizzazione mainframe è la più economica? Il rehosting è in genere il più economico e rapido, ma offre la minor modernizzazione perché l’applicazione resta fondamentalmente la stessa. Il replatforming aggiunge un beneficio moderato a un costo moderato. Il rewriting è il più costoso.

Possiamo modernizzare un mainframe in modo incrementale? Sì. La modernizzazione incrementale (strangler fig ) sostituisce o converte parti del sistema una alla volta, riducendo il rischio del big-bang. La maggior parte dei grandi programmi britannici combina le strategie e le distribuisce in modo incrementale sull’intero parco.

Qual è il rischio maggiore nella modernizzazione mainframe? Reimplementare decenni di logica di business non documentata, specialmente in un rewrite completo, e test di parità dell’output inadeguati. Le strategie che preservano la logica collaudata (replatform, refactor) comportano meno di questo rischio rispetto a un rewrite costruito da zero.