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
Un attivo Account AWS
Terraform 0.12 o versione successiva installato sul computer locale (per le istruzioni, consulta la documentazione di Terraform
) Politica Least Privilege AWS Identity and Access Management (IAM) (vedi il post sul blog Techniques for
writing least privilege policies) IAM
Architettura
Questo modello implementa la seguente architettura, che fornisce l'infrastruttura completa per il processo di migrazione del database.
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.
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
AWS CodeBuildè un servizio di integrazione continua completamente gestito che compila codice sorgente, esegue test e produce pacchetti ready-to-deploy software.
AWS CodePipelineè un servizio di distribuzione continua completamente gestito che consente di automatizzare le pipeline di rilascio per aggiornamenti rapidi e affidabili di applicazioni e infrastrutture.
Amazon Relational Database Service (RDSAmazon) ti aiuta a configurare, gestire e scalare un database relazionale in. Cloud AWS
Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) è un servizio di storage di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni.
AWS Database Migration Service (AWS DMS) ti aiuta a migrare gli archivi di dati all'interno Cloud AWS o tra combinazioni di configurazioni cloud e locali.
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à | Descrizione | Competenze 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. |
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Aggiorna i parametri richiesti. | Il Nella | DevOps ingegnere |
Inizializza la configurazione Terraform. | Nella
| DevOps ingegnere |
Visualizza l'anteprima del piano Terraform. | Per creare un piano Terraform, inserisci il seguente comando:
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. |
| DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Convalida la distribuzione. | Verifica lo stato della 1. Accedi a AWS Management Console, quindi apri la AWS CodePipeline console 2. Nel riquadro di navigazione, scegli Pipelines. 3. Scegliete la 4. Verifica che l'esecuzione della pipeline sia stata completata correttamente. | DevOps ingegnere |
Attività | Descrizione | Competenze richieste |
---|---|---|
Pulisci l'infrastruttura. |
| DevOps ingegnere |
Risorse correlate
AWS documentazione
Documentazione Terraform