Refactoring generale del mainframe in Azure

File di Azure
Azure Load Balancer
database SQL di Azure
Archiviazione di Azure
Macchine virtuali di Azure

L'architettura seguente illustra un approccio di refactoring generale che può usare il servizio Azure Kubernetes o macchine virtuali di Azure. La scelta dipende dalla portabilità delle applicazioni esistenti e dalle preferenze. Il refactoring può accelerare lo spostamento in Azure convertendo automaticamente il codice in Java o .NET e convertendo i database pre-relazionali in database relazionali.

Architettura dei mainframe

Diagramma dell'architettura che mostra i componenti di un tipico sistema mainframe.

Scaricare un file di Visio di questa architettura.

Workflow

  • Gli utenti locali accedono al mainframe tramite TCP/IP usando protocolli mainframe standard come TN3270 e HTTPS (A).
  • Le applicazioni riceventi possono essere sistemi batch o online (B).
  • COBOL, PL/I, Assembler o linguaggi compatibili vengono eseguiti in ambienti abilitati (C).
  • I servizi dati e di database tipici includono sistemi di database gerarchici o di rete, file di dati flat o di indice e database relazionali (D).
  • I servizi comuni includono l'esecuzione del programma, le operazioni di I/O, il rilevamento degli errori e la protezione (E).
  • Il middleware e servizi di utilità gestiscono l'archiviazione su nastro, l'accodamento, l'output e i servizi Web (F).
  • I sistemi operativi sono l'interfaccia tra il motore di calcolo e il software (G).
  • Le partizioni eseguono carichi di lavoro separati o separano i tipi di lavoro all'interno dell'ambiente (H).

Architettura di Azure con refactoring

Diagramma dell'architettura che mostra i componenti di un sistema mainframe sottoposto a refactoring in Azure.

Scaricare un file di Visio di questa architettura.

Workflow

  1. L'input proviene da client remoti tramite ExpressRoute o da altri utenti di Azure. TCP/IP è il modo principale per connettersi al sistema.

    • Gli utenti locali possono accedere alle applicazioni basate sul Web tramite la porta TLS (Transport Layer Security) 443. I livelli di presentazione delle applicazioni Web possono rimanere invariati, per ridurre al minimo il training degli utenti finali. In caso contrario, è possibile aggiornare i livelli di presentazione con i moderni framework di esperienza utente.

    • L'accesso amministrativo locale usa host Azure Bastion per ottimizzare la sicurezza riducendo al minimo le porte aperte.

    • Gli utenti di Azure si connettono al sistema tramite il peering di reti virtuali.

  2. In Azure, Azure Load Balancer gestisce l'accesso ai cluster di calcolo dell'applicazione. Load Balancer supporta le risorse di calcolo scale-out per gestire l'input. È possibile usare un servizio di bilanciamento del carico a livello di applicazione di livello 7 o a livello di rete di livello 4, a seconda di come l'input dell'applicazione raggiunge il punto di ingresso del cluster di calcolo.

  3. I cluster di calcolo delle applicazioni possono essere eseguiti in macchine virtuali di Azure o in contenitori nei cluster del servizio Azure Kubernetes. In genere, l'emulazione del sistema mainframe per le applicazioni PL/I o COBOL usa macchine virtuali e le applicazioni di cui è stato effettuato il refactoring in Java o .NET usano contenitori. Alcuni software di emulazione del sistema mainframe supportano anche la distribuzione nei contenitori. Le risorse di calcolo usano dischi gestiti SSD (Solid-State Drive) Premium o Ultra con la rete accelerata e l'accesso RDMA (Remote Direct Memory Access).

  4. I server applicazioni nei cluster di calcolo ospitano le applicazioni in base alle funzionalità del linguaggio, ad esempio classi Java o programmi COBOL. I server ricevono l'input dell'applicazione e condividono lo stato e i dati dell'applicazione usando cache di Azure per Redis o RDMA.

  5. I servizi dati nei cluster di applicazioni supportano più connessioni a origini dati permanenti. Collegamento privato di Azure fornisce la connettività privata dall'interno della rete virtuale ai servizi di Azure. Le origini dati possono includere:

    • Servizi dati PaaS come database SQL di Azure, Azure Cosmos DB e Database di Azure per PostgreSQL - Hyperscale.
    • Database in macchine virtuali, ad esempio Oracle o Db2.
    • Repository di Big Data come Azure Databricks e Azure Data Lake.
    • Servizi dati in streaming come Apache Kafka e Analisi di flusso di Azure.
  6. L'archiviazione dei dati può essere con ridondanza locale o con ridondanza geografica, a seconda dell'utilizzo. L'archiviazione dei dati può usare una combinazione di:

    • Archiviazione a prestazioni elevate con dischi SSD Ultra o Premium.
    • Archiviazione file con Azure NetApp Files o File di Azure.
    • Archiviazione standard, inclusi BLOB, archivio e archivio di backup.
  7. I servizi dati PaaS di Azure offrono un'archiviazione dati scalabile e a disponibilità elevata che è possibile condividere tra le risorse del cluster di calcolo. Questo tipo di archiviazione può anche essere configurato con la ridondanza geografica.

    • Archiviazione BLOB di Azure è una zona di destinazione comune per le origini dati esterne.
    • Azure Data Factory supporta l'inserimento dei dati e la sincronizzazione di più origini dati di Azure ed esterne.
  8. Azure Site Recovery fornisce il ripristino di emergenza per i componenti del cluster di macchine virtuali e contenitori.

  9. I servizi come Microsoft Entra ID, Rete di Azure, Analisi di flusso di Azure, Azure Databricks e Power BI possono integrarsi facilmente con il sistema modernizzato.

Componenti

Questo esempio include i componenti di Azure seguenti. Molti di questi componenti e flussi di lavoro sono intercambiabili o facoltativi a seconda dello scenario.

  • Azure ExpressRoute consente di estendere la rete locale in Azure tramite una connessione in fibra privata dedicata da un provider di servizi di connettività. ExpressRoute stabilisce connessioni a servizi cloud Microsoft come Azure e Microsoft 365.

  • Azure Bastion offre la connettività RDP (Remote Desktop Protocol) o SSH (Secure Shell) facile alle macchine virtuali della rete virtuale dal portale di Azure tramite TLS. Azure Bastion ottimizza la sicurezza degli accessi amministrativi riducendo al minimo le porte aperte.

  • Azure Load Balancer distribuisce il traffico in ingresso ai cluster di risorse di calcolo. È possibile definire regole e altri criteri per distribuire il traffico.

  • Il servizio Azure Kubernetes è un servizio Kubernetes completamente gestito per la distribuzione e la gestione di applicazioni in contenitori. Il servizio Azure Kubernetes offre Kubernetes serverless, un'esperienza di CI/CD integrata, oltre a sicurezza e governance di livello aziendale.

  • Macchine virtuali di Azure offre molte dimensioni e tipi di risorse di calcolo scalabili su richiesta. Con le macchine virtuali di Azure è possibile ottenere la flessibilità della virtualizzazione senza dover acquistare e gestire hardware fisico.

  • Rete virtuale di Azure è il blocco predefinito fondamentale per le reti private di Azure. Le macchine virtuali di Azure all'interno delle reti virtuali possono comunicare in modo sicuro tra loro, con Internet e con le reti locali. Una rete virtuale è simile a una rete locale tradizionale, ma con vantaggi dell'infrastruttura di Azure come scalabilità, disponibilità elevata e isolamento.

  • Collegamento privato di Azure fornisce la connettività privata dalla rete virtuale ai servizi di Azure. Collegamento privato semplifica l'architettura di rete e protegge la connessione tra gli endpoint di Azure eliminando l'esposizione alla rete Internet pubblica.

  • Cache di Azure per Redis aggiunge un livello di memorizzazione nella cache rapido all'architettura dell'applicazione per gestire volumi di grandi dimensioni ad alta velocità. Le prestazioni della cache di Azure per Redis possono essere dimensionate in modo semplice e conveniente, con i vantaggi di un servizio completamente gestito.

  • Archiviazione di Azure offre un'archiviazione cloud scalabile e sicura per tutti i dati, le applicazioni e i carichi di lavoro.

    • Archiviazione su disco di Azure offre archiviazione a blocchi durevole e a prestazioni elevate per applicazioni aziendali di importanza critica. I dischi gestiti di Azure sono volumi di archiviazione a livello di blocco gestiti da Azure nelle macchine virtuali di Azure. I tipi di dischi disponibili sono dischi Ultra, SSD Premium, SSD Standard e HDD Standard. Questa architettura usa dischi SSD Premium o SSD Ultra.

    • File di Azure offre condivisioni file completamente gestite nel cloud, accessibili tramite il protocollo SMB (Server Message Block) standard di settore. È possibile montare le condivisioni file di File di Azure simultaneamente da distribuzioni cloud o locali di Windows, Linux e macOS.

    • Azure NetApp Files offre condivisioni file di Azure di livello aziendale basate su NetApp. NetApp Files semplifica la migrazione e l'esecuzione di applicazioni basate su file complesse senza necessità di modifiche al codice.

    • Archiviazione BLOB di Azure è un servizio di archiviazione di oggetti scalabile e sicuro per archivi, data lake e carichi di lavoro HPC, di Machine Learning e nativi del cloud.

  • I database di Azure offrono una scelta di database relazionali e NoSQL completamente gestiti in base alle esigenze moderne delle applicazioni. La gestione automatizzata dell'infrastruttura offre scalabilità, disponibilità e sicurezza.

    • Database SQL di Azure è un motore di database PaaS completamente gestito. Il database SQL viene sempre eseguito sulla versione stabile più recente di SQL Server e su un sistema operativo con patch con disponibilità del 99,99%. Le funzionalità di gestione del database PaaS predefinite includono l'aggiornamento, l'applicazione di patch, i backup e il monitoraggio. È possibile concentrarsi sull'amministrazione e sull'ottimizzazione del database business critical specifiche del dominio.

    • Database di Azure per PostgreSQL è un database completamente gestito basato sul motore di database relazionale Postgres open source. L'opzione di distribuzione Hyperscale (Citus) consente di dimensionare le query tra più computer tramite partizionamento orizzontale per le applicazioni con requisiti di scalabilità e prestazioni superiori.

    • Azure Cosmos DB è il database NoSQL veloce completamente gestito con API aperte per qualsiasi scala.

  • Azure Site Recovery esegue il mirroring delle macchine virtuali di Azure in un'area secondaria di Azure per il failover rapido e il ripristino di emergenza in caso di errore di un data center di Azure.

Dettagli dello scenario

Il refactoring dei carichi di lavoro in Azure può trasformare le applicazioni mainframe eseguite in Windows Server o Linux. È possibile eseguire queste applicazioni in modo più conveniente con le soluzioni IaaS (infrastruttura distribuita come servizio) e PaaS (piattaforma distribuita come servizio) di Azure basate sul cloud.

L'approccio di refactoring generale per le applicazioni mainframe determina anche la trasformazione dell'infrastruttura da tecnologie proprietarie legacy a tecnologie standardizzate, benchmark e aperte. Questa trasformazione promuove i principi DevOps agile che sono lo standard di sistemi aperti e a produttività elevata di oggi. Il refactoring passa da isole di infrastrutture, processi e applicazioni legacy univoche a una terra unificata di migliore allineamento aziendale e IT.

Questo approccio generale di refactoring può usare servizio Azure Kubernetes (AKS) o macchine virtuali di Azure. La scelta dipende dalla portabilità delle applicazioni esistenti e dalle preferenze. Il refactoring può accelerare lo spostamento in Azure convertendo automaticamente il codice in Java o .NET e convertendo i database pre-relazionali in database relazionali.

Il refactoring supporta metodologie diverse per lo spostamento dei carichi di lavoro client in Azure. Un metodo prevede la conversione e lo spostamento dell'intero sistema mainframe in Azure in una volta, risparmiando i costi di manutenzione provvisoria del mainframe e di supporto della struttura. Questo approccio comporta alcuni rischi. Tutti i processi di conversione, migrazione dei dati e test delle applicazioni devono essere allineati per una transizione uniforme dal mainframe ad Azure.

Una seconda metodologia prevede lo spostamento graduale delle applicazioni dal mainframe ad Azure, con una transizione completa come obiettivo finale. Questa tattica offre risparmi per ogni applicazione e i concetti appresi per convertire ogni applicazione possono essere utili per le conversioni successive. La modernizzazione di ogni applicazione in base a una pianificazione specifica può essere più rilassata rispetto alla conversione di tutti gli elementi contemporaneamente.

Potenziali casi d'uso

Il refactoring in Azure consente alle organizzazioni di:

  • Modernizzare l'infrastruttura ed evitare i costi elevati, le limitazioni e la rigidità dei mainframe.
  • Spostare i carichi di lavoro mainframe nel cloud senza gli effetti collaterali di un nuovo sviluppo completo.
  • Eseguire la migrazione di applicazioni business critical, mantenendo la continuità con altre applicazioni locali.
  • Usufruire della scalabilità orizzontale e verticale di Azure.
  • Ottenere funzionalità di ripristino di emergenza.

Considerazioni

Alla soluzione si applicano le considerazioni seguenti, basate su Azure Well-Architected Framework:

Disponibilità

Azure Site Recovery esegue il mirroring delle macchine virtuali di Azure in un'area secondaria di Azure per il failover rapido e il ripristino di emergenza in caso di errore del data center primario di Azure.

Operazioni

Il refactoring non solo supporta un'adozione più rapida del cloud, ma promuove anche l'adozione dei principi di lavoro DevOps e Agile. Si ha piena flessibilità nelle opzioni di sviluppo e distribuzione di produzione.

Resilienza

L'efficienza delle prestazioni è integrata in questa soluzione tramite i servizi di bilanciamento del carico. Se si verifica un errore in un server di transazione o presentazione, altri server dietro i servizi di bilanciamento del carico possono eseguire i carichi di lavoro.

Sicurezza

Questa soluzione usa un gruppo di sicurezza di rete di Azure per gestire il traffico tra le risorse di Azure. Per altre informazioni, vedere Gruppi di sicurezza di rete.

Collegamento privato offre connessioni private e dirette isolate al backbone di rete di Azure tra le macchine virtuali di Azure e i servizi di Azure.

Azure Bastion ottimizza la sicurezza degli accessi amministrativi riducendo al minimo le porte aperte. Bastion offre connettività RDP e SSH facile e sicura alle macchine virtuali della rete virtuale dal portale di Azure tramite TLS.

Ottimizzazione dei costi

Azure evita costi superflui identificando il numero corretto di tipi di risorse tramite l'analisi della spesa nel tempo e il dimensionamento in base alle esigenze aziendali senza spese in eccesso.

  • Azure offre l'ottimizzazione dei costi grazie all'esecuzione in macchine virtuali. È possibile spegnere le macchine virtuali quando non sono in uso ed eseguire lo script di una pianificazione per i modelli di utilizzo noti. Vedere Microsoft Azure Well-Architected Framework per altre informazioni sull'ottimizzazione dei costi per le istanze di macchina virtuale.

  • Le macchine virtuali in questa architettura usano dischi SSD Premium o SSD Ultra. Per altre informazioni sulle opzioni per i dischi e i prezzi, vedere Prezzi di Managed Disks.

  • Il database SQL ottimizza i costi con risorse di calcolo serverless e di archiviazione Hyperscale con scalabilità automatica. Per altre informazioni sulle opzioni per i database SQL e i prezzi, vedere Prezzi di database SQL di Azure.

Usare il Calcolatore prezzi di Azure per stimare i costi per l'implementazione di questa soluzione.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi