本文档介绍了使用 Redis 输入和输出工具 (RIOT) Live Migration 服务从 Redis 兼容源(例如 Redis Open Source [Redis OSS]、AWS ElastiCache 和 Azure Cache for Redis)迁移到 Google Cloud 中全代管式 Redis Enterprise Cloud 的架构。 Google Cloud 本文档适用于希望从 Redis 兼容源迁移到全托管式 Redis Enterprise Cloud 的数据库架构师、数据库管理员和数据库工程师。
Redis Enterprise Cloud 是一项全托管式企业级 Redis 解决方案,能够为您的任务关键型应用提供支持。与 Redis 兼容的来源相比,它可提供更高的可伸缩性、可用性、安全性和运营效率。借助 RIOT(一个免费的命令行实用程序),您可以将数据从 Redis 迁移到 Redis Enterprise Cloud,而不会中断服务或造成任何停机。
架构
下图展示了迁移架构:
在该图中,RIOT Live Migration Service 用于将与 Redis 兼容的来源迁移到 Redis Enterprise Cloud。
该架构包含以下组件:
- 来源:Redis OSS、AWS ElastiCache 和 Azure Redis 等 Redis 兼容来源。
- 目标:在 Redis 托管式 VPC 中运行的 Redis Enterprise Cloud。
- 迁移服务:在 Compute Engine 虚拟机 (VM) 上运行的 RIOT。
使用的产品
此参考架构使用以下 Google 产品和第三方产品: 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 Cloud Architect
其他贡献者:
- Chris Mague | 数据管理,客户工程师
- Gabe Weiss | 开发技术推广经理
- Marco Ferrari | 云解决方案架构师