数据库创新的十年:Amazon Aurora 的故事
从重新构想存储到无服务器计算,Aurora 持续突破数据库技术的边界。
2014年,当安迪·贾西(时任亚马逊云服务负责人)宣布推出 Amazon Aurora 时,其定位大胆而审慎:Aurora 将成为一款专为云构建的关系型数据库。它将提供对高性价比、快速且可扩展的计算基础设施的访问。本质上,Aurora 将结合 MySQL 的成本效益和简便性,与高端商业数据库的速度和可用性——这类数据库以往通常由企业自行管理。具体而言,Aurora 承诺提供五倍于 MySQL 的吞吐量(例如,事务、查询、读/写操作的数量),而价格仅为商业数据库解决方案的十分之一,同时还能卸下 costly 的管理挑战,并保持性能和可用性。
Aurora 于一年后,即 2015 年正式推出。其显著特点是实现了计算与存储的解耦,这与两者紧密相连的传统数据库架构形成鲜明对比。这一基础性创新,连同自动化备份、复制及其他改进,使得计算任务和存储都能轻松扩展,同时满足可靠性需求。
“Aurora 的设计保留了关系型数据库在核心事务一致性方面的优势。它在存储层进行创新,创建了一款为云构建的数据库,能够在无需牺牲性能的前提下支持现代工作负载,”亚马逊首席技术官 Werner Vogels 在 2019 年解释道。“为了解决关系型数据库的局限性,我们通过将系统分解为其基本构建块,重新构思了整个技术栈。我们认识到,缓存和日志记录层充满了创新机会。我们可以将这些层移入一个专门构建、可扩展、能自愈、多租户且针对数据库优化的存储服务中。当我们开始构建这个分布式存储系统时,Amazon Aurora 就诞生了。”
在两年内,Aurora 成为 AWS 历史上增长最快的服务。数以万计的客户——包括金融服务公司、游戏公司、医疗保健提供商、教育机构和初创公司——纷纷转向 Aurora 来承载其工作负载。
在随后的几年里,Aurora 持续演进,以适应不断变化的数字环境需求。最近在 2024 年,亚马逊宣布推出 Aurora DSQL。作为一项重大进步,Aurora DSQL 采用无服务器架构,专为全球规模和对可变工作负载的增强适应性而设计。
如今,国际数据公司的研究估计,与其他数据库解决方案相比,使用 Aurora 的企业在三年内的投资回报率达到 434%,运营成本降低 42%。
革新之时
2015年,随着云计算的普及,传统企业开始将工作负载从本地数据中心迁移出去,以节省资本投资和内部维护成本。与此同时,移动和网络应用初创公司需要能够即时扩展的远程、高可靠性数据库。趋势很明显:计算和存储需要具备弹性和可靠性。而现实是,当时大多数数据库根本没有适应这些需求。
这种僵化从其起源和要解决的问题来看是合理的。数据库最早的应用之一可以追溯到20世纪60年代:美国宇航局的工程师在建造探月航天器时,需要管理复杂的零件、组件和系统列表。这一需求催生了信息管理系统(IMS)的诞生,这是一种分层结构的解决方案,使工程师能够更轻松地定位相关信息,例如各种零部件的尺寸或兼容性。虽然 IMS 在当时是一大福音,但它也有局限性。查找零件意味着工程师必须编写一批特殊编码的查询,然后这些查询会遍历一个树状数据结构,这是一个相对缓慢且专业化的过程。
1970年,关系型数据库的概念首次公开亮相,由 E. F. Codd 提出。关系型数据库根据数据之间的关联方式来组织数据:例如,客户及其购买记录,或班级中的学生。关系型数据库意味着更快的搜索,因为数据存储在结构化的表中,并且查询不需要特殊的编码知识。借助 SQL 等编程语言,关系型数据库成为存储和检索结构化数据的主导模型。
然而,到了20世纪90年代,这种方法开始显现其局限性。需要更多计算能力的企业通常必须购买并物理安装更多的本地服务器。他们还需要专家来管理新的能力,例如日益增长的事务性工作负载——比如,当越来越多的客户将越来越多的宠物用品添加到虚拟购物车时。到 2006 年 AWS 出现时,这些传统数据库已成为企业 IT 堆栈中最脆弱、最缺乏弹性的组件。
云计算的出现承诺了一条更好的前进道路,提供更灵活的远程管理解决方案。亚马逊的工程师们认识到,云可以实现几乎无限的、网络化的存储,以及独立于存储的计算。
亚马逊关系型数据库服务于2009年首次亮相,帮助客户在云中设置、操作和扩展 MySQL 数据库。尽管该服务后来扩展到包括 Oracle、SQL Server 和 PostgreSQL,但正如 Jeff Barr 在 2014 年的一篇博客文章中所指出的,这些数据库引擎“被设计为在受限且有些简单的硬件环境中运行”。AWS 的研究人员挑战自我,审视这些限制,并“迅速意识到他们拥有一个独特的机会,可以创建一个涵盖存储、网络、计算、系统软件和数据库软件的高效、集成设计”。
在 2017 年的一篇论文中,亚马逊研究人员描述了 Amazon Aurora 的架构。“高吞吐量数据处理的核心约束已从计算和存储转移到网络,”该论文的作者写道。Aurora 的研究人员通过“一种新颖的、面向服务的架构”解决了这一限制,该架构提供了超越传统方法的显著优势。其中包括“将存储构建为一个跨多个数据中心的、独立的、容错且能自愈的服务……保护数据库免受网络或存储层的性能波动以及瞬态或永久性故障的影响。”
无服务器时代已至
自首次亮相以来的几年里,亚马逊的工程师和研究人员确保 Aurora 能够跟上客户的需求。2018年,Aurora Serverless 提供了一种按需自动扩展配置,允许客户根据自身需求上下调整计算容量。后续版本通过基于客户需求自动扩展,进一步优化了这一过程。这种方法使客户无需显式管理数据库容量;客户只需指定最小和最大级别。
实现这种“高效率水平下的资源弹性”意味着 Aurora Serverless 必须解决若干挑战,一篇 VLDB 2024 论文的作者写道。“这些挑战包括策略问题,例如如何定义‘热度’(即,作为决策基础的资源使用特征)”,以及如何确定是否需要采取补救措施。作者指出,Aurora Serverless 通过调整和修改“与资源超订、基于最新测量结果的响应式控制、分布式和分层决策制定,以及在数据库引擎、操作系统和虚拟机监视器层面为提高效率而进行的创新等成熟理念”来应对这些挑战。
截至2025年5月,Aurora 的所有产品都实现了无服务器化。客户不再需要选择特定的服务器类型或大小,也无需担心底层硬件或操作系统、补丁或备份;所有这些都由 AWS 完全管理。“我们从一开始就努力设计的一点是,让您无需担心内部机制的数据库,”AWS 副总裁兼杰出工程师 Marc Brooker 在 2024 年的 AWS re:Invent 大会上表示。
亚利桑那州立大学副首席信息官 John Rome 表示,这些正是该校所需的能力。每年秋季,当超过73,000名学生在多个校区上课时,大学的数据需求会激增。Aurora 让 ASU 只需为其使用的计算和存储付费,并帮助其实时调整。“我们将 Amazon Aurora Serverless 视为我们云成熟度的下一个阶段,”Rome 说,“它帮助我们在不常使用的系统上提高开发敏捷性并降低成本,从而进一步优化我们的整体基础设施运营。”
对于现已十岁的 Aurora 服务,其成熟度的下一个阶段可能是什么样子?2024年那篇论文的作者概述了几个潜在的路径。这些路径包括“引入用于实时迁移的预测技术”;“利用因互补资源需求而产生的统计复用机会”;以及“使用基于机器学习和强化学习的先进技术进行工作负载预测和决策制定”。
研究领域
- 云与系统
标签
- 数据库管理FINISHED