

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
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect"></a>

*Lucio Pereira, Sayantan Giri e Balaji Mohan, Amazon Web Services*

## Riepilogo
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-summary"></a>

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 (Amazon MSK) e connettori di database personalizzati nel cloud per migliorare scalabilità, resilienza e 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 ad AWS tramite Change Data Capture (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
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-prereqs"></a>

**Prerequisiti**
+ Un database mainframe esistente, ad esempio IBM DB2, IBM Information Management System (IMS) o Virtual Storage Access Method (VSAM), che desideri replicare nel cloud AWS
+ Un [account AWS](https://aws.amazon.com/account/) attivo
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) o [AWS Virtual Private Network (AWS VPN](https://aws.amazon.com/vpn/)) dal tuo ambiente aziendale ad AWS
+ Un [cloud privato virtuale](https://aws.amazon.com/vpc/) con una sottorete raggiungibile dalla tua piattaforma legacy

## Architecture
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-architecture"></a>

**Stack tecnologico di origine**

Un ambiente mainframe che include almeno uno dei seguenti database:
+ Database IBM IMS
+ Banca dati IBM DB2 
+ file VSAM

**Stack tecnologico Target**
+ MSK Amazon
+ Amazon Elastic Kubernetes Service (Amazon EKS) e Amazon EKS Anywhere
+ Docker
+ Un database relazionale AWS o NoSQL come il seguente:
  + Amazon DynamoDB
  + Amazon Relational Database Service (Amazon RDS) per Oracle, Amazon RDS per PostgreSQL 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 mainframe su un database AWS come DynamoDB, Amazon RDS, Amazon o Amazon Keyspaces. ElastiCache La replica avviene quasi in tempo reale utilizzando Precisly Capture and Publisher nell'ambiente mainframe locale, Precisly Dispatcher su Amazon EKS Anywhere nell'ambiente distribuito locale e Precisly Apply Engine e connettori di database nel cloud AWS. 

![Replica dei dati del mainframe nei database AWS](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/17ac53b7-86d5-4a8c-a55f-56b6338a1af3/images/777dd7da-48ed-4510-b8fa-9041be042671.png)


Il diagramma mostra il flusso di lavoro seguente:

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

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

1. Precisamente Dispatcher riceve i record CDC 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.

1. Amazon MSK detiene i record CDC 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.

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

1. Gli argomenti Kafka di destinazione contengono i record CDC 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. 

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

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

*Ripristino di emergenza*

La continuità aziendale è fondamentale per il successo dell'organizzazione. Il cloud AWS 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 active/passive DR e fornisce linee guida di alto livello per l'implementazione di una strategia DR che soddisfi i requisiti RTO e RPO.

Il diagramma seguente illustra il flusso di lavoro del DR.

![Flusso di lavoro di disaster recovery per la replica dei dati mainframe su AWS](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/17ac53b7-86d5-4a8c-a55f-56b6338a1af3/images/9cccba7a-7a25-411e-829f-7cd5a7a20ab4.png)


Il diagramma mostra:

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

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

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

1. 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 su listener 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](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/17ac53b7-86d5-4a8c-a55f-56b6338a1af3/images/79479634-becb-4212-bbfc-1a3b17ae1bed.png)


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 record CDC da Amazon MSK e li invia al pool di thread per l'elaborazione.

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

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

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

1. 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).

1. I thread secondari avviano gli aggiornamenti condizionali (vedi [Condition expression](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html) 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.](https://www.confluent.io/blog/kafka-consumer-multi-threaded-messaging/)

## Tools (Strumenti)
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-tools"></a>

**Servizi AWS**
+ [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK) è un servizio completamente gestito che ti aiuta a creare ed eseguire applicazioni che utilizzano Apache Kafka per elaborare dati di streaming.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) ti aiuta a eseguire Kubernetes su AWS senza dover installare o mantenere il tuo piano di controllo o i tuoi nodi Kubernetes.
+ [Amazon EKS Anywhere](https://anywhere.eks.amazonaws.com/docs/) ti aiuta a distribuire, utilizzare e gestire i cluster Kubernetes eseguiti nei tuoi data center.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
+ [Amazon](https://docs.aws.amazon.com/elasticache/) ti ElastiCache aiuta a configurare, gestire e scalare ambienti di cache in memoria distribuiti nel cloud AWS.
+ [Amazon Keyspaces (per Apache Cassandra)](https://docs.aws.amazon.com/keyspaces/latest/devguide/what-is-keyspaces.html) è un servizio di database gestito che ti aiuta a migrare, eseguire e scalare i carichi di lavoro Cassandra nel cloud AWS.

**Altri strumenti**
+ [Precisly Connect](https://www.precisely.com/product/precisely-connect/connect) integra i dati provenienti da sistemi mainframe legacy come set di dati VSAM o database mainframe IBM in piattaforme cloud e dati di nuova generazione. 

## Best practice
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-best-practices"></a>
+ 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 consumo di MIPS (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
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-epics"></a>

### Prepara l'ambiente di origine (locale)
<a name="prepare-the-source-environment-on-premises"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura il processo mainframe (batch o utilità online) per avviare il processo CDC dai database mainframe. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Ingegnere del mainframe | 
| Attiva i flussi di log del database mainframe. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Specialista in database mainframe | 
| Utilizzate il componente Capture per acquisire i record CDC. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Ingegnere mainframe, Precisly Connect SME | 
| Configura il componente Publisher per ascoltare il componente Capture. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Ingegnere mainframe, Precisly Connect SME | 
| Esegui il provisioning di Amazon EKS Anywhere nell'ambiente distribuito locale. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps ingegnere | 
| Distribuisci e configura il componente Dispatcher nell'ambiente distribuito per pubblicare gli argomenti nel cloud AWS. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps ingegnere, Precisly Connect SME | 

### Preparare l'ambiente di destinazione (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Effettua il provisioning di un cluster Amazon EKS nella regione AWS designata. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps ingegnere, amministratore di rete | 
| Esegui il provisioning di un cluster MSK e configura gli argomenti Kafka applicabili. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps ingegnere, amministratore di rete | 
| Configura il componente Apply Engine per ascoltare gli argomenti di Kafka replicati.  | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Precisamente Connect SME | 
| Effettua il provisioning di istanze DB nel cloud AWS. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Ingegnere dei dati, ingegnere DevOps  | 
| Configura e distribuisci connettori di database per ascoltare gli argomenti pubblicati da Apply Engine. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Sviluppatore di app, architetto del cloud, ingegnere dei dati | 

### Configura la continuità aziendale e il disaster recovery
<a name="set-up-business-continuity-and-disaster-recovery"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Definisci gli obiettivi di disaster recovery per le tue applicazioni aziendali. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Architetto del cloud, ingegnere dei dati, proprietario dell'app | 
| Progetta strategie di disaster recovery basate su RTO/RPO definiti. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Architetto del cloud, ingegnere dei dati | 
| Fornisci cluster e configurazioni di disaster recovery. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | DevOps ingegnere, amministratore di rete, architetto cloud | 
| Testa la pipeline CDC per il disaster recovery.  | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/replicate-mainframe-databases-to-aws-by-using-precisely-connect.html) | Proprietario dell'app, ingegnere dei dati, architetto cloud | 

## Risorse correlate
<a name="replicate-mainframe-databases-to-aws-by-using-precisely-connect-resources"></a>

**Risorse AWS**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html)
+ [Espressioni di condizione con Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html)
+ [Amazon EKS](https://docs.aws.amazon.com/eks/index.html)
+ [Amazon EKS Anywhere](https://anywhere.eks.amazonaws.com/docs/)
+ [Amazon ElasticCache](https://docs.aws.amazon.com/elasticache/index.html)
+ [Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/?icmpid=docs_homepage_databases)
+ [Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html)
+ [Amazon RDS e Amazon Aurora](https://docs.aws.amazon.com/rds/index.html)
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/index.html)

**Risorse Precisly Connect**
+ [Panoramica di Precisly Connect](https://www.precisely.com/product/precisely-connect/connect)
+ [Modifica l'acquisizione dei dati con Precisly Connect](https://help.precisely.com/r/Connect-CDC-SQData/4.1/en-US/Connect-CDC-SQData-Installation/Connect-CDC-SQData-Architecture)

**Risorse confluenti**
+ [Consumo di messaggi multithread con Apache Kafka Consumer](https://www.confluent.io/blog/kafka-consumer-multi-threaded-messaging/)