本文档介绍了使用 Redis 输入和输出工具 (RIOT) Live Migration 服务从 Redis 兼容源(例如 Redis Open Source [Redis OSS]、AWS ElastiCache 和 Azure Cache for Redis)迁移到 Google Cloud 中全托管式 Redis Enterprise Cloud 的架构。本文档适用于希望从 Redis 兼容源迁移到全托管式 Redis Enterprise Cloud 的数据库架构师、数据库管理员和数据库工程师。
Redis Enterprise Cloud 是一项全托管式企业级 Redis 解决方案,能够为您的任务关键型应用提供支持。与 Redis 兼容来源相比,它提供增强的可扩缩性、可用性、安全性和运营效率。通过使用 RIOT(一个免费的命令行实用程序),您可以将数据从 Redis 迁移到 Redis Enterprise Cloud,而不会出现任何服务中断或停机时间。
架构
下图显示了迁移架构:
在该图中,RIOT Live Migration Service 用于将与 Redis 兼容的来源迁移到 Redis Enterprise Cloud。
该架构包含以下组件:
- 来源:与 Redis 兼容的来源,如 Redis OSS、AWS ElastiCache 和 Azure Redis。
- 目标:在 Redis 托管式 VPC 中运行的 Redis Enterprise Cloud。
- 迁移服务:在 Compute Engine 虚拟机 (VM) 上运行的 RIOT。
使用的产品
此参考架构使用以下 Google Cloud 和第三方产品:
- Compute Engine:一项安全且可自定义的计算服务,可让您在 Google 的基础设施上创建并运行虚拟机。
- RIOT Live Migration:一个免费的命令行实用程序,旨在帮助您将数据移入和移出 Redis。
- Google Cloud 上的 Redis Enterprise Cloud:全托管式企业级 Redis 解决方案,可帮助支持您的任务关键型应用。
使用场景
Redis 提供亚毫秒级的延迟、高级数据结构支持、弹性和开源可移植性。但是,在保持超低延迟的同时,可能很难扩缩自行管理的 Redis 兼容来源来满足企业苛刻的工作负载要求。当您超出自行管理的 Redis 集群部署规模时,可能难以扩缩。构建高可用性解决方案和管理复制既耗时又容易出错。扩缩还会带来与硬件管理、修补和升级相关的逻辑挑战和成本。
为帮助您应对这些挑战,Redis Enterprise Cloud 与 Google Cloud 完全集成,提供实时数据库服务来运行、扩缩和管理 Redis。Redis Enterprise Cloud 提供业务关键型应用所需的开源核心、完整的企业级功能和安全性、市场领先的性能、可伸缩性和可用性。Redis Enterprise Cloud 提供亚毫秒级的延迟、短短几秒的故障切换功能,以及 99.999% 的正常运行时间。
设计替代方案
RIOT 提供迁入和迁出 Redis 的灵活迁移解决方案。以下部分介绍了此架构可能的设计替代方案。替代方案会导致停机或要求目标数据库采用 Redis 灵活(或年度)订阅。
RDB 快照
您可以使用 Redis 数据库 (RDB) 快照将 Redis 中的数据保存到持久性存储空间中。它可执行数据集的时间点快照,通常用于备份 Redis 中的数据。除了使用 RIOT 执行迁移之外,您还可以使用 RDB 快照从 Redis OSS 实例迁移到 Redis Enterprise。但是,与 RIOT 不同的是,RDB 快照不支持实时迁移,并且会导致停机。
使用主动-被动同步
您可以使用 Redis OSS ReplicaOf
命令将一个 Redis 实例配置为另一个 Redis 服务器的副本。该命令在 Redis 复制上下文中使用,让您可以在不同的 Redis 实例中创建数据副本。与 RIOT 一样,ReplicaOf
命令支持实时迁移并且不会导致停机时间,但该命令内置于 Redis OSS 中,因此您无需安装任何工具。
Redis Enterprise 的主动-被动 地理分布使用 ReplicaOf
命令在多个地理位置扩缩 Redis 部署。如果目标数据库采用灵活(或年度)订阅,该命令还可用于将数据从 Redis 数据库迁移到 Redis Enterprise Cloud 订阅。但是,如果目标是固定订阅,则该命令不起作用,并且该命令在来自不同 Redis Cloud 账号的灵活订阅之间不起作用。
设计考虑事项
以下指南可帮助您开发满足组织的可靠性、费用和性能要求的架构。
可靠性
本架构中的迁移是从源 Redis OSS 实例到目标 Redis Enterprise 实例的单向迁移。完成从源 Redis OSS 到目标 Redis Enterprise 集群的切换后,来源不会与目标集群的更改保持同步。因此,如果您在生产环境中实现此架构,则无法将应用切换到后备中的最新源实例。
费用优化
将 Redis OSS 实例迁移到 Redis Enterprise 时,我们建议您将目标 Redis Enterprise 数据库按订阅分组,以便通过使用多租户来降低总拥有成本。例如,如果您有一组专为开发和测试而设计的数据库,则可以将它们分组到单个订阅中,因为它们具有相同的特征和网络要求。同样,一组用于生产的数据库可以托管在不同的订阅上。
性能
RIOT Live Migration 支持接近零的停机时间。在从源 Redis OSS 实例迁移期间,您的应用仍可以访问源 Redis OSS 实例,没有任何影响。在迁移过程中,从 Redis OSS 初始加载数据后,RIOT Live Migration 会在 Redis OSS 发生更改时继续迁移更改。
迁移初始键值对数据后,请执行从源 Redis OSS 实例到目标 Redis Enterprise 实例的切换。在切换过程中,您需要暂停对源 Redis OSS 实例的客户端写入。然后,等待 RIOT 处理从源 Redis OSS 实例到目标 Redis Enterprise 实例的所有剩余更改。
Deployment
如需部署此架构,请参阅部署 RIOT Live Migration 以从 Redis Open Source 迁移到 Redis Enterprise Cloud。
后续步骤
- 阅读 Google Cloud 数据迁移内容。
- 如需更详细的说明文件和最佳实践,请参阅 RIOT 文档。
- 如需查看更多参考架构、图表和最佳实践,请浏览云架构中心。
贡献者
作者:
- Saurabh Kumar | ISV 合作伙伴工程师
- Gilbert Lau | Redis 首席云架构师
其他贡献者:
- Chris Mague | 客户工程师,数据管理
- Gabe Weiss | 开发技术推广经理
- Marco Ferrari | 云解决方案架构师