Condividi tramite


Strategie di migrazione delle applicazioni mainframe

Quando la maggior parte dei team esegue la migrazione delle applicazioni da ambienti mainframe ad Azure, in genere segue un approccio pragmatico: riutilizzare ovunque e quando possibile. Avvia quindi una distribuzione in più fasi in cui le applicazioni vengono riscritte o sostituite.

La migrazione delle applicazioni prevede in genere una o più delle strategie seguenti:

  • Rehosting: Trasferire codici, programmi e applicazioni esistenti dal mainframe. Ricompilare il codice da eseguire in un emulatore mainframe ospitato in un'istanza cloud. Questo approccio inizia in genere con lo spostamento di applicazioni in un emulatore basato sul cloud e quindi la migrazione del database a un database basato sul cloud. Alcune attività di progettazione e refactoring sono necessarie con questa strategia, insieme alle conversioni di dati e file.

    In alternativa, è possibile eseguire il rehosting usando un provider di hosting tradizionale. Uno dei principali vantaggi del cloud è l'esternalizzazione della gestione dell'infrastruttura. Trova un fornitore di data center che ospiti i tuoi carichi di lavoro mainframe. Questo modello può acquistare tempo, ridurre il blocco fornitore e produrre risparmi intermedi sui costi.

  • Ritirarsi: Ritirare le applicazioni non più necessarie prima della migrazione.

  • Ricostruire: Alcune organizzazioni scelgono di riscrivere completamente i programmi usando tecniche moderne. Dato il costo aggiuntivo e la complessità di questo approccio, non è così comune come un approccio "lift-and-shift". Spesso dopo questo tipo di migrazione, è opportuno iniziare a sostituire moduli e codice usando motori di trasformazione del codice.

  • Sostituire: Questo approccio sostituisce la funzionalità mainframe con funzionalità equivalenti nel cloud. Software as a Service (SaaS) è un'opzione. Con Saas si usa una soluzione creata in modo specifico per un problema aziendale, ad esempio finanza, risorse umane, produzione o pianificazione delle risorse aziendali. Inoltre, molte applicazioni specifiche del settore sono ora disponibili per risolvere i problemi che soluzioni mainframe personalizzate usate per risolvere in precedenza.

Per iniziare, pianificare i carichi di lavoro di cui si vuole eseguire la migrazione iniziale e quindi determinare i requisiti per lo spostamento di applicazioni associate, le codebase legacy e i database.

Emulazione mainframe in Azure

I servizi di Azure possono emulare gli ambienti mainframe tradizionali. È quindi possibile riutilizzare il codice e le applicazioni mainframe esistenti. È possibile emulare componenti server comuni, ad esempio OLTP (Online Transaction Processing), batch e sistemi di inserimento dati.

Sistemi OLTP

Molti mainframe hanno sistemi OLTP che elaborano migliaia o milioni di aggiornamenti per un numero elevato di utenti. Queste applicazioni usano spesso software di elaborazione delle transazioni e gestione dello schermo, ad esempio Customer Information Control System (CICS), Information Management System (IMS) e Terminal Interface Processor (TIP).

Quando si spostano applicazioni OLTP in Azure, gli emulatori per i monitoraggi TP (MainFrame Transaction Processing) possono essere eseguiti come infrastruttura distribuita come servizio (IaaS) usando macchine virtuali (VM) in Azure. I server Web possono anche implementare la gestione dello schermo e la funzionalità del modulo. Combinare questo approccio con le API di database, ad esempio AdO (ActiveX Data Objects), Open Database Connectivity (ODBC) e Java Database Connectivity (JDBC) per l'accesso ai dati e le transazioni.

Aggiornamenti batch vincolati dal tempo

Molti sistemi mainframe eseguono aggiornamenti mensili o annuali di milioni di record di conto, ad esempio quelli usati in banche, assicurazioni e enti pubblici. I mainframe gestiscono questi tipi di carichi di lavoro offrendo sistemi di gestione dei dati a velocità effettiva elevata. I processi batch mainframe sono in genere seriali e dipendono dalle operazioni di input e output al secondo (IOPS) fornite dal backbone mainframe per le prestazioni.

Gli ambienti batch basati sul cloud usano reti di calcolo parallele e ad alta velocità per le prestazioni. Se è necessario ottimizzare le prestazioni batch, Azure offre varie opzioni di calcolo, archiviazione e rete.

Sistemi di inserimento dati

I mainframe inseriscono grandi batch di dati da vendita al dettaglio, servizi finanziari, produzione e altre soluzioni per l'elaborazione. Con Azure è possibile usare semplici utilità della riga di comando, ad esempio AzCopy , per copiare dati da e verso una posizione di archiviazione. È anche possibile usare il servizio Azure Data Factory per inserire dati da archivi dati diversi e per creare e pianificare flussi di lavoro basati sui dati.

Oltre agli ambienti di emulazione, Azure offre servizi di analisi e piattaforma distribuita come servizio (PaaS) che possono migliorare gli ambienti mainframe esistenti.

Eseguire la migrazione di carichi di lavoro OLTP ad Azure

L'approccio lift-and-shift è l'opzione no-code per eseguire rapidamente la migrazione di applicazioni esistenti ad Azure. Ogni applicazione esegue la migrazione così come è, che offre i vantaggi del cloud senza i rischi o i costi di apportare modifiche al codice. L'uso di un emulatore per i monitoraggi TP (MainFrame Transaction Processing) in Azure supporta questo approccio.

I monitoraggi TP sono disponibili da diversi fornitori ed eseguiti in macchine virtuali, un'opzione IaaS (Infrastructure as a Service) in Azure. I diagrammi seguenti illustrano le versioni precedenti e successive di un'applicazione online supportata da IBM DB2, un sistema di gestione di database relazionali (DBMS) in un mainframe IBM z/OS. DB2 per z/OS usa file VSAM (Virtual Storage Access Method) per archiviare i dati e il metodo di accesso sequenziale indicizzato (ISAM) per i file flat. Questa architettura usa anche CICS per il monitoraggio delle transazioni.

Diagramma di una migrazione

In Azure gli ambienti di emulazione eseguono il gestore TP e i processi batch che usano JCL. Nel livello dati DB2 viene sostituito dal database SQL di Azure, anche se è anche possibile usare Microsoft SQL Server, DB2 LUW o Oracle Database. Un emulatore supporta IMS, VSAM e SEQ. Gli strumenti di gestione del sistema del mainframe vengono sostituiti dai servizi di Azure e dal software di altri fornitori, che vengono eseguiti nelle macchine virtuali.

I server Web implementano in genere la funzionalità di gestione dello schermo e immissione di moduli, che è possibile combinare con le API di database, ad esempio ADO, ODBC e JDBC per l'accesso ai dati e le transazioni. La linea esatta dei componenti IaaS di Azure da usare dipende dal sistema operativo preferito. Per esempio:

  • Macchine virtuali basate su Windows: Internet Information Server (IIS) insieme a ASP.NET per la gestione dello schermo e la logica di business. Usare ADO.NET per l'accesso ai dati e le transazioni.

  • Macchine virtuali basate su Linux: Server applicazioni basati su Java, ad esempio la gestione dello schermo del processo Apache Tomcat e le funzionalità aziendali basate su Java. Usare JDBC per l'accesso ai dati e le transazioni.

Eseguire la migrazione di carichi di lavoro batch in Azure

Le operazioni batch in Azure differiscono dall'ambiente batch tipico nei mainframe. I processi batch mainframe sono in genere seriali e dipendono dalle operazioni di input/output per secondo fornite dal backbone del mainframe per le prestazioni. Gli ambienti batch basati sul cloud usano il calcolo parallelo e le reti ad alta velocità per le prestazioni.

Per ottimizzare le prestazioni batch con Azure, prendere in considerazione le opzioni di calcolo, archiviazione, rete e monitoraggio come indicato di seguito.

Calcolo

Utilizzo:

  • Macchine virtuali con la massima velocità di clock. Le applicazioni mainframe sono spesso a thread singolo e le CPU mainframe hanno una velocità di clock elevata.

  • Macchine virtuali con capacità di memoria elevata per consentire la memorizzazione nella cache dei dati e delle aree di lavoro dell'applicazione.

  • Macchine virtuali con vCPU ad alta densità per sfruttare i vantaggi dell'elaborazione multithreading se l'applicazione supporta più thread.

  • L'elaborazione parallela, poiché Azure aumenta facilmente le prestazioni per l'elaborazione parallela, offrendo maggiore potenza di calcolo per un'esecuzione batch.

Immagazzinamento

Utilizzo:

  • Unità SSD Premium di Azure o Archiviazione su disco Ultra di Azure per il massimo numero di operazioni di I/O al secondo disponibili.

  • Striping con più dischi per più operazioni di I/O al secondo per ogni dimensione di archiviazione.

  • Partizionamento per l'archiviazione per distribuire le I/O su più dispositivi di Archiviazione di Azure.

Rete

Monitoraggio

  • Usare gli strumenti di monitoraggio, Monitoraggio di Azure, Application Insights e i log di Azure. Questi strumenti consentono di monitorare le esecuzioni batch con prestazioni eccezionali e ridurre i colli di bottiglia.

Eseguire la migrazione degli ambienti di sviluppo

Le architetture distribuite del cloud si basano su un set diverso di strumenti di sviluppo che offrono il vantaggio di procedure e linguaggi di programmazione moderni. Per semplificare questa transizione, usare un ambiente di sviluppo con altri strumenti progettati per emulare gli ambienti IBM z/OS. L'elenco seguente mostra le opzioni di Microsoft e di altri fornitori:

Componente Opzioni di Azure
z/OS Windows, Linux o Unix
CICS Servizi di Azure offerti da Micro Focus, Oracle, GT Software (Fujitsu), TmaxSoft, Raincode e NTT DATA, oppure riscritti utilizzando Kubernetes.
IMS Servizi di Azure offerti da Micro Focus e Oracle
Assemblatore Servizi Azure di Raincode e TmaxSoft, o COBOL, C o Java, oppure mappare alle funzioni del sistema operativo
JCL JCL, PowerShell o altri strumenti di scripting
COBOL COBOL, C o Java
Naturale Naturale, COBOL, C o Java
Fortran e PL/I Fortran, PL/I, COBOL, C o Java
REXX e PL/I REXX, PowerShell o altri strumenti di scripting

Eseguire la migrazione di database e dati

La migrazione delle applicazioni comporta in genere il rehosting del livello dati. È possibile eseguire la migrazione di SQL Server, open source e altri database relazionali a soluzioni completamente gestite in Azure. È possibile usare Istanza gestita di SQL di Azure, Database di Azure per PostgreSQL e Database di Azure per MySQL con Servizio Migrazione del database di Azure.

Ad esempio, è possibile eseguire la migrazione se il livello dati mainframe usa:

  • IBM DB2 o un database IMS, puoi usare il database SQL di Azure, SQL Server, DB2 LUW o Oracle Database su Azure.

  • VSAM e altri file flat, come ISAM, utilizzano il metodo ISAM (Indexed Sequential Access Method) per i database di Azure SQL, SQL Server, DB2 LUW o Oracle.

  • Gruppi di date di generazione (GDG) dovrebbero migrare ai file in Azure che usano una convenzione di denominazione ed estensioni del nome file che forniscono funzionalità simili ai GDG.

Il livello dati IBM include diversi componenti chiave di cui è necessario eseguire la migrazione. Ad esempio, quando si esegue la migrazione di un database, si esegue anche la migrazione di una raccolta di dati contenuti nei pool, ognuno contenente dbextents, che sono set di dati VSAM z/OS. La migrazione deve includere la directory che identifica i percorsi dei dati nei pool di archiviazione. Inoltre, il piano di migrazione deve considerare il log del database, che contiene un record di operazioni eseguite nel database. Un database può avere uno, due log (doppio o alternativo) o quattro log (doppio e alternativo).

La migrazione del database include anche questi componenti:

  • Gestione database: Fornisce l'accesso ai dati nel database. Il gestore del database si esegue nella propria partizione in un ambiente z/OS.
  • Richiedente applicazione: Accetta le richieste dalle applicazioni prima di passarle a un server applicazioni.
  • Adattatore di risorse online: Include i componenti del richiedente dell'applicazione da usare nelle transazioni CICS.
  • Adattatore di risorse batch: Implementa componenti di richiesta dell'applicazione per applicazioni batch z/OS.
  • Interactive SQL (ISQL): Viene eseguito come applicazione e interfaccia CICS e consente agli utenti di immettere istruzioni SQL o comandi di operatore.
  • Applicazione CICS: Viene eseguito sotto il controllo di CICS, usando risorse e origini dati disponibili in CICS.
  • Applicazione Batch: Esegue la logica di processo senza comunicazioni interattive con gli utenti, ad esempio, produrre aggiornamenti dei dati in blocco o generare report da un database.

Ottimizzare la scalabilità e la velocità effettiva per Azure

In generale, i mainframe aumentano, mentre il cloud aumenta. Per ottimizzare la scalabilità e la velocità effettiva delle applicazioni in stile mainframe in esecuzione in Azure, è importante comprendere in che modo i mainframe separano e isolano le applicazioni. Un mainframe z/OS usa una funzionalità denominata partizioni logiche (LPAR) per isolare e gestire le risorse per un'applicazione specifica in una singola istanza.

Ad esempio, un mainframe potrebbe usare un LPAR per un'area CICS con programmi COBOL associati e un LPAR separato per DB2. Altri LPAR vengono spesso usati per gli ambienti di sviluppo, test e staging.

In Azure è più comune usare macchine virtuali separate per soddisfare questo scopo. Le architetture di Azure distribuiscono in genere macchine virtuali per il livello applicazione, un set separato di macchine virtuali per il livello dati, un altro set per lo sviluppo e così via. È possibile ottimizzare ogni livello di elaborazione usando il tipo più adatto di macchine virtuali e funzionalità per tale ambiente.

Inoltre, ogni livello può anche fornire servizi di ripristino di emergenza appropriati. Ad esempio, le macchine virtuali di produzione e dei database possono richiedere il ripristino a caldo, mentre le macchine virtuali di test e sviluppo supportano il ripristino a freddo.

La figura seguente illustra una possibile distribuzione di Azure usando un sito primario e secondario. Nel sito primario, la produzione, la preparazione e il test delle macchine virtuali vengono distribuite con disponibilità elevata. Il sito secondario è destinato al backup e al ripristino di emergenza.

Diagramma di una possibile distribuzione di Azure usando un sito primario e secondario.

Eseguire una migrazione a fasi in Azure

Lo spostamento di soluzioni da un mainframe ad Azure potrebbe comportare una migrazione a fasi . Prima di tutto si spostano alcune applicazioni, mentre altre rimangono sul mainframe temporaneamente o in modo permanente. Questo approccio richiede in genere sistemi che consentono alle applicazioni e ai database di interagire tra il mainframe e Azure.

Uno scenario comune consiste nello spostare un'applicazione in Azure mantenendo i dati usati dall'applicazione nel mainframe. Software specifico consente alle applicazioni in Azure di accedere ai dati dal mainframe. Fortunatamente, un'ampia gamma di soluzioni offre l'integrazione tra Azure e gli ambienti mainframe esistenti, il supporto per scenari ibridi e la migrazione nel tempo. I partner Microsoft, i fornitori di software indipendenti e gli integratori di sistemi possono aiutarti nel tuo percorso.

Un'opzione è Microsoft Host Integration Server. Questa soluzione fornisce l'architettura DRDA (Distributed Relational Database Architecture) necessaria per le applicazioni in Azure. Consente alle applicazioni di accedere ai dati in DB2 che rimangono nel mainframe. Altre opzioni per l'integrazione da mainframe ad Azure includono soluzioni di IBM, Attunity, Codit, altri fornitori e opzioni open source.

Soluzioni per i partner

Se si sta valutando una migrazione mainframe, l'ecosistema partner può essere utile.

Azure offre un'infrastruttura collaudata, a disponibilità elevata e scalabile per i sistemi attualmente eseguiti nei mainframe. Alcuni carichi di lavoro possono eseguire la migrazione con facilità relativa. È possibile eseguire il rehosting di altri carichi di lavoro che dipendono dal software di sistema legacy, ad esempio CICS e IMS. Usare le soluzioni partner ed eseguirne la migrazione ad Azure nel corso del tempo. Indipendentemente dalla scelta scelta, Microsoft e i nostri partner possono aiutarti a ottimizzare per Azure mantenendo al tempo stesso le funzionalità del software del sistema mainframe.

Ulteriori informazioni

Per altre informazioni, vedere le risorse seguenti: