Amazon 如何利用 AWS 实现数据库自由

当人们听说 Amazon 即将完成将其公司数据从 Oracle 数据库转移到 Amazon Web Services (AWS) 这一企业级的多年计划时,可能会想到这样一个问题:为什么这个以使用前沿技术而闻名的在线零售巨头,之前没有利用 AWS 的多样性、规模、可靠性和成本效益,尤其是考虑到两者同属一家公司?

第一个原因是,Amazon 早在 AWS 之前就诞生了,当时,对于企业级数据的存储和管理而言,像 Oracle 这样的整体式本地数据库解决方案是最合理的。第二个原因是,尽管那个时代已经结束,但脱离 Oracle 仍面临巨大障碍,许多希望转向 AWS 的企业也都非常清楚这一点。

“像 Amazon 这样的公司,数据库大多分散在全球各地的不同团队,如果能够将这些数据库统统从 Oracle 转移到 AWS,那么几乎任何企业都能做到这一点。”

Thomas Park,Amazon 消费者商业数据技术解决方案架构部门高级经理

脱离 Oracle:知易行难

在 Amazon 的案例中,脱离 Oracle 的障碍包括:公司队列的规模 — 超过 5000 个数据库连接到各种非标准化系统,其中的所有权和依赖关系未进行集中式管理,同时也存在与人员相关的风险。许多 Amazon 员工的职业生涯都是从 Oracle 数据库平台开始的。他们会全力支持这一改变吗? 有员工会因此离开吗?

许多希望从 Oracle 转向 AWS 的公司也面临类似挑战。就像这些公司一样,Amazon 迫切需要完成这一转型。Amazon 工程师在复杂且容易出错的数据库管理、调配和容量规划方面耗费了太多时间。公司的快速增长和急剧上升的吞吐量需要越来越多的 Oracle 数据库分区,由此带来了所有额外的运营和维护开销。最后一个原因是成本:如果一如既往地使用 Oracle,Amazon 已支付的数百万美元许可证费用将会增加:每年增幅达到令人瞠目结舌的 10%。

Amazon.com 消费者商业数据技术解决方案架构部门的高级经理 Thomas Park 曾帮助领导迁移项目,他表示:“许多企业和我们面临的问题一样,”“Oracle 是我们转向 AWS 的最大原因,也是我们面临的最大障碍。”

但那已成为过去。现在,Amazon 即将完成大约 50 PB 级的数据迁移,并关闭 5000 个 Oracle 数据库的最后一批。公司如何成功完成这这么大规模迁移?

管理文化变革和技术复杂性

Amazon 在迁移过程中面临两项关键挑战。一是如何解决大规模的项目管理问题,因为这对于带动多样化、全球分布的团队开展项目和跟踪进度非常必要。二是迁移涉及高度技术复杂性。要想成功完成该项目,很明显,公司的业务线需要集中协调、培训和技术支持。

为了克服这两项挑战,Amazon 一开始就创建企业项目管理办公室 (PMO),设定明确的业绩要求,并且对每个服务团队进行周度、月度、季度审查,以跟踪和报告项目进度和状态。

Amazon 消费者商业数据技术总监 Dave George 表示:“建立该项目时我们必须明确要达到什么目标,以及为什么要达到这个目标,然后再解决如何达到目标的问题。”“我们一旦明确了‘是什么’和‘为什么’的问题,也就建立了清晰的目标,并且会得到高管层的积极支持。这样的支持就保证了我们许多分布式技术团队,建立了一个清晰明确、无可争辩的专注点,并且致力于达成这些目标。为达成目标所付出的坚持不懈的努力确保了在实现核心系统重要的架构更新时,将其它业务优先事项受到的干扰最小化。”

AWS 技术核心团队,由经验丰富的解决方案架构师和数据库工程师组成,这也是项目成功的关键。该团队就哪些 AWS 服务最适合于从 Oracle 迁移过来的 Amazon 数据的每一个类别提出了建议,包括:

  • Amazon DynamoDB:推荐用于需要高可用性、更改类架构和大规模一致的个位数毫秒级延迟的关键服务。
  • Amazon Aurora:推荐用于需要高可用性和强参考完整性的稳定架构的服务。
  • Amazon Simple Storage Service (Amazon S3):推荐用于关系数据和非关系数据的低成本、长期存储。
  • 适用于 PostgreSQL 或 MySQL 的 Amazon Relational Database Service (Amazon RDS):推荐用于非关键任务以及轻松实现设置、运营和扩展。
  • AWS Database Migration Service (AWS DMS):可帮助您快速并安全地将数据库迁移至 AWS。源数据库在迁移过程中,可继续正常运行,从而最大程度减少依赖于该数据库的应用程序停机时间。DMS 可以在最广泛使用的商用和开源数据库之间迁移数据。
  • AWS Schema Conversion Tool (AWS SCT):可将源数据库架构和大部分数据库代码对象(包括视图、存储的过程和函数)自动转换为与目标数据库兼容的格式,从而使异构数据库的迁移可以预测。

该团队还提供关于特定 AWS 服务的正规说明、进行动手实验、提供一对一咨询,并协调 AWS 产品团队为面临特定挑战的 Amazon 业务提供直接帮助。

Park 表示:“让经验丰富的解决方案架构师和数据库工程师组成中心团队,这对项目成功至关重要。”“该团队不仅帮助培训了 Amazon 业务团队,还为所有客户提供了反馈和功能请求,让 AWS 服务变得更加强大。”

Amazon 还仔细考虑了如何以最佳方式,帮助 Oracle 数据库管理员走上现行的新职业发展道路。其中一个选项是,帮助他们获得转型成为 AWS 解决方案架构师所需的必要技能。另一个选项是,在基于 Oracle 的传统环境和 AWS 云环境之间搭建桥梁的过程中,给予管理角色,在此角色下,Oracle 背景很有帮助。

AWS 上的数据库自由

尽管迁移到 AWS 预配了更高容量,但削减了超过一半的 Amazon 数据库年运营成本。数据库管理和硬件管理开销已经大大减少,团队的成本分摊也比之前简单得多。大多数重新部署到 Amazon DynamoDB 的服务(通常是最关键的服务,需要高可用性和大规模个位数毫秒级延迟)的延迟减少了 40%,尽管现在的事务处理量是以前的两倍。在迁移过程中,服务团队还抓住机会进一步稳固服务、消除技术债务,并完全记录所有代码和依赖关系。

反映项目范围——迁移影响 800 项服务、数以千计的微服务、数以万计的员工以及数以百万计的客户,并且使 Amazon 的 AWS 数据库覆盖率超过 90% 的伙伴 AWS 客户——从其他考虑采取类似举措的大型企业身上,Amazon 汲取了教训。

“任何一个参与这个迁移项目的人,都不会说过程简单、容易或有趣,但完成迁移也不需要超能力。“如果像 Amazon 这样的公司能够将如此多的分散式、全球分布的数据库从 Oracle 迁移到 AWS,那么几乎任何企业都可以做到。”


了解详情

了解有关 Amazon DynamoDB 的更多信息。