Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer un pipeline CI/CD pour la migration de base de données à l'aide de Terraform
Créé par le Dr Rahul Sharad Gaikwad (AWS), Aarti Rajput (), Ashish Bhatt (AWS), Aniket Dekate (), Naveen Suthar (AWS), Nadeem Rahaman (AWS), Ruchika Modi () et Tamilselvan P (AWS) AWS AWS AWS
Environnement : PoC ou pilote | Technologies : bases de données DevOps ; migration | Charge de travail : Microsoft |
AWSservices : AWS CodePipeline AWS DMS ; Amazon RDS |
Récapitulatif
Ce modèle consiste à établir un pipeline d'intégration et de déploiement continus (CI/CD) pour gérer les migrations de bases de données de manière fiable et automatisée. Il couvre le processus de mise en service de l'infrastructure nécessaire, de migration des données et de personnalisation des modifications de schéma à l'aide de Terraform, un outil d'infrastructure en tant que code (IaC).
Plus précisément, le modèle met en place un pipeline CI/CD pour migrer une base de données SQL Microsoft Server sur site vers Amazon Relational Database Service (RDSAmazon) sur. AWS Vous pouvez également utiliser ce modèle pour migrer une base de données de SQL serveur située sur une machine virtuelle (VM) ou dans un autre environnement cloud vers AmazonRDS.
Ce modèle permet de relever les défis suivants liés à la gestion et au déploiement de bases de données :
Les déploiements manuels de bases de données prennent du temps, sont sujets aux erreurs et manquent de cohérence entre les environnements.
La coordination du provisionnement de l'infrastructure, des migrations de données et des modifications de schéma peut s'avérer complexe et difficile à gérer.
Garantir l'intégrité des données et minimiser les temps d'arrêt lors des mises à jour des bases de données est crucial pour les systèmes de production.
Ce modèle offre les avantages suivants :
Rationalise le processus de mise à jour et de déploiement des modifications de base de données en mettant en œuvre un pipeline CI/CD pour les migrations de bases de données. Cela réduit le risque d'erreurs, garantit la cohérence entre les environnements et minimise les temps d'arrêt.
Contribue à améliorer la fiabilité, l'efficacité et la collaboration. Permet d'accélérer la mise sur le marché et de réduire les temps d'arrêt lors des mises à jour des bases de données.
Vous aide à adopter DevOps des pratiques modernes de gestion de base de données, ce qui améliore l'agilité, la fiabilité et l'efficacité de vos processus de livraison de logiciels.
Conditions préalables et limitations
Prérequis
Un actif Compte AWS
Terraform AWS Provider version 3.0.0 ou ultérieure à partir de HashiCorp (voir le GitHub référentiel
de ce fournisseur) Politique du moindre privilège AWS Identity and Access Management (IAM) (voir le billet de blog Techniques de rédaction des IAM politiques du moindre privilège
)
Architecture
Ce modèle implémente l'architecture suivante, qui fournit l'infrastructure complète pour le processus de migration de base de données.
Dans cette architecture :
La base de données source est une base de données SQL serveur installée sur site, sur une machine virtuelle (VM) ou hébergée par un autre fournisseur de cloud. Le schéma suppose que la base de données source se trouve dans un centre de données local.
Le centre de données sur site est connecté via une AWS Direct Connect connexion VPN ou. AWS Cela garantit des communications sécurisées entre la base de données source et l' AWS infrastructure.
La base de données cible est une RDS base de données Amazon hébergée dans le cloud privé virtuel (VPC) à l' AWS aide d'un pipeline de provisionnement de base de données.
AWS Database Migration Service (AWS DMS) réplique votre base de données locale vers. AWS Il est utilisé pour configurer la réplication de la base de données source vers la base de données cible.
Le schéma suivant montre l'infrastructure configurée à différents niveaux du processus de migration de base de données, qui implique le provisionnement, la AWS DMS configuration et la validation.
Dans le cadre de ce processus :
Le pipeline de validation valide toutes les vérifications. Le pipeline intégré passe à l'étape suivante lorsque toutes les validations nécessaires sont terminées.
Le pipeline de provisionnement de base de données comprend différentes AWS CodeBuild étapes qui exécutent des actions Terraform sur le code Terraform fourni pour la base de données. Lorsque ces étapes sont terminées, il déploie les ressources dans la cible Compte AWS.
Le AWS DMS pipeline comprend différentes CodeBuild étapes qui effectuent des tests, puis fournissent l' AWS DMS infrastructure pour effectuer la migration à l'aide d'IaC.
Outils
Services AWS et outils
AWS CodeBuildest un service d'intégration continue entièrement géré qui compile le code source, exécute des tests et produit des ready-to-deploy progiciels.
AWS CodePipelineest un service de livraison continue entièrement géré qui vous aide à automatiser vos pipelines de publication pour des mises à jour rapides et fiables des applications et de l'infrastructure.
Amazon Relational Database Service (RDSAmazon) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le. AWS Cloud
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets qui offre évolutivité, disponibilité des données, sécurité et performances.
AWS Database Migration Service (AWS DMS) vous aide à migrer les banques de données vers AWS Cloud ou entre des combinaisons de configurations cloud et sur site.
Autres services
Terraform
est un outil IaC HashiCorp qui vous aide à créer et à gérer des ressources sur site et dans le cloud.
Référentiel de code
Le code de ce modèle est disponible dans le DevOps framework de migration de GitHub base de données à l'aide du référentiel d'exemples Terraform
Bonnes pratiques
Mettez en œuvre des tests automatisés pour la migration de votre base de données afin de vérifier l'exactitude des modifications de schéma et l'intégrité des données. Cela inclut les tests unitaires, les tests d'intégration et les end-to-end tests.
Mettez en œuvre une stratégie de sauvegarde et de restauration robuste pour vos bases de données, en particulier avant la migration. Cela garantit l'intégrité des données et fournit une option de secours en cas de panne.
Mettez en œuvre une stratégie de restauration robuste pour annuler les modifications apportées à la base de données en cas de défaillance ou de problème lors de la migration. Cela peut impliquer de revenir à un état de base de données antérieur ou de rétablir des scripts de migration individuels.
Configurez des mécanismes de surveillance et de journalisation pour suivre la progression et l'état des migrations de bases de données. Cela vous permet d'identifier et de résoudre rapidement les problèmes.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Installez et configurez Git sur votre poste de travail local. | Installez et configurez Git sur votre poste de travail local en suivant les instructions de la documentation Git | DevOps ingénieur |
Créez un dossier de projet et ajoutez les fichiers du GitHub référentiel. |
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Mettez à jour les paramètres requis. | Le Dans le | DevOps ingénieur |
Initialisez la configuration Terraform. | Dans le
| DevOps ingénieur |
Prévisualisez le plan Terraform. | Pour créer un plan Terraform, entrez la commande suivante :
Terraform évalue les fichiers de configuration pour déterminer l'état cible des ressources déclarées. Il compare ensuite l'état cible à l'état actuel et crée un plan. | DevOps ingénieur |
Vérifiez le plan. | Passez en revue le plan et confirmez qu'il configure l'architecture requise dans votre cible Compte AWS. | DevOps ingénieur |
Déployez la solution. |
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Validez le déploiement. | Vérifiez l'état du 1. Connectez-vous à la AWS CodePipeline console AWS Management Console, puis ouvrez-la 2. Dans le volet de navigation, sélectionnez Pipelines. 3. Choisissez le 4. Vérifiez que l'exécution du pipeline s'est terminée avec succès. | DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Nettoyez l'infrastructure. |
| DevOps ingénieur |
Ressources connexes
AWS documentation
Documentation Terraform