Configura una pipeline CI/CD per la migrazione del database utilizzando Terraform - 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à.

Configura una pipeline CI/CD per la migrazione del database utilizzando Terraform

Creato dal dott. Rahul Sharad Gaikwad (AWS), Aarti Rajput (), Ashish Bhatt (), Aniket Dekate (AWS), Naveen Suthar (), Nadeem AWS Rahaman (), Ruchika Modi (AWS) e Tamilselvan P () AWS AWS AWS AWS

Ambiente: PoC o pilota

Tecnologie: database DevOps; migrazione

Carico di lavoro: Microsoft

AWSservizi: AWS CodePipeline; AWSDMS; Amazon RDS

Riepilogo

Questo modello prevede la creazione di una pipeline di integrazione e distribuzione continua (CI/CD) per la gestione delle migrazioni dei database in modo affidabile e automatizzato. Copre il processo di fornitura dell'infrastruttura necessaria, la migrazione dei dati e la personalizzazione delle modifiche allo schema utilizzando Terraform, che è uno strumento di infrastruttura come codice (IaC).

In particolare, il modello imposta una pipeline CI/CD per migrare un database Microsoft SQL Server locale su Amazon Relational Database Service (Amazon) su. RDS AWS Puoi anche utilizzare questo modello per migrare un database SQL Server che si trova su una macchina virtuale (VM) o in un altro ambiente cloud su Amazon. RDS

Questo modello affronta le seguenti sfide associate alla gestione e alla distribuzione del database:

  • Le implementazioni manuali dei database richiedono molto tempo, sono soggette a errori e mancano di coerenza tra gli ambienti.

  • Il coordinamento del provisioning dell'infrastruttura, delle migrazioni dei dati e delle modifiche allo schema può essere complesso e difficile da gestire.

  • Garantire l'integrità dei dati e ridurre al minimo i tempi di inattività durante gli aggiornamenti del database è fondamentale per i sistemi di produzione.

Questo modello offre i seguenti vantaggi:

  • Semplifica il processo di aggiornamento e implementazione delle modifiche al database implementando una pipeline CI/CD per le migrazioni dei database. Ciò riduce il rischio di errori, garantisce la coerenza tra gli ambienti e riduce al minimo i tempi di inattività.

  • Aiuta a migliorare l'affidabilità, l'efficienza e la collaborazione. Consente un time-to-market più rapido e tempi di inattività ridotti durante gli aggiornamenti del database.

  • Ti aiuta ad adottare DevOps pratiche moderne per la gestione dei database, il che porta a una maggiore agilità, affidabilità ed efficienza nei processi di distribuzione del software.

Prerequisiti e limitazioni

Prerequisiti

Architettura

Questo modello implementa la seguente architettura, che fornisce l'infrastruttura completa per il processo di migrazione del database.

Architettura di pipeline CI/CD per la migrazione di un SQL database Server locale su Amazon on. RDS AWS

In questa architettura:

  • Il database di origine è un database SQL Server locale, su una macchina virtuale (VM) o ospitato da un altro provider di servizi cloud. Il diagramma presuppone che il database di origine si trovi in un data center locale.

  • Il data center locale e AWS siamo connessi tramite una connessione or. VPN AWS Direct Connect Ciò fornisce comunicazioni sicure tra il database di origine e l' AWS infrastruttura.

  • Il database di destinazione è un RDS database Amazon ospitato all'interno del cloud privato virtuale (VPC) on AWS con l'aiuto di una pipeline di provisioning del database.

  • AWS Database Migration Service (AWS DMS) replica il database locale su. AWS Viene utilizzato per configurare la replica del database di origine nel database di destinazione.

Il diagramma seguente mostra l'infrastruttura configurata con diversi livelli del processo di migrazione del database, che prevede il provisioning, la AWS DMS configurazione e la convalida.

Dettagli della pipeline CI/CD del processo di migrazione dall'ambiente locale a. AWS

In questo processo:

  • La pipeline di convalida convalida tutti i controlli. La pipeline integrata passa alla fase successiva quando tutte le convalide necessarie sono state completate.

  • La pipeline di provisioning del DB è composta da varie AWS CodeBuild fasi che eseguono azioni Terraform sul codice Terraform fornito per il database. Una volta completati questi passaggi, distribuisce le risorse nell'obiettivo. Account AWS

  • La AWS DMS pipeline è composta da varie CodeBuild fasi che eseguono i test e quindi forniscono l' AWS DMS infrastruttura per eseguire la migrazione utilizzando IaC.

Strumenti

Servizi AWS e strumenti

Altri servizi

  • Terraform è uno strumento IaC HashiCorp che ti aiuta a creare e gestire risorse cloud e locali.

Archivio di codice

Il codice per questo modello è disponibile nel GitHub Database Migration DevOps Framework utilizzando il repository di esempi Terraform.

Best practice

  • Implementa test automatici per la migrazione del database per verificare la correttezza delle modifiche allo schema e l'integrità dei dati. Ciò include test unitari, test di integrazione e end-to-end test.

  • Implementa una solida strategia di backup e ripristino per i tuoi database, soprattutto prima della migrazione. Ciò garantisce l'integrità dei dati e fornisce un'opzione di riserva in caso di guasti.

  • Implementa una solida strategia di rollback per annullare le modifiche al database in caso di errori o problemi durante la migrazione. Ciò potrebbe comportare il ripristino a uno stato precedente del database o il ripristino di singoli script di migrazione.

  • Imposta meccanismi di monitoraggio e registrazione per tenere traccia dell'avanzamento e dello stato delle migrazioni del database. Questo ti aiuta a identificare e risolvere rapidamente i problemi.

Epiche

AttivitàDescrizioneCompetenze richieste

Configura e configura Git sulla tua workstation locale.

Installa e configura Git sulla tua workstation locale seguendo le istruzioni nella documentazione di Git.

DevOps ingegnere

Crea una cartella di progetto e aggiungi i file dal GitHub repository.

  1. Apri il GitHub repository per questo pattern.

  2. Scegli Code per visualizzare le opzioni di clonazione e copia quelle URL fornite nella HTTPS scheda.

  3. Crea una cartella per il tuo progetto sulla tua postazione di lavoro.

  4. Apri un terminale e accedi a questa cartella.

  5. Clona il GitHub repository:

    git clone <github-repository-url>

    <github-repository-url>dov'è quello URL che hai copiato nel passaggio 2.

  6. Quando la clonazione è completa, vai al repository clonato nella cartella del progetto:

    cd <folder-name>/aws-terraform-db-migration-framework-samples
  7. Apri questo progetto in un ambiente di sviluppo integrato (IDE) a tua scelta.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Aggiorna i parametri richiesti.

Il ssm-parameters.sh file memorizza tutti i AWS Systems Manager parametri richiesti. Puoi configurare questi parametri con i valori personalizzati per il tuo progetto.

Nella setup/db-ssm-params cartella sulla workstation locale, aprite il ssm-parameters.sh file e impostate questi parametri prima di eseguire la pipeline CI/CD.

DevOps ingegnere

Inizializza la configurazione Terraform.

Nella db-cicd-integration cartella, inserisci il seguente comando per inizializzare la tua directory di lavoro che contiene i file di configurazione Terraform:

terraform init
DevOps ingegnere

Visualizza l'anteprima del piano Terraform.

Per creare un piano Terraform, inserisci il seguente comando:

terraform plan -var-file="terraform.sample"

Terraform valuta i file di configurazione per determinare lo stato di destinazione per le risorse dichiarate. Quindi confronta lo stato di destinazione con lo stato attuale e crea un piano.

DevOps ingegnere

Verifica il piano.

Rivedi il piano e conferma che configuri l'architettura richiesta nel tuo obiettivo Account AWS.

DevOps ingegnere

Distribuire la soluzione.

  1. Inserisci il seguente comando per applicare il piano:

    terraform apply -var-file="terraform.sample"
  2. Immettere yes per confermare. Terraform crea, aggiorna o distrugge l'infrastruttura per raggiungere lo stato di destinazione dichiarato nei file di configurazione. Per ulteriori informazioni sulla sequenza, vedere la sezione Architettura di questo modello.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Convalida la distribuzione.

Verifica lo stato della db-cicd-integration pipeline per confermare che la migrazione del database sia completa.

1. Accedi a AWS Management Console, quindi apri la AWS CodePipeline console.

2. Nel riquadro di navigazione, scegli Pipelines.

3. Scegliete la db-cicd-integration pipeline.

4. Verifica che l'esecuzione della pipeline sia stata completata correttamente.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Pulisci l'infrastruttura.

  1. Una volta completato il progetto, pulisci l'infrastruttura che hai creato utilizzando il comando:

    terraform destroy --var-file=terraform.sample
  2. Immettere yes per confermare.

DevOps ingegnere

Risorse correlate

AWS documentazione

Documentazione Terraform