Refactoring di applicazioni mainframe con Advanced

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

La soluzione di refactoring COBOL automatizzato di Advanced esegue il refactoring delle applicazioni COBOL, nonché quelle scritte in CA-Gen, CA-Telon, Natural, ADSO e altri linguaggi legacy, per distribuire applicazioni e database abilitati per il cloud che sono funzionalmente equivalenti alle controparti legacy. Questo approccio permette di ridurre i costi, favorisce un'integrazione più profonda e consente la personalizzazione per soddisfare i requisiti aziendali. Inoltre, apre un mondo completamente nuovo in termini di qualità e scalabilità, dai test automatizzati al controllo di qualità e alla possibilità di sfruttare le distribuzioni in contenitori e l'orchestrazione con Docker e Kubernetes.

Architettura dei mainframe

Di seguito è riportato un sistema di esempio in cui è possibile usare il factoring automatizzato:

Diagramma dell'architettura che mostra un sistema mainframe che include applicazioni in linguaggio legacy.

Workflow

R. Gli utenti forniscono input tramite TCP/IP, usando protocolli come TN3270, HTTP e HTTPS.

B. L'input arriva usando protocolli mainframe standard.

C. Applicazioni online e batch elaborano l'input.

D. COBOL, PL/I, Assembler e i linguaggi compatibili vengono eseguiti in un ambiente abilitato.

E. I file e i database forniscono l'archiviazione dei dati. I tipi di database includono database gerarchici, di rete e relazionali.

F. I servizi eseguono le attività per le applicazioni. I servizi comunemente abilitati includono l'esecuzione dei programmi, le operazioni di I/O, il rilevamento degli errori e la protezione.

G. Il middleware e servizi di utilità gestiscono attività quali l'archiviazione su nastro, l'accodamento, l'output e i servizi Web.

H. I sistemi operativi forniscono l'interfaccia tra il motore e il software in esecuzione.

I. Le partizioni eseguono carichi di lavoro separati o separano i tipi di lavoro all'interno dell'ambiente.

Architettura di Azure

Questa è l'architettura del sistema di esempio mostrato sopra dopo il refactoring per Azure. Si noti che i callout delle lettere nei diagrammi indicano il punto in cui la soluzione con refactoring gestisce la funzionalità mainframe corrispondente.

Diagramma dell'architettura che mostra il sistema in Azure dopo il refactoring.

Scaricare un file di Visio di questa architettura.

Workflow

  1. L'input viene in genere ricevuto tramite Azure ExpressRoute da client remoti o da altre applicazioni di Azure. In entrambi i casi, le connessioni TCP/IP sono il mezzo principale per connettersi al sistema. L'accesso utente alle applicazioni Web avviene tramite la porta TLS 443. È possibile mantenere la stessa interfaccia utente delle applicazioni Web per ridurre al minimo la formazione dell'utente finale oppure aggiornarla usando i moderni framework per l'esperienza utente. Azure Bastion fornisce l'accesso amministratore alle macchine virtuali, ottimizzando la sicurezza riducendo al minimo le porte aperte.

  2. Una volta in Azure, l'accesso ai cluster di calcolo delle applicazioni avviene tramite un servizio di bilanciamento del carico di Azure. Questo approccio consente alle risorse di calcolo scale-out di elaborare le attività di input. A seconda dell'input, è possibile bilanciare il carico a livello dell'applicazione o a livello del protocollo di rete.

  3. Advanced supporta la distribuzione in contenitori, macchine virtuali o set di scalabilità di macchine virtuali. Per i contenitori e i set di scalabilità di macchine virtuali, a differenza delle macchine virtuali, è possibile aumentare e ridurre rapidamente il numero di istanze. Lo spostamento dell'unità di dimensionamento ai contenitori consente di ottimizzare l'utilizzo dell'infrastruttura.

  4. I server applicazioni ricevono l'input nei cluster di calcolo e condividono lo stato e i dati delle applicazioni tramite la cache di Azure per Redis o RDMA (Remote Direct Memory Access).

  5. I servizi dati nei cluster di applicazioni consentono più connessioni a origini dati permanenti. Le origini dati possibili includono:

    • Database SQL di Azure.
    • Azure Cosmos DB.
    • Database in macchine virtuali, ad esempio Oracle e 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. I server applicazioni ospitano vari programmi applicativi basati sulle funzionalità del linguaggio, ad esempio classi Java o programmi COBOL.

  7. I servizi dati usano una combinazione di:

    1. Archiviazione a prestazioni elevate: dischi SSD Premium e Archiviazione su disco Ultra di Azure.

    2. Archiviazione file:Azure NetApp Files e File di Azure.

    3. Archiviazione standard: Archiviazione BLOB di Azure, archivio e backup. Il backup può essere:

      1. Archiviazione con ridondanza locale.
      2. Archiviazione con ridondanza della zona.
      3. Archiviazione con ridondanza geografica.
      4. Archiviazione con ridondanza geografica della zona.

      Per altre informazioni sulla ridondanza, vedere Ridondanza di Archiviazione di Azure.

  8. I servizi dati PaaS (piattaforma distribuita come servizio) di Azure offrono archiviazione dati scalabile e a disponibilità elevata da condividere tra più risorse di calcolo in un cluster. Anche a questi è possibile applicare la ridondanza geografica.

  9. Azure Data Factory consente di inserire dati ed eseguire la sincronizzazione con più origini dati sia all'interno di Azure che da origini esterne. Archiviazione BLOB di Azure è una zona di destinazione comune per le origini dati esterne.

  10. Azure Site Recovery fornisce il ripristino di emergenza dei componenti del cluster di macchine virtuali e contenitori.

  11. Le applicazioni si connettono agli endpoint privati dei vari servizi PaaS.

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 (Transport Layer Security). 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 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 elimina l'esposizione alla rete Internet pubblica per semplificare l'architettura di rete e proteggere le connessioni tra gli endpoint di Azure.
  • 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 archiviazione su disco disponibili sono Archiviazione su disco Ultra, SSD Premium, SSD Standard e HDD Standard. Questa architettura usa dischi SSD Premium o Archiviazione su disco 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 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. Azure NetApp Files semplifica la migrazione e l'esecuzione di applicazioni complesse basate su file senza necessità di modifiche del 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à elevata. 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 PostgreSQL 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 dei dati in caso di errore di un data center di Azure.
  • Azure Data Factory è un servizio di estrazione, trasformazione e caricamento (ETL) per l'integrazione dei dati serverless scale-out e la trasformazione dei dati. Offre un'interfaccia utente senza codice per la creazione intuitiva di contenuti e una singola console per il monitoraggio e la gestione.

Dettagli dello scenario

Esistono molti motivi per cercare alternative alle applicazioni mainframe basate su COBOL che sono ancora comuni:

  • Gli sviluppatori COBOL e CA-Gen/Natural/Telon/ASDO si ritirano e nessuno viene addestrato per sostituirli, causando una costante diminuzione del pool di talenti. Man mano che aumenta la carenza di talenti, aumentano i costi e i rischi di affidarsi a COBOL e ad altre lingue legacy.
  • Le applicazioni non sono state progettate per le infrastrutture IT moderne, determinando così integrazioni complesse e flessibilità limitata.
  • L'hardware e il software mainframe IBM sono costosi e i costi di licenza e manutenzione per applicazioni e database mainframe accessori sono in aumento.

La soluzione di refactoring COBOL automatizzato di Advanced esegue il refactoring delle applicazioni COBOL, oltre a quelle scritte in altri linguaggi legacy, per distribuire applicazioni e database abilitati per il cloud equivalenti dal punto di vista funzionale alle controparti legacy. Questo approccio permette di ridurre i costi, favorisce un'integrazione più profonda e consente la personalizzazione per soddisfare i requisiti aziendali. Inoltre, apre un mondo completamente nuovo in termini di qualità e scalabilità, dai test automatizzati al controllo di qualità e alla possibilità di sfruttare le distribuzioni in contenitori e l'orchestrazione con Docker e Kubernetes.

Le applicazioni di cui è stato effettuato il refactoring:

  • Sono funzionalmente equivalenti a quelle originali.
  • Sono facili da gestire, ottengono valutazioni A SonarQube e seguono concetti e paradigmi orientati agli oggetti.
  • Garantiscono prestazioni equivalenti o migliori rispetto a quelle originali.
  • Sono pronte per il cloud e recapitati tramite una toolchain DevOps standard e le procedure consigliate.

Il processo di refactoring include normalizzazione del flusso, ristrutturazione del codice, estrazione del livello dati, rimodellamento dei dati e creazione di pacchetti per la ricostruzione. Il processo identifica il codice clonato e crea oggetti sostitutivi condivisi, semplificando la manutenzione e la gestibilità. L'analisi delle dipendenze di controllo e dei dati complessi individua e rimuove il codice non valido.

Dopo che la soluzione Advanced ha effettuato il refactoring delle applicazioni COBOL e dei database associati, gli sviluppatori Java e C# possono usare gli strumenti DevOps e i concetti di CI/CD standard per estendere le funzionalità delle applicazioni. Il processo di refactoring mantiene la logica di business e ottimizza le prestazioni. Altri vantaggi includono elasticità, definizione granulare dei servizi e integrazione semplificata con i servizi nativi del cloud.

Il refactoring COBOL automatizzato è disponibile per la maggior parte dei dialetti e delle piattaforme COBOL, tra cui z/OS, OpenVMS e VME.

Potenziali casi d'uso

Il refactoring di Advanced offre numerosi vantaggi in molti scenari, tra cui:

  • Le aziende che cercano di:
    • Modernizzare l'infrastruttura ed evitare i costi esorbitanti, le limitazioni e la rigidità associati ai mainframe.
    • Evitare il rischio associato alla carenza di competenze per i sistemi e le applicazioni legacy adottando soluzioni native del cloud e DevOps.
    • Ridurre i costi operativi e le spese in conto capitale.
  • Organizzazioni che desiderano eseguire la migrazione dei carichi di lavoro mainframe al cloud senza costose riscritture manuali soggette a errori.
  • Organizzazioni che devono eseguire la migrazione di applicazioni critiche, mantenendo la continuità con altre applicazioni locali.
  • Team che desiderano sfruttare le funzionalità di scalabilità orizzontale e verticale offerte da Azure.
  • Aziende che preferiscono soluzioni con opzioni di ripristino di emergenza.

Considerazioni

Incorporare i concetti fondamentali di Microsoft Azure Well-Architected Framework seguenti per un sistema a disponibilità elevata e sicuro:

Disponibilità

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.

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 per il database SQL di Azure offre una connessione privata diretta isolata al backbone di rete di Azure dalle macchine virtuali di Azure al database SQL di Azure.

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

Resilienza

La resilienza è 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, in base alle regole e ai probe di integrità. L'uso dei set di disponibilità e dell'archiviazione con ridondanza geografica è vivamente consigliato.

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 Archiviazione su disco 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