Questo documento descrive come eseguire il deployment Migrazione live di RIOT per la migrazione a Redis Enterprise Cloud. Gli architetti di database, i team DevOps e SRE o gli amministratori di rete possono utilizzare questa architettura per offrire ai propri team migrazioni con tempi di riposo quasi nulli. Questo documento presuppone che tu abbia familiarità con l'utilizzo di Google Cloud CLI e in Compute Engine.
Architettura
Il seguente diagramma mostra l'architettura di riferimento che utilizza RIOT Live Migration Service per eseguire la migrazione delle origini compatibili con Redis in Redis Enterprise Cloud.
Per maggiori dettagli sull'architettura, vedi Migrazione live di RIOT per la migrazione a Redis Enterprise Cloud.
Il deployment di esempio in questo documento utilizza la seguente architettura in cui la sorgente è un OSS Redis su una VM Compute Engine:
Nel diagramma, un'istanza Redis OSS e RIOT sono raggruppate in un'unica VM Compute Engine per semplicità. In un ambiente di produzione, di eseguire sempre RIOT sulla propria VM per garantire delle prestazioni.
L'architettura di deployment di esempio contiene i seguenti componenti:
- Origine: istanza Redis OSS in esecuzione sulla VM di Compute Engine.
- Destinazione: Redis Enterprise Cloud in esecuzione nel VPC gestito di Redis.
- Servizio di migrazione: RIOT in esecuzione sullo stesso Compute Engine come Redis OSS.
- Configurazione di rete: peering VPC tra un VPC gestito e Redis gestito in un VPC.
Lo strumento di migrazione RIOT ha tempi di inattività quasi nulli. Durante la migrazione da Redis OSS (origine) a Redis Enterprise Cloud (target), le tue applicazioni possono comunque accedere Redis OSS senza impatto o interruzione del servizio. Durante il processo di migrazione, dopo il caricamento iniziale dei dati da Redis OSS, RIOT Live Migration continua a eseguire la migrazione delle modifiche da Redis OSS man mano che si verificano.
Obiettivi
- Configura l'origine Redis OSS creando e caricando i dati.
- Configura un cluster di destinazione per la migrazione in Redis Enterprise Cloud.
- Utilizza RIOT Live Migration per eseguire la migrazione dei dati da Redis OSS a Redis Enterprise Google Cloud.
- Comprendi le strategie di test, transizione e riserva.
Costi
Il deployment di questa architettura utilizza i seguenti componenti fatturabili di Google Cloud:
- Compute Engine per l'esecuzione di istanze Redis OSS e RIOT.
- Cloud Redis Enterprise acquistato tramite Google Cloud Marketplace.
- Tariffe di rete incorrenti a causa del traffico di migrazione dei dati tra zone e regioni.
Prima di iniziare
Completa i seguenti passaggi per configurare un ambiente per la migrazione.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Pub/Sub, Dataflow, and Compute Engine APIs.
Per ottenere le autorizzazioni necessarie per completare questo dispiegamento, chiedi all'amministratore di concederti il ruolo IAM Amministratore della fatturazione (
roles/billing.admin
) nella tua organizzazione. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso.Potresti anche riuscire a ottenere le autorizzazioni richieste ruoli personalizzati o altro ruoli predefiniti.
Configura un'istanza Redis OSS
Per avviare il deployment, devi installare l'istanza Redis OSS su un alla VM di Compute Engine. L'istanza funge da istanza di origine.
Installa l'istanza Redis OSS
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
In Cloud Shell, crea una VM Ubuntu:
gcloud compute instances create redis-oss-riot-vm \ --image-family=ubuntu-2004-lts \ --image-project=ubuntu-os-cloud \ --zone=us-central1-a \ --machine-type=e2-medium \ --network=VPC_NETWORK_NAME \ --subnet=VPC_SUBNETWORK_NAME \ --metadata=startup-script='#! /bin/bash apt-get update -y apt-get install redis-tools -y snap install redis'
Sostituisci quanto segue:
VPC_NETWORK_NAME
: il valore della tua rete VPC.VPC_SUBNETWORK_NAME
: il nome della subnet VPC.
Utilizza una connessione SSH per accedere all'istanza Compute Engine che esegue l'istanza Redis OSS:
PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Attiva la notifica dello spazio chiavi per la migrazione live, che è richiesta da RIOT:
redis-cli config set notify-keyspace-events KEA
Verifica che l'istanza Redis OSS sia operativa
In Cloud Shell, avvia Redis CLI:
redis-cli
Imposta e ottieni una coppia chiave-valore semplice:
set my_key my_value get my_key unlink my_key
L'output è il seguente:
OK "my_value" (integer) 1
Ora hai creato e accedi all'istanza OSS Redis e hai verificato che sia operativa.
Inserisci dati di esempio
In questa sezione, inserisci dati di esempio nell'istanza Redis OSS e verifica che siano stati inseriti correttamente.
In Cloud Shell, avvia Redis CLI:
redis-cli
Aggiungi le seguenti sei coppie chiave-valore come set di dati iniziale. Inserisci ogni comando singolarmente e attendi l'output
OK
prima di inserire la successiva coppia chiave-valore.set tennis federer
set soccer ronaldo
set basketball curry
set football montana
set golf woods
set swimmer phelps
Verifica di aver aggiunto sei coppie chiave-valore:
SCAN 0
L'output è il seguente:
"swimmer" "soccer" "football" "golf" "tennis" "basketball"
Dopo aver configurato e avviato la migrazione RIOT, i dati vengono migrati nell'istanza Redis Enterprise Cloud di destinazione.
Installa RIOT sulla VM dell'istanza Redis OSS
Per eseguire RIOT, devi assicurarti che la VM Compute Engine sia di dimensioni adeguate. In generale, consigliamo di dimensionare la VM su 8 vCPU o più grandi, a seconda della quantità di dati da trasportare e la frequenza di aggiornamento. Per ulteriori informazioni, consulta la guida alle risorse e al confronto per le famiglie di macchine.
In Cloud Shell, utilizza una connessione SSH per accedere all'istanza Compute Engine che esegue l'istanza Redis OSS:
PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Installazione di JDK per RIOT:
sudo apt install default-jre -y
Scarica e installa RIOT:
sudo apt-get install unzip wget https://github.com/redis-developer/riot/releases/download/v2.19.0/riot-redis-2.19.0.zip unzip riot-redis-2.19.0.zip
Verifica che RIOT sia installato correttamente:
./riot-redis-2.19.0/bin/riot-redis -V
L'output è simile al seguente, che mostra un logo RIOT e un numero versione:
A questo punto hai installato lo strumento di migrazione RIOT sull'istanza Redis OSS e ha confermato che è operativo.
Crea un'istanza Redis Enterprise Cloud
Cloud Redis Enterprise è disponibile tramite Cloud Marketplace. Se non hai configurato un cluster Redis Enterprise come istanza Redis Enterprise di destinazione, segui i passaggi descritti in questa sezione. Se hai già configurato un cluster Redis Enterprise come il database di destinazione, puoi saltare questa sezione e procedere con Avvia la migrazione live di RIOT.
In Cloud Marketplace, vai a Redis Enterprise Cloud Flexible - Pay as You Go.
Vai a Redis Enterprise in Marketplace
Per ulteriori informazioni, consulta le istruzioni nella pagina Abbonamenti flessibili con Cloud Marketplace della documentazione di Redis.
Accedi a Console Redis utilizzando le informazioni dell'account Redis che hai fornito al momento della sottoscrizione dell'abbonamento. a Redis Enterprise Cloud Flexible.
Crea un abbonamento flessibile seguendo le istruzioni in Documento Redis Crea un abbonamento flessibile. Scegli Google Cloud come fornitore cloud e crea un database con tutte le impostazioni predefinite.
Crea un peering VPC tra il tuo Virtual Private Cloud di Google e Redis un VPC gestito seguendo le istruzioni nel documento Redis Abilita il peering VPC.
Nella Console Redis vai a Subscription (Sottoscrizione) e individua il tuo database Redis Enterprise. stringa di connessione:
Prendi nota dell'IP e della porta dell'endpoint privato nel seguente formato:
ENDPOINT_IP:ENDPOINT_PORT
dove i valori rappresentano quanto segue:
ENDPOINT_IP
: il privato l'indirizzo IP dell'endpoint per il database Redis Enterprise.ENDPOINT_PORT
: il valore numero di porta dell'endpoint privato per il database Redis Enterprise.
Prendi nota della password del database.
Avvia la migrazione live RIOT
Per eseguire la migrazione dei dati da Redis OSS (origine) all'istanza Redis Enterprise Cloud (destinazione), segui questi passaggi:
In Cloud Shell, utilizza una connessione SSH per accedere all'istanza Compute Engine che esegue l'istanza Redis OSS:
PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Avvia una migrazione in tempo reale tra l'origine e la destinazione. Se la tua istanza Redis OSS è su Redis 7.2, devi utilizzare la replica basata sui tipi. Per informazioni sull'utilizzo dell'opzione
--type
, consulta la documentazione di Redis Replica basata sul tipo:./riot-redis-2.19.0/bin/riot-redis -u redis://localhost:6379 replicate \ -u redis://ENDPOINT_IP:ENDPOINT_PORT \ -a REDIS_ENTERPRISE_DB_PASSWORD \ --mode live
Sostituisci quanto segue con i valori che hai annotato nella sezione precedente:
ENDPOINT_IP
: il privato l'indirizzo IP dell'endpoint per il database del cluster Redis Enterprise.ENDPOINT_PORT
: il privato numero di porta dell'endpoint per il database del cluster Redis Enterprise.REDIS_ENTERPRISE_DB_PASSWORD
: la password del database del cluster Redis Enterprise.
L'output è simile al seguente:
Listening ? % ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0/? (0:00:00 / ?) ?/s\ Scanning 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6/6 (0:00:00 / 0:00:00) ?/s
Verifica la migrazione del database
È importante progettare e implementare una strategia di verifica della migrazione del database per confermare il buon esito della migrazione. Sebbene di verifica che utilizzi dipende dal tuo caso d'uso specifico. di eseguire i controlli seguenti per tutte le migrazioni:
- Controllo di completezza: verifica che le coppie chiave-valore iniziali Migrazione da Redis OSS a Redis Enterprise (caricamento iniziale) riuscita.
- Controllo dinamico: verifica che le modifiche nell'origine vengano trasferite all'istanza di destinazione (migrazione in corso).
Caricamento iniziale
In Cloud Shell, utilizza una connessione SSH per accedere all'istanza Compute Engine che esegue l'istanza Redis OSS:
PROJECT_ID=$(gcloud info --format='value(config.project)') $ gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
Avvia il Interfaccia a riga di comando Redis:
redis-cli -u redis://ENDPOINT_IP:ENDPOINT_PORT \ -a REDIS_ENTERPRISE_DB_PASSWORD
Verifica che la migrazione delle sei coppie chiave-valore da Redis sia andata a buon fine Istanza da OSS a Redis Enterprise:
SCAN 0
L'output è il seguente:
"swimmer" "soccer" "football" "golf" "tennis" "basketball"
Ottieni il valore della chiave tennis:
get tennis
L'output è il seguente:
[return federer]
Esci dall'interfaccia a riga di comando Redis:
exit
Migrazione in corso
Verifica che le modifiche in corso al codice open source Redis di origine siano riportate nell'istanza Redis Enterprise di destinazione:
- In Cloud Shell, utilizza una connessione SSH per accedere a Redis VM OSS.
Avvia l'interfaccia a riga di comando Redis:
redis-cli
Aggiungi nuove coppie chiave-valore:
Aggiungi una nuova coppia
runner bolt
:set runner bolt
Esegui l'upsert di una nuova coppia
tennis alcaraz
:set tennis alcaraz
L'output di ciascuno di questi comandi è il seguente:
OK
Nell'istanza Redis Enterprise, osserva che vengono aggiunte nuove coppie chiave-valore:
get runner
L'output è il seguente:
[return bolt]
Per verificare che tutte le coppie chiave-valore siano presenti, controlla i conteggi delle chiavi:
redis-cli info keyspace and redis-cli -u <REMOTE> info keyspace
L'output è il seguente:
# Keyspace db0:keys=7,expires=0,avg_ttl=0
Hai verificato che RIOT Live Migration ha eseguito automaticamente la migrazione di tutti le coppie chiave-valore dall'istanza Redis OSS di origine ed eventuali modifiche in corso alla fonte.
Esegui il passaggio dall'origine alla destinazione
Dopo aver verificato la migrazione del database, puoi eseguire il passaggio dall'istanza Redis OSS di origine all'istanza Redis Enterprise di destinazione:
- Sospendi l'accesso in scrittura del client all'istanza Redis OSS di origine utilizzando l'elenco di controllo dell'accesso Redis.
- A meno che tu non abbia bisogno di conservare il database di origine per i tuoi video di riserva dismissione del sistema operativo Redis di origine rimuovendo l'istanza VM.
- Esegui la migrazione del client nella stessa regione dell'istanza del database Redis Enterprise. Per informazioni, consulta la documentazione dell'host client.
- Nella console Redis, individua l'endpoint privato dell'istanza del database Redis Enterprise e aggiorna la connessione Redis del client all'endpoint privato. Per ulteriori informazioni, consulta Visualizzare e modificare i database nella documentazione di Redis.
- In Cloud Shell, interrompi il processo RIOT premendo Ctrl+C.
Prepara una strategia di riserva
Al termine del cutover, l'istanza Redis Enterprise di destinazione sistema di registrazione dei dati; l'istanza Redis OSS di origine non è aggiornata e alla fine rimosso. Tuttavia, ti consigliamo di eseguire il fallback all'istanza OSS Redis di origine in caso di errori gravi nella nuova istanza Redis Enterprise di destinazione.
Per evitare questi errori, potresti voler mantenere il codice sorgente originale L'istanza Redis OSS è aggiornata con le modifiche al database di destinazione. Quando per assicurarti che la nuova istanza di destinazione sia affidabile, puoi arrestare in esecuzione in un'istanza Compute Engine.
Esegui la pulizia
Le seguenti sezioni spiegano come evitare addebiti futuri per il progetto Google Cloud e le risorse Redis che hai utilizzato in questo e deployment continuo.
Elimina il progetto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimina il database Redis Enterprise
Per eliminare il database Redis Enterprise, consulta Elimina database nella documentazione di Redis
Passaggi successivi
- Scopri come definire l'ambito della migrazione a Redis Enterprise Cloud.
- Leggi i contenuti sulla migrazione dei dati di Google Cloud.
- Per una documentazione più approfondita e best practice, consulta documentazione di RIOT.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Centro architetture di Google Cloud.
Collaboratori
Autori:
- Saurabh Kumar | Partner Engineer ISV
- Gilbert Lau | Principal Cloud Architect, Redis
Altri collaboratori:
- Chris Mague | Customer Engineer, gestione dati
- Gabe Weiss | Developer Advocacy Manager
- Marco Ferrari | Cloud Solutions Architect