企业文化

Our News
您的位置: 首页 > 企业文化 > 通过使用 Amazon DocumentDB 数据库克隆和 AWS DMS 实现蓝绿部署的持续交付

通过使用 Amazon DocumentDB 数据库克隆和 AWS DMS 实现蓝绿部署的持续交付

发布时间:2026-01-27 浏览量:17

利用 Amazon DocumentDB 和 AWS DMS 实现蓝绿部署的持续交付

关键要点

在本文中,我们将探讨如何通过 Amazon DocumentDB 的快速克隆功能和 AWS 数据库迁移服务DMS实现蓝绿部署。这个过程可以最小化应用程序部署期间的停机时间,同时确保数据的持续可用性和一致性。

在数字化转型的快速发展中,企业需要快速灵活地交付应用程序的更新。实现零停机的部署是持续交付的重要要求。蓝绿部署策略提供了一种有效的方法来满足这一需求。

引言

在数字化转型的快速变化中,组织面临着前所未有的挑战和机会。为了满足现代消费者和市场的需求,企业需要更加灵活地交付现有应用程序的改进。零停机时间是实现持续交付的一项关键要求。

为了应对这种需求,新技术不断涌现。复杂计算环境中复制与生产环境完全相同的测试环境往往是不切实际的,原因包括错误的数据、需要复制的巨型数据以及设置相同基础设施的需求。这一耗时的过程使得宝贵的工程资源无法专注于开发新功能和增强功能,导致很难进行全面的测试过程以确保对新版本应用程序的完全信心。

蓝绿部署是一种软件开发中用于降低更新或发布风险和停机时间的部署策略。这种方法维护两个相同的环境:一个环境蓝运行当前应用程序版本,另一个环境绿运行新版本。蓝绿部署通过简化回滚流程来增加应用程序可用性,并降低部署风险。如果部署失败,可以轻松回滚到蓝色环境。在绿色环境进行测试完成后,实时流量将指向绿色环境,蓝色环境将被弃用。

通过 Amazon DocumentDB 的克隆功能,您可以在几分钟内实现蓝绿部署。Amazon DocumentDB 是一种可扩展、高度耐用且完全托管的数据库服务,旨在处理企业级 JSON 工作负载。它通过提供内置的安全最佳实践、持续备份以及与其他 AWS 服务的本地集成,简化了架构。

在本文中,我们将探讨如何使用 Amazon DocumentDB 的 快速数据库克隆功能 和 AWS 数据库迁移服务 AWS DMS在两个环境之间同步数据,从而实现蓝绿部署。

解决方案概述

蓝绿部署包含两个相同的生产环境:蓝色和绿色。只有一个环境是活动的,所有部署都发生在非活动环境中。例如,如果蓝色是活动环境,则部署会发生在绿色非活动环境中。在验证完成后,切换操作将使绿色环境成为活动环境,蓝色环境变为非活动状态。

如下图所示是高层次的 Amazon DocumentDB 蓝绿部署架构。

我们的蓝绿部署解决方案基于 Amazon DocumentDB 快速克隆和 AWS DMS 变更数据捕获CDC功能。

蓝色环境代表当前的 Amazon DocumentDB 集群,负责处理生产流量。您可以通过从蓝色环境克隆数据库来创建绿色环境。您还需要创建 AWS DMS 复制实例,并 配置 CDC 任务,将蓝色环境的持续更改复制到绿色环境。有关使用 AWS DMS 的更多信息,请参见 从 MongoDB 迁移到 Amazon DocumentDB。

接下来,您可以在镜像生产环境蓝色的绿色环境中应用诸如次要版本升级、主要版本升级、创建或更新索引、重命名数据库或集合以及小型转换等更改。在此期间,蓝色环境继续处理生产流量,并通过 AWS DMS CDC 将数据更改复制到绿色环境。如果存在任何架构修改或数据库或集合名称的更改,可能需要表映射和转换规则。

在绿色集群升级并且复制完全同步后,您可以使用 DNS 路由功能将生产流量切换到绿色集群新的生产集群。通过更新 DNS 记录,您可以轻松地在蓝色和绿色环境之间切换,从而无缝引导流量到所需环境。

接下来,您需要设置一个反向的 AWS DMS CDC 迁移任务,将所有更改从绿色集群应用到蓝色集群旧生产集群。这样可以确保在需要回滚时不会丢失蓝色数据库中的数据。同样,可能需要根据新的数据库集群应用的更改来设置表映射和转换规则。

这种方法具有多方面的优势。回滚只需在绿色和蓝色之间切换。切换发生时是无缝的,因为代码已在运行并经过测试,不需要等待预热。从生产中验证更改而不会影响用户流量,从而降低了部署风险。

Amazon DocumentDB 快速克隆

Amazon DocumentDB 快速数据库克隆功能利用底层的 分布式存储引擎。Amazon DocumentDB 使用一种写时拷贝协议来创建克隆。该机制在创建初始克隆时使用最少的额外空间。当克隆首次创建时,Amazon DocumentDB 仅保留源数据库集群蓝色和新克隆集群绿色所使用的一份数据副本。只有在源 Amazon DocumentDB 集群或 Amazon DocumentDB 克隆集群对数据进行更改时,才会分配额外的存储。要了解有关写时拷贝协议的更多信息,请参见 Amazon DocumentDB 克隆的工作原理。

下图展示了使用快速克隆功能的蓝色和绿色实现。

假设您对源 Amazon DocumentDB 集群蓝色进行的更改导致第 1 页上的数据发生变化。Amazon DocumentDB 会创建新页 1[A],而不是写入原始的第 1 页。此时,Amazon DocumentDB 集群蓝色指向页 1[A]、2、3 和 4,而克隆集群绿色仍引用原始页。

在克隆集群绿色上,对存储卷的第 4 页进行更改。此时,Amazon DocumentDB 创建了新页 4[B],而不是写入原始的第 4 页。克隆现在指向页 1、2、3 和 4[B],而源集群蓝色则继续指向 1[A]、2、3 和 4。

设置蓝绿环境并应用更改

下图概述了配置 Amazon DocumentDB 的蓝绿部署环境所需的步骤。

实施步骤如下:

通过使用 Amazon DocumentDB 数据库克隆和 AWS DMS 实现蓝绿部署的持续交付 创建一个新的绿色堆栈,其结构与当前的蓝色堆栈相匹配,但数据库层除外。例如,新的绿色环境可以包括用于测试路由条目的 Route 53、应用程序层如负载均衡器、Amazon 弹性计算云Amazon EC2实例或容器,但不包括数据库层。在绿色环境中使用快速数据库克隆从蓝色环境的源集群创建一个 Amazon DocumentDB 克隆集群。为源蓝色集群启用变更流,这是进行 CDC 的必要条件。为了实现最小停机时间迁移,AWS DMS 需要访问集群的变更流。Amazon DocumentDB 变更流提供了集群的集合和数据库内发生的更新事件的时间排序序列。读取变更流,使 AWS DMS 能够执行 CDC,并将增量更新应用于目标集群。在绿色环境的克隆集群上应用更改,比如添加索引、重新组织数据和 主要版本升级。创建一个 AWS DMS 仅 CDC 迁移任务,以启用从源蓝色到目标绿色数据库的数据更改复制。复制任务应配置为自定义 CDC 开始时间,以匹配绿色克隆数据库集群最初创建的时间。此自定义开始时间确保从绿色环境克隆创建之时准确发生的数据复制。根据第 4 步中对克隆集群所做的更改,可能需要表映射和转换规则。在绿色环境中进行与数据库更改相对应的应用程序代码部署。在绿色环境中进行必要的测试,使用与当前生产 URL 不同的 Route 53 URL。

从蓝色环境切换到绿色环境

在绿色环境的功能和性能测试完成后,您可以将生产流量重定向到绿色环境。在启动切换之前,请参阅以下清单作为参考指南根据需要添加其他检查以适应您的环境:

白鲸加速器安装教程绿色环境在切换后成为新的生产数据库。因此,避免在绿色环境上执行会导致数据更改或环境之间数据不一致的破坏性测试。确保所有用户和角色在绿色环境中设置了适当的权限。验证绿色环境配置了正确的实例类型、自定义数据库参数组和安全组。确保为绿色环境的 Amazon DocumentDB 集群创建了所需的只读副本,以满足生产数据库的高可用性和读取扩展的要求。进行必要的测试以验证应用程序是否正常工作。

下图概述了将生产流量从蓝色环境重定向到绿色环境的步骤。

详细步骤如下:

停止蓝色环境上的用户流量,并关闭应用程序。您可以通过更新 Route 53 DNS 托管区域中的 别名记录 来停止流量到蓝色环境。反向 AWS DMS 数据库复制任务,使绿色成为源、蓝色成为目标。这确保在需要回滚的情况下,蓝色数据库不会丢失数据。根据绿色数据库集群中应用的更改,反向复制可能需要表映射和转换规则。更新生产 Route 53 路由记录,将最终用户流量引导至绿色环境。系统现在可供客户端应用程序使用。

用户的停机时间是步骤 1 和 3 之间的持续时间,不取决于数据库大小、变化复杂性或测试持续时间。

切换后的活动

在确认绿色环境的稳定性以及生产流量后,您可以停止 AWS DMS 任务并淘汰蓝色堆栈。

结论

在本文中,我们展示了如何使用 Amazon DocumentDB 快速数据库克隆功能和 AWS DMS CDC 实现 Amazon DocumentDB 的蓝绿部署。快速数据库克隆功能使您能够快速创建数据库的写时拷贝克隆,以最小化成本。此外,您还可以利用 AWS DMS CDC 减少应用程序的停机时间。

通过蓝绿部署策略,您可以在不影响生产环境的情况下对测试环境中的数据库进行更改。例如,您可以升级主要或次要数据库引擎版本、进行索引更改并调整数据库参数组。一旦这些更改完成,您可以将测试环境提升为新的生产数据库环境,实现近乎零停机时间。

如果您对此帖文有反馈,请在评论区分享。

关于作者

Gururaj S Bayari 是 AWS 的高级 Amazon DocumentDB 专家解决方案架构师。他喜欢帮助客户采用亚马逊专门构建的数据库,帮助客户设计、评估和优化基于 NoSQL 或关系型数据库的互联网规模和高性能工作负载。

QQ

在线咨询真诚为您提供专业解答服务

热线

13594780374
7*24小时服务热线

微信

二维码 扫一扫微信交流