Replica i database mainframe su AWS utilizzando Precisly Connect - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Replica i database mainframe su AWS utilizzando Precisly Connect

Creato da Lucio Pereira (AWS), Balaji Mohan () e Sayantan Giri () AWS AWS

Ambiente: produzione

Fonte: mainframe locale

Destinazione: database AWS

Tipo R: Re-architect

Carico di lavoro: tutti gli altri carichi di lavoro

Tecnologie: database; mainframe CloudNative; modernizzazione

AWSservizi: Amazon DynamoDB; Amazon Keyspaces; Amazon; MSK Amazon; Amazon RDS ElastiCache

Riepilogo

Questo modello descrive i passaggi per replicare i dati dai database mainframe agli archivi dati Amazon quasi in tempo reale utilizzando Precisly Connect. Implementa un'architettura basata su eventi con Amazon Managed Streaming for Apache Kafka MSK (Amazon) e connettori di database personalizzati nel cloud per migliorare la scalabilità, la resilienza e le prestazioni.

Precisly Connect è uno strumento di replica che acquisisce i dati dai sistemi mainframe legacy e li integra in ambienti cloud. I dati vengono replicati dai mainframe all'acquisizione dei dati AWS tramite modifica (CDC) utilizzando flussi di messaggi quasi in tempo reale con pipeline di dati eterogenee a bassa latenza e ad alto throughput. 

Questo modello copre anche una strategia di disaster recovery per pipeline di dati resilienti con replica dei dati in più regioni e routing di failover.

Prerequisiti e limitazioni

Prerequisiti

Architettura

Stack tecnologico di origine

Un ambiente mainframe che include almeno uno dei seguenti database:

  • IBMIMSdatabase

  • IBMDB2banca dati

  • VSAMfile

stack tecnologico di destinazione

  • Amazon MSK

  • Amazon Elastic Kubernetes Service (Amazon) e Amazon Anywhere EKS EKS

  • Docker

  • Un SQL database AWS relazionale o no come il seguente:

    • Amazon DynamoDB

    • Amazon Relational Database Service (RDSAmazon) per Oracle, RDS Amazon per SQL Postgre o Amazon Aurora

    • Amazon ElastiCache per Redis

    • Amazon Keyspaces (per Apache Cassandra)

Architettura Target

Replica dei dati del mainframe nei database AWS

Il diagramma seguente illustra la replica dei dati del mainframe su un database AWS come DynamoDB, Amazon, Amazon o RDS Amazon Keyspaces. ElastiCache La replica avviene quasi in tempo reale utilizzando Precisly Capture and Publisher nell'ambiente mainframe locale, Precisly Dispatcher su EKS Amazon Anywhere nell'ambiente distribuito locale e Precisly Apply Engine e i connettori di database nel cloud. AWS 

Replica dei dati del mainframe nei database AWS

Il diagramma mostra il flusso di lavoro seguente:

  1. Precisly Capture recupera i dati del mainframe dai CDC log e li conserva in uno storage transitorio interno.

  2. Precisly Publisher ascolta le modifiche nella memoria interna dei dati e invia i CDC record a Precisly Dispatcher tramite una connessione /IP. TCP

  3. Precisamente Dispatcher riceve i CDC record da Publisher e li invia ad Amazon. MSK Dispatcher crea chiavi Kafka in base alla configurazione dell'utente e a più attività di lavoro per inviare i dati in parallelo. Dispatcher invia una conferma a Publisher quando i record sono stati archiviati in Amazon. MSK

  4. Amazon MSK detiene i CDC record nell'ambiente cloud. La dimensione della partizione degli argomenti dipende dai requisiti del sistema di elaborazione delle transazioni (TPS) per la velocità effettiva. La chiave Kafka è obbligatoria per l'ulteriore trasformazione e l'ordinamento delle transazioni.

  5. Il Precisly Apply Engine ascolta i CDC record di Amazon MSK e trasforma i dati (ad esempio, filtrandoli o mappandoli) in base ai requisiti del database di destinazione. È possibile aggiungere una logica personalizzata agli script Precisly. SQD (SQDè il linguaggio proprietario di Precisly.) Il Precisly Apply Engine trasforma ogni CDC record in Apache Avro o JSON formato e lo distribuisce su diversi argomenti in base alle tue esigenze.

  6. Gli argomenti Kafka di destinazione contengono CDC record in più argomenti basati sul database di destinazione e Kafka facilita l'ordinamento delle transazioni in base alla chiave Kafka definita. Le chiavi di partizione si allineano con le partizioni corrispondenti per supportare un processo sequenziale. 

  7. I connettori di database (applicazioni Java personalizzate) ascoltano i CDC record di Amazon MSK e li archiviano nel database di destinazione.

  8. Puoi selezionare un database di destinazione in base alle tue esigenze. Questo modello supporta sia i database No SQL che quelli relazionali.

Ripristino di emergenza

La continuità aziendale è fondamentale per il successo dell'organizzazione. Il AWS cloud offre funzionalità per l'alta disponibilità (HA) e il disaster recovery (DR) e supporta i piani di failover e fallback dell'organizzazione. Questo modello segue una strategia di DR attiva/passiva e fornisce linee guida di alto livello per l'implementazione di una strategia di DR che soddisfi i requisiti e le esigenze aziendali. RTO RPO

Il diagramma seguente illustra il flusso di lavoro del DR.

Flusso di lavoro di disaster recovery per la replica dei dati del mainframe su AWS

Il diagramma mostra:

  1. È necessario un failover semiautomatico in caso di guasto nella Regione 1. AWS In caso di errore nella Regione 1, il sistema deve avviare le modifiche al routing per connettere Precisly Dispatcher alla Regione 2. 

  2. Amazon MSK replica i dati tramite mirroring tra regioni. Per questo motivo, durante il failover, il MSK cluster Amazon nella Regione 2 deve essere promosso come leader principale. 

  3. Il motore di applicazione precisa e i connettori del database sono applicazioni stateless che possono funzionare in qualsiasi regione. 

  4. La sincronizzazione del database dipende dal database di destinazione. Ad esempio, DynamoDB può utilizzare tabelle globali ElastiCache e datastore globali.

Elaborazione a bassa latenza e ad alto rendimento tramite connettori di database

I connettori di database sono componenti fondamentali in questo modello. I connettori seguono un approccio basato sull'ascoltatore per raccogliere dati da Amazon MSK e inviare transazioni al database tramite elaborazione ad alta velocità e bassa latenza per applicazioni mission-critical (livelli 0 e 1). Il diagramma seguente illustra tale processo.

Utilizzo di connettori di database per replicare i dati del mainframe su AWS

Questo modello supporta lo sviluppo di un'applicazione personalizzata con utilizzo a thread singolo tramite un motore di elaborazione multithread.

  1. Il thread principale del connettore consuma i CDC record da Amazon MSK e li invia al pool di thread per l'elaborazione.

  2. I thread del pool di thread elaborano CDC i record e li inviano al database di destinazione.

  3. Se tutti i thread sono occupati, i CDC record vengono mantenuti in attesa dalla coda dei thread.

  4. Il thread principale attende che tutti i record vengano cancellati dalla coda dei thread e trasferisce gli offset in Amazon. MSK

  5. I thread secondari gestiscono gli errori. Se si verificano errori durante l'elaborazione, i messaggi non riusciti vengono inviati all'argomento DLQ (coda di lettere morte).

  6. I thread secondari avviano gli aggiornamenti condizionali (vedi Condition expression nella documentazione di DynamoDB), in base al timestamp del mainframe, per evitare duplicazioni o aggiornamenti nel database. out-of-order

Per informazioni su come implementare un'applicazione Kafka consumer con funzionalità multi-threading, consulta il post di blog Multi-Threaded Message Consumption with the Apache Kafka Consumer sul sito Web di Confluent.

Strumenti

AWSservizi

Altri strumenti

  • Precisly Connect integra i dati provenienti da sistemi mainframe legacy come VSAM set di dati o database IBM mainframe in piattaforme cloud e dati di nuova generazione.

Best practice

  • Trova la combinazione migliore di partizioni Kafka e connettori multithread per bilanciare prestazioni e costi ottimali. Più istanze Precisly Capture e Dispatcher possono aumentare i costi a causa del maggiore MIPS consumo (milioni di istruzioni al secondo).

  • Evita di aggiungere logica di manipolazione e trasformazione dei dati ai connettori del database. A tale scopo, utilizzate Precisly Apply Engine, che fornisce tempi di elaborazione in microsecondi.

  • Crea chiamate periodiche di richiesta o controllo dello stato di salute al database (heartbeats) nei connettori del database per riscaldare frequentemente la connessione e ridurre la latenza.

  • Implementa la logica di convalida del pool di thread per comprendere le attività in sospeso nella coda dei thread e attendi che tutti i thread vengano completati prima del prossimo sondaggio di Kafka. Ciò consente di evitare la perdita di dati in caso di arresto anomalo di un nodo, contenitore o processo.

  • Esponi le metriche di latenza attraverso gli endpoint sanitari per migliorare le capacità di osservabilità tramite dashboard e meccanismi di tracciamento.

Epiche

AttivitàDescrizioneCompetenze richieste

Configura il processo mainframe (batch o utilità online) per avviare il CDC processo dai database mainframe.

  1. Identifica l'ambiente mainframe.

  2. Identifica i database mainframe che saranno coinvolti nel CDC processo.

  3. Nell'ambiente mainframe, sviluppate un processo che avvii CDC lo strumento per acquisire le modifiche nel database di origine. Per istruzioni, consultate la documentazione del mainframe.

  4. Documenta il CDC processo, inclusa la configurazione.

  5. Implementa il processo sia in ambienti di test che in ambienti di produzione. 

Ingegnere del mainframe

Attiva i flussi di log del database mainframe.

  1. Configura i flussi di log nell'ambiente mainframe per acquisire i log. CDC Per istruzioni, consultate la documentazione del mainframe.

  2. Verifica i flussi di log per assicurarti che acquisiscano i dati necessari.

  3. Implementa i flussi di log in ambienti di test e produzione.

Specialista in database mainframe

Utilizzate il componente Capture per acquisire CDC i record.

  1. Installa e configura il componente Precisly Capture nell'ambiente mainframe. Per istruzioni, consultate la documentazione di Precisly.

  2. Verificate la configurazione per assicurarvi che il componente Capture funzioni correttamente.

  3. Imposta un processo di replica per replicare i CDC record acquisiti tramite il componente Capture.

  4. Documenta la configurazione di Capture per ogni database di origine.

  5. Sviluppa un sistema di monitoraggio per garantire che il componente Capture raccolga i log correttamente nel tempo.

  6. Implementa l'installazione e le configurazioni negli ambienti di test e produzione.

Ingegnere mainframe, Precisly Connect SME

Configura il componente Publisher per ascoltare il componente Capture.

  1. Installa e configura il componente Precisly Publisher nell'ambiente mainframe. Per istruzioni, consultate la documentazione di Precisly.

  2. Verificate la configurazione per assicurarvi che il componente Publisher funzioni correttamente.

  3. Impostate un processo di replica per pubblicare i CDC record nel componente Precisly Dispatcher di Publisher.

  4. Documenta la configurazione di Publisher.

  5. Sviluppa un sistema di monitoraggio per garantire che il componente Publisher funzioni correttamente nel tempo.

  6. Implementa l'installazione e le configurazioni negli ambienti di test e di produzione.

Ingegnere mainframe, Precisly Connect SME

Effettua il provisioning di Amazon EKS Anywhere nell'ambiente distribuito locale.

  1. Installa Amazon EKS Anywhere sull'infrastruttura locale e assicurati che sia configurata correttamente. Per istruzioni, consulta la documentazione di Amazon EKS Anywhere.

  2. Configura un ambiente di rete sicuro per il cluster Kubernetes, inclusi i firewall.

  3. Implementa e testa la distribuzione di applicazioni di esempio nel cluster Amazon EKS Anywhere.

  4. Implementa funzionalità di scalabilità automatica per il cluster.

  5. Sviluppa e implementa procedure di backup e disaster recovery. 

DevOps ingegnere

Implementa e configura il componente Dispatcher nell'ambiente distribuito per pubblicare gli argomenti nel cloud. AWS

  1. Configura e containerizza il componente Precisly Dispatcher. Per istruzioni, consulta la documentazione di Precisly.

  2. Implementa l'immagine Dispatcher Docker nell'ambiente Amazon Anywhere locale. EKS

  3. Configura una connessione sicura tra Cloud e Dispatcher. AWS

  4. Sviluppa un sistema di monitoraggio per garantire che il componente Dispatcher funzioni correttamente nel tempo.

  5. Implementa l'installazione e le configurazioni negli ambienti di test e produzione. 

DevOps ingegnere, Precisly Connect SME
AttivitàDescrizioneCompetenze richieste

Effettua il provisioning di un EKS cluster Amazon AWS nella regione designata.

  1. Accedi al tuo AWS account e configuralo per assicurarti che siano disponibili le autorizzazioni necessarie per creare e gestire il EKS cluster Amazon.

  2. Crea un cloud privato virtuale (VPC) e sottoreti nella regione selezionata. AWS Per istruzioni, consulta la EKSdocumentazione di Amazon.

  3. Crea e configura i gruppi di sicurezza di rete necessari per consentire le comunicazioni tra il EKS cluster Amazon e altre risorse inVPC. Per ulteriori informazioni, consulta la EKSdocumentazione di Amazon.

  4. Crea il EKScluster Amazon e configuralo con la dimensione del gruppo di nodi e i tipi di istanza corretti.

  5. Convalida il EKS cluster Amazon distribuendo un'applicazione di esempio.

DevOps ingegnere, amministratore di rete

Esegui il provisioning di un MSK cluster e configura gli argomenti Kafka applicabili.

  1. Configura il tuo AWS account per assicurarti che siano disponibili le autorizzazioni necessarie per creare e gestire il cluster. MSK

  2. Crea e configura i gruppi di sicurezza di rete necessari per consentire le comunicazioni tra il MSK cluster e altre risorse delVPC. Per ulteriori informazioni, consulta la VPCdocumentazione di Amazon.

  3. Crea il MSK cluster e configuralo per includere gli argomenti di Kafka che verranno utilizzati dall'applicazione. Per ulteriori informazioni, consulta la MSKdocumentazione di Amazon.

DevOps ingegnere, amministratore di rete

Configura il componente Apply Engine per ascoltare gli argomenti di Kafka replicati.

  1. Configura e containerizza il componente Precisly Apply Engine.

  2. Distribuisci l'immagine Docker di Apply Engine nel EKS cluster Amazon del tuo AWS account.

  3. Configura Apply Engine per ascoltare MSK gli argomenti.

  4. Sviluppa e configura uno SQD script in Apply Engine per gestire il filtraggio e la trasformazione. Per ulteriori informazioni, consulta la documentazione di Precisly.

  5. Implementa Apply Engine in ambienti di test e produzione.

Connetti con precisione SME

Esegui il provisioning di istanze DB nel AWS cloud.

  1. Configura il tuo AWS account per assicurarti che siano disponibili le autorizzazioni necessarie per creare e gestire cluster e tabelle DB. Per istruzioni, consulta la AWS documentazione del servizio di AWS database che desideri utilizzare. (Vedi la sezione Risorse per i collegamenti.)

  2. Crea una sottorete VPC e nella regione selezionataAWS.

  3. Crea e configura i gruppi di sicurezza di rete necessari per consentire le comunicazioni tra le istanze DB e altre risorse in. VPC

  4. Crea i database e configurali per includere le tabelle che verranno utilizzate dall'applicazione.

  5. Progetta e convalida gli schemi del database. 

Ingegnere dei dati, ingegnere DevOps

Configura e distribuisci connettori di database per ascoltare gli argomenti pubblicati da Apply Engine.

  1. Progetta connettori di database per connettere gli argomenti di Kafka con i AWS database creati nei passaggi precedenti.

  2. Sviluppa i connettori in base al database di destinazione.

  3. Configura i connettori per ascoltare gli argomenti di Kafka pubblicati da Apply Engine.

  4. Implementa i connettori nel EKS cluster Amazon.

Sviluppatore di app, architetto cloud, ingegnere dei dati
AttivitàDescrizioneCompetenze richieste

Definisci gli obiettivi di disaster recovery per le tue applicazioni aziendali.

  1. Definisci gli RTO obiettivi RPO e gli obiettivi CDC delle pipeline in base alle esigenze aziendali e all'analisi dell'impatto.

  2. Definisci le procedure di comunicazione e notifica per garantire che tutte le parti interessate siano a conoscenza del piano di disaster recovery.

  3. Determina il budget e le risorse necessari per implementare il piano di disaster recovery.

  4. Documenta gli obiettivi di disaster recovery, inclusi gli RTO obiettivi RPO e.

Architetto del cloud, ingegnere dei dati, proprietario dell'app

Progetta strategie di disaster recovery basate suRTO/RPO.

  1. Determina le strategie di disaster recovery più appropriate per le CDC pipeline in base alla criticità e ai requisiti di ripristino.

  2. Definisci l'architettura e la topologia del disaster recovery.

  3. Definisci le procedure di failover e failback per le CDC pipeline per garantire che possano essere trasferite rapidamente e senza problemi alla regione di backup.

  4. Documenta le strategie e le procedure di disaster recovery e assicurati che tutte le parti interessate abbiano una chiara comprensione della progettazione.

Architetto del cloud, ingegnere dei dati

Fornisci cluster e configurazioni di disaster recovery.

  1. Fornisci una AWS regione secondaria per il disaster recovery.

  2. Nella AWS regione secondaria, crea un ambiente identico alla AWS regione principale.

  3. Configura Apache Kafka MirrorMaker tra la regione principale e quella secondaria. Per ulteriori informazioni, consulta la MSKdocumentazione di Amazon.

  4. Configura le applicazioni in standby nella regione secondaria.

  5. Configura le repliche del database tra le regioni primarie e secondarie.

DevOps ingegnere, amministratore di rete, architetto cloud

Testa la CDC pipeline per il disaster recovery.

  1. Definisci l'ambito e gli obiettivi del test di disaster recovery per la CDC pipeline, inclusi gli scenari di test e RTO da raggiungere.

  2. Identifica l'ambiente e l'infrastruttura di test per condurre il test di disaster recovery.

  3. Prepara i set di dati e lo script di test per simulare scenari di errore.

  4. Verifica l'integrità e la coerenza dei dati per garantire che non vi siano perdite di dati.

Proprietario dell'app, ingegnere dei dati, architetto cloud

Risorse correlate

AWSrisorse

Risorse Precisly Connect

Risorse confluenti