Re-engineer mainframe batch applications on Azure

Azure Data Factory
Azure Databricks
Servizio Azure Kubernetes
database SQL di Azure
Archiviazione di Azure

Questa architettura di riferimento illustra come usare Azure per ri-progettare un'applicazione batch z/OS mainframe per distribuire un sistema sicuro, scalabile e a disponibilità elevata nel cloud usando Azure. A causa di esigenze aziendali in continua evoluzione, i dati e le applicazioni devono offrire e ridimensionare senza influire sull'infrastruttura. La ricompilazione nel cloud può aiutare le aziende a ridurre al minimo i tempi di consegna dei prodotti o delle funzionalità e ridurre i costi di finanza, integrità, assicurazione e vendita al dettaglio.

Architettura del mainframe

Il primo diagramma mostra l'architettura di un'applicazione batch tipica in esecuzione in un mainframe z/OS.

Diagramma di una tipica applicazione batch in esecuzione in un mainframe z/OS.

Scaricare un file di Visio di questa architettura.

Flusso di lavoro

  1. I processi batch mainframe possono essere attivati in base a un'ora pianificata usando un'utilità di pianificazione, pianificazione e controllo (OPC). Possono anche essere attivati da un messaggio inserito in una coda di messaggi, ad esempio un messaggio che annuncia la creazione di un file.

  2. Un dispositivo di archiviazione ad accesso diretto (DASD) mainframe viene usato per archiviare i file di input e output; ad esempio file flat richiesti dall'applicazione. È possibile attivare il processo batch creando un file nell'archiviazione DASD.

  3. Il processo batch è un'esecuzione di un set di processi, ad esempio un processo che esegue internamente un utente o un programma di sistema per eseguire un'attività specifica. In genere, i processi batch vengono eseguiti senza interazione dell'utente. Tutti i processi batch in un mainframe vengono eseguiti sotto il controllo di un sistema di esecuzione processi (JES).

  4. I programmi nei processi batch possono leggere/scrivere dati da:

    • Un database basato su file come il metodo VSAM (Virtual Storage Access Method).
    • Un database relazionale, ad esempio Db2 o Informix.
    • Un database non relazionale, ad esempio Information Management System (IMS).
    • Coda di messaggi.
  5. L'output dell'esecuzione del processo può essere monitorato tramite un'utilità di pianificazione OPC o Un'utilità di pianificazione del carico di lavoro di Workload Scheduler (TWS). Un sistema di visualizzazione e ricerca (SDSF) in JES viene usato anche nel mainframe per controllare lo stato di esecuzione del processo.

  6. Il livello di gestione offre i servizi seguenti:

    • Controllo del codice sorgente, ad esempio Endevor o Changeman.
    • Sicurezza, ad esempio La funzionalità di controllo degli accessi alle risorse (RACF). Questa sicurezza fornisce l'autenticazione per l'esecuzione di batch, l'accesso ai file e l'accesso al database.
    • Gestione dell'output che supporta l'archiviazione e la ricerca dei log di esecuzione dei processi.

Architettura di Azure

Il secondo diagramma illustra come usare i servizi di Azure per ri-progettare un'applicazione simile con funzionalità e flessibilità aggiuntive.

Diagramma di un'applicazione batch ri-progettata usando i servizi di Azure. Sono inclusi più servizi di esempio.

Scaricare un file di Visio di questa architettura.

Flusso di lavoro

  1. Usare uno dei trigger seguenti per avviare il processo batch di Azure.

    • Usare l'utilità di pianificazione azure Databricks processo o funzione di Azure.
    • Creare un'attività di processo batch ricorrente con App per la logica di Azure.
    • Usare un evento di archiviazione, ad esempio la creazione o l'eliminazione di un file in BLOB di Azure o archiviazione file.
    • Usare un trigger basato su messaggi, ad esempio l'arrivo di un messaggio nel bus di servizio di Azure.
    • Creare un trigger di di Azure Data Factory .
  2. Archiviare i file migrati dal mainframe usando Archiviazione BLOB di Azure o File di Azure. I processi batch ricreati in Azure possono leggere/scrivere dati da questa risorsa di archiviazione.

  3. Azure offre vari servizi per implementare un carico di lavoro batch mainframe. Selezionare servizi specifici basati sui requisiti aziendali. Ad esempio, la potenza di calcolo necessaria, il tempo di esecuzione totale, la possibilità di suddividere il processo batch del mainframe in unità più piccole e la sensibilità dei costi.

    1. Azure Databricks è una piattaforma di analisi basata su Apache Spark. I processi possono essere scritti nei linguaggi R, Python, Java, Scala e Spark SQL. Offre un ambiente di calcolo con tempi di avvio rapidi del cluster, terminazione automatica e scalabilità automatica. Include l'integrazione predefinita con Archiviazione BLOB di Azure, ad esempio Archiviazione BLOB di Azure e Azure Data Lake Storage. Usare Azure Databricks se è necessario elaborare grandi quantità di dati in breve tempo. È anche una buona scelta se è necessario eseguire carichi di lavoro Extract, Transform e Load (ETL).
    2. Il servizio Azure Kubernetes e Service Fabric forniscono un'infrastruttura per implementare un'architettura di applicazione basata su servizi. Potrebbe non essere conveniente per una singola applicazione. È possibile effettuare il refactoring dell'applicazione mainframe usando Java Spring Boot. Il modo migliore per eseguire app Spring Boot in Azure consiste nell'usare Azure Spring Apps, un servizio Spring completamente gestito. Gli sviluppatori Java possono usarlo per compilare ed eseguire facilmente microservizi Spring Boot in Azure.
    3. È possibile ri-progettare l'applicazione batch mainframe usando .NET o Java. Batch fornisce l'infrastruttura per eseguire questa applicazione su larga scala. Crea e gestisce un pool di macchine virtuali ,installa le applicazioni e quindi pianifica l'esecuzione dei processi nelle macchine virtuali. Non è disponibile alcun software dell'utilità di pianificazione del cluster o del processo da installare, gestire o ridimensionare. Scrivere applicazioni in qualsiasi linguaggio di programmazione supportato da Windows o Linux.
    4. È possibile ri-progettare programmi batch COBOL o PL/1 in esecuzione breve. Per questi programmi, usare servizi di Azure come Funzioni, Processi Web o App per la logica.
  4. Azure offre vari servizi dati per archiviare e recuperare i dati.

    • È possibile eseguire la migrazione di database relazionali mainframe come Db2 e Informix con modifiche minime alla visibilità dei database relazionali di Azure. Ad esempio, servizi di database relazionali come la macchina virtuale SQL di Azure, il database SQL di Azure o l'istanza gestita di SQL di Azure. È anche possibile usare qualsiasi sistema di gestione di database relazionale open source (RDBMS) come Azure PostgreSQL. La selezione di un database di Azure dipende dal tipo di carico di lavoro, dalle query tra database, dai requisiti di commit in due fasi e da molti altri fattori.
    • È possibile eseguire la migrazione di database non relazionali come IMS, Integrated Data Management System (IDMS) o VSAM in Azure Cosmos DB. Azure Cosmos DB offre tempi di risposta rapidi, scalabilità automatica e immediata e velocità garantita su qualsiasi scala. Si tratta di un'opzione conveniente per carichi di lavoro imprevedibili o sporadici di qualsiasi dimensione o scala. Gli sviluppatori possono iniziare facilmente senza dover pianificare o gestire la capacità.
    • È possibile usare Cache Redis di Azure per velocizzare un'applicazione ri-progettata.
  5. Le applicazioni, il sistema operativo e le risorse di Azure possono usare gli agenti per inviare log e metriche a log di Monitoraggio di Azure.

    • application insight monitora l'applicazione migrata. Rileva automaticamente le anomalie delle prestazioni e include potenti strumenti di analisi che consentono di diagnosticare i problemi.
    • di Azure Log Analytics consente di archiviare, indicizzare, eseguire query e derivare analisi dai dati di log raccolti.

    È possibile usare l'output di Log Analytics e Application Insights per creare avvisi e dashboard o esportare in servizi esterni. È anche possibile usare l'output per eseguire un'azione come il ridimensionamento di una macchina virtuale.

  6. Questo livello offre servizi di Azure per il controllo del codice sorgente, la sicurezza e la gestione dell'output. Questi servizi possono essere costituiti da Azure DevOps e microsoft Entra ID.

Componenti

Rete e identità

  • Azure ExpressRoute: ExpressRoute consente di estendere le reti locali nel cloud Microsoft tramite una connessione privata da un provider di connettività. Con ExpressRoute è possibile stabilire connessioni ai servizi cloud Microsoft, ad esempio Microsoft Azure e Office 365.
  • gateway VPN di Azure: un gateway VPN è un tipo specifico di gateway di rete virtuale usato per inviare traffico crittografato tra una rete virtuale di Azure e una posizione locale tramite Internet pubblico.
  • MICROSOFT Entra ID: Microsoft Entra ID è un servizio di gestione delle identità e degli accessi che può essere sincronizzato con una directory locale.

Applicazione

  • app per la logica: App per la logica consente di creare ed eseguire attività e processi ricorrenti automatizzati in base a una pianificazione. È possibile chiamare i servizi all'interno e all'esterno di Azure, ad esempio endpoint HTTP o HTTPS. È anche possibile inviare messaggi a servizi di Azure come il bus di servizio di Azure o recuperare i file caricati in una condivisione file.
  • del bus di servizio: è possibile usare il bus di servizio per la messaggistica tra un'interfaccia utente e i servizi back-end. Questo sistema può separare applicazioni e servizi e aumentare l'affidabilità e l'uso.
  • azure Databricks: Azure Databricks è uno strumento di progettazione dei dati basato sul cloud usato per l'elaborazione e la trasformazione di grandi quantità di dati. È quindi possibile esplorare i dati tramite modelli di Machine Learning.
  • azure Spring Apps: Azure Spring Apps semplifica la distribuzione, la gestione e l'esecuzione di microservizi Spring in Azure. Supporta sia Java che .NET Core.
  • servizio Azure Kubernetes: il servizio Azure Kubernetes semplifica la distribuzione di un cluster Kubernetes gestito in Azure eseguendo l'offload del sovraccarico operativo in Azure.
  • Batch: Batch è progettato per eseguire l'elaborazione batch per utilizzo generico nel cloud in molte macchine virtuali scalabili in base al carico di lavoro in esecuzione. È una soluzione ideale per i casi d'uso ETL o di intelligenza artificiale in cui vengono eseguite più attività in parallelo, indipendenti l'una dall'altra.
  • Funzioni: usare Funzioni per eseguire piccole parti di codice senza preoccuparsi dell'infrastruttura dell'applicazione. Con Funzioni, l'infrastruttura cloud fornisce tutti i server up-to-date necessari per mantenere l'applicazione in esecuzione su larga scala.
  • servizio app di Azure: con processi Web, una funzionalità del servizio app, è possibile codificare la logica di business in background riutilizzabile come processi Web.
  • Cache Redis di Azure: le applicazioni che usano un volume elevato di dati back-end possono essere sviluppate per ridimensionare e offrire prestazioni altamente ottimizzate grazie all'integrazione con un archivio dati in memoria come Redis. Cache Redis di Azure offre sia il redis open source (OSS Redis) che un prodotto commerciale di Redis Labs, Redis Enterprise, come servizio gestito.

Immagazzinamento

Archiviazione di Azure offre più livelli di dati ad accesso frequente, ad accesso sporadico e archivio. L'utilizzo efficace di questi livelli di archiviazione può offrire un vantaggio da prezzo a prestazioni.

  • archiviazione BLOB: archiviazione di oggetti scalabile e sicura per carichi di lavoro nativi del cloud, archivi, data lake, elaborazione ad alte prestazioni e Machine Learning.
  • File di Azure: condivisioni file cloud semplici, sicure e serverless di livello aziendale. File di Azure può risultare particolarmente utile per soluzioni mainframe ricreate. Fornisce un componente aggiuntivo efficace per l'archiviazione SQL gestita.
  • archiviazione tabelle: archivio chiave-valore NoSQL per lo sviluppo rapido usando set di dati semistrutturati di grandi dimensioni.
  • archiviazione code di Azure: accodamento di messaggi semplice, conveniente e durevole per carichi di lavoro di grandi dimensioni.
  • azure SQL: la famiglia di servizi completamente gestita di Azure per SQL Server. È possibile eseguire la migrazione e usare i dati relazionali in modo efficiente con altri servizi di Azure, ad esempio Istanza gestita di SQL di Azure, SQL Server in macchine virtuali di Azure e Database di Azure per MariaDB.
  • Azure Cosmos DB: offerta no-SQL che è possibile usare per eseguire la migrazione di dati non tabulari dai mainframe.

Monitoraggio

  • monitoraggio di Azure: Monitoraggio di Azure offre una soluzione completa per la raccolta, l'analisi e l'esecuzione dei dati di telemetria dagli ambienti cloud e locali. Contiene le funzionalità application insights, log di Monitoraggio di Azure e Azure Log Analytics.

Gestione

  • Azure DevOps: riconfigurare le applicazioni mainframe in Azure durante ogni fase di sviluppo software e collaborazione in team. DevOps offre i servizi seguenti:

    • Azure Boards: agile pianificazione, rilevamento degli elementi di lavoro, visualizzazione e strumento di creazione di report.
    • Azure Pipelines: piattaforma, piattaforma e piattaforma CI/CD indipendente dal cloud con supporto per contenitori o Kubernetes.
    • azure Repos: fornisce repository Git privati ospitati nel cloud.
    • azure Artifacts: fornisce una gestione integrata dei pacchetti con supporto per i feed di pacchetti Maven, npm, Python e NuGet da origini pubbliche o private.
    • i piani di test di Azure: offre una soluzione di test integrata, pianificata ed esplorativa.

Dettagli dello scenario

I mainframe vengono usati principalmente per l'elaborazione di grandi quantità di dati. L'elaborazione batch è un modo per elaborare un volume elevato di transazioni raggruppate e quindi eseguire aggiornamenti in blocco sul database. Dopo l'attivazione, richiedono una minima interazione dell'utente. Ad esempio, i sistemi mainframe consentono alle banche e ad altre istituzioni finanziarie di elaborare e produrre report, ad esempio azioni trimestrali o dichiarazioni pensionistiche.

Casi d'uso potenziali

Questa soluzione è ideale per i settori finanziari, assicurativi, sanitari e retail. Usare questa architettura per ri-progettare le applicazioni mainframe in Azure. L'architettura funziona meglio per:

  • Applicazioni batch mainframe a elevato utilizzo di risorse.
  • Applicazioni batch che richiedono un calcolo elevato durante un determinato periodo di tempo, ad esempio la fine del mese, il trimestre o l'anno.
  • Processi batch mainframe ripetitivi e non a elevato utilizzo delle risorse, ma potrebbero richiedere l'utilizzo da parte di sistemi esterni.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, ovvero un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni assunti dai clienti. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'affidabilità.

  • È possibile usare Monitoraggio di Azure e Application Insights, oltre a Log Analytics, per monitorare l'integrità di una risorsa di Azure. Impostare avvisi per gestire in modo proattivo l'integrità delle risorse.
  • Per altre informazioni sulla resilienza in Azure, vedere Progettazione di applicazioni Azure affidabili.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per Security.

  • Questa architettura di riferimento usa ExpressRoute per una connessione privata ed efficiente ad Azure dall'ambiente locale. Tuttavia, è anche possibile creare un sito vpn da sito a sito.
  • È possibile autenticare le risorse di Azure usando Microsoft Entra ID. È possibile gestire le autorizzazioni con il controllo degli accessi in base al ruolo.
  • I servizi di database in Azure supportano varie opzioni di sicurezza, ad esempio Crittografia dei dati inattivi.
  • Per altre informazioni sulla progettazione di soluzioni sicure, vedere documentazione sulla sicurezza di Azure.

Ottimizzazione costi

L'ottimizzazione dei costi consiste nell'esaminare i modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.

Usare calcolatore prezzi di Azure per stimare i costi per le risorse di Azure.

Vedere 'applicazione batch mainframe di Azure per una stima dei costi di esempio dei servizi.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e lo mantengono in esecuzione nell'ambiente di produzione. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'eccellenza operativa.

  • L'architettura batch in questo articolo usa servizi di calcolo multinodo o PaaS, che offrono disponibilità elevata.
  • I servizi di database di Azure supportano la ridondanza della zona ed è possibile progettarli per eseguire il failover in un nodo secondario in caso di interruzione o durante una finestra di manutenzione.

Efficienza delle prestazioni

L'efficienza delle prestazioni è la capacità del carico di lavoro di ridimensionarsi per soddisfare le esigenze poste dagli utenti in modo efficiente. Per altre informazioni, vedere Elenco di controllo per l'efficienza delle prestazioni.

  • I servizi di Azure seguenti in questa architettura hanno funzionalità di scalabilità automatica:

    • Azure Databricks
    • Servizio Azure Kubernetes
    • App Spring
    • Lotto
    • Funzioni di Azure
    • App per la logica
  • Per altre informazioni sulla scalabilità automatica in Azure, vedere la guida alla scalabilità automatica .

Contributori

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

Autore principale:

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

Passaggi successivi

  • Per altre informazioni, contattare datasqlninja@microsoft.com.
  • Vedere le guide alla migrazione del database di Azure .
  • di elaborazione delle transazioni batch con volume elevato