Amazon DynamoDB发布十年 未来还有哪些创新?

2月10日消息,十年前,亚马逊云科技正式推出Amazon DynamoDB,一种快速、灵活的 NoSQL 数据库服务,可在任意规模环境中提供一致的个位数毫秒响应时间。

亚马逊首席技术官Werner Vogels曾表示:“我们非常高兴推出Amazon DynamoDB,一种快速、可靠且具有成本效益的 NoSQL 数据库服务,专为互联网规模的应用程序而设计。” Amazon DynamoDB代表了亚马逊在大型非关系型数据库和云服务技术领域15年持续投入的成果。

亚马逊云科技数据库、数据分析、机器学习副总裁Swami Sivasubramanian是Amazon DynamoDB开发的主要贡献者。

Amazon DynamoDB发布十年之际,Swami分享了Amazon DynamoDB的起源、前身以及未来。

以下为Swami分享内容:

关于Dynamo的起源

Swami:我们在2007年发表了Dynamo论文,探讨这个话题之前,我们需要先追溯到2004、2005 年。那时我正在攻读博士学位,(并随后于2006年从阿姆斯特丹自由大学获得计算机科学博士学位),也在考虑我将在哪里工作。看到亚马逊正在快速成长,并不断突破常规,打破界限,我选择了以亚马逊研究工程师实习生的身份加入亚马逊。

那时亚马逊云科技还不存在,加入亚马逊后,我很快意识到作为一家电子商务公司,亚马逊实际上也是一家科技公司。为了支持自身电子商务业务相关的各类运营场景和工作负载,亚马逊涌现出了大量创新技术、专利和发明,这种情形在全球任何一家公司都难得一见。

在亚马逊担任工程师时,我和团队曾在假期流量高峰期间经历过一次严重的扩展失败。这是由数据库事务死锁而导致的,其背后正是亚马逊当时使用的商业关系型数据库。故障发生后,我们一群工程师们一起编写了一份错误更正文档,对发生了什么、学到了什么、如何解决问题以及如何避免问题再次发生等进行了详细说明。

我当时问了一个问题:“为什么我们要为这些工作负载使用关系型数据库?本质上,它们并不需要 SQL 级别的复杂性和事务保证。”

这导致我们开始重新思考如何设计底层数据存储。当时,还没有可伸缩的非关系型数据库,这是我们开始着手搭建Amazon Dynamo原型并撰写论文的原因。事实上,Amazon Dynamo并不是工程师们当时唯一思考和研究的架构。我们意识到我们还需要一个可扩展的存储系统,Amazon S3就诞生于此。同时,还需要一个更易于管理的关系型数据库,能够自动进行复制、故障切换和备份/恢复,这也是Amazon RDS的由来。

最初撰写Dynamo论文时,我们就定了一条规则,即“在开发原始设计时不对外发布”,而是先将Dynamo运行于支持多个Amazon.com服务的实际生产环境中。这样,Dynamo论文就会是一种端到端的可用方案,并有实际应用经验。Werner和我对此感受非常强烈,因为我们不希望仅仅撰写一篇学术论文而已。10年后,我们非常荣幸的是Dynamo论文还获得了ACM的时间考验奖,这是由ACM主办的The SIGOPS Hall of Fame Award,从2016年开始评选过去十年科技圈最具影响力的论文名人堂。

构建Amazon DynamoDB的初衷及其过去十年的演进

Swami:Amazon DynamoDB背后的想法来自于与SmugMug、Flickr等客户首席执行官的对话和讨论。他们是最早带有互联网属性的公司,而在当时类似这样的互联网公司正在快速走向市场。他们的典型特征包括在线用户数量呈爆炸式增长、数据模式不固定,追求快速交付和轻运维等。传统关系型数据库将所有数据存储在一个盒子中,无法高效地扩展,这迫使用户需要对其数据库重新分片,然后还需要管理所有的分区和重新分区等,这让用户面临巨大的运维挑战和压力。

这对我们来说并不新鲜,构建原始Amazon Dynamo的初衷正是应对这些挑战。当时,Amazon Dynamo还不是一项服务,而是一个由亚马逊工程师构建的软件系统。在一次客户咨询会议上,时任Flickr 首席执行官Don MacAskill表示:“你们已经启用了 Amazon Dynamo,验证了可扩展非关系型数据库系统的可行性,为什么不能把它作为外部服务提供给我们使用?”

当时,所有亚马逊云科技的相关管理人员都在场,实际上,这也是我们问自己的一个问题。Flickr并不是唯一需要它的客户,越来越多的客户想要可扩展的数据库,无需处理分区和重新分区等复杂的运维工作,同时他们还需要极高的可用性。于是,我们开始认真思考构建一个不受SQL API限制的、可扩展的云数据库。

Amazon DynamoDB与原始Amazon Dynamo不尽相同,它实际上是通过几个原始Amazon Dynamo组件搭建的一项易于使用的云服务。客户不再需要配置集群,只需创建一个表存储数据,即可轻松实现无缝缩放。管理员不必执行任何操作,甚至无需安装单个库来操作数据库。

Amazon Dynamo到Amazon DynamoDB的演变非常重要,亚马逊真正以前所未有的方式拥抱云,获得它的弹性和可扩展性。

我们在2012年1月18日正式发布Amazon DynamoDB,该服务一经推出就大受欢迎,Flickr等公司率先使用该服务。Amazon DynamoDB强大的弹性、个位数毫秒的延迟性能等深受客户青睐。我们进行了大量创新,从协议层一直到SSD存储的底层存储层等各项功能。

这里不得不提的一个有趣的用例,也是最早将DynamoDB投入生产的客户之一,他们做的是超级碗(Super Bowl:全国橄榄球联盟决赛——全美直播的体育界春晚)广告投放。因为Amazon DynamoDB具备强大的弹性,可以无缝地扩展到每秒100,000次写入,并在超级碗活动结束后缩减,这样客户就不会担心产生额外的成本。当年,这在技术领域是个大事。现在大家习以为常的横向扩展与弹性,对当时的数据库而言,那是无法想象的。

那是一个大胆的设想。Amazon DynamoDB专为云而构建的架构让所有横向扩展用例成为可能。现在,Amazon DynamoDB正为多个高流量Amazon站点和系统提供支持,包括 Alexa、亚马逊全球电商网站和所有亚马逊运营中心。2021年,在亚马逊长达66小时的Prime会员日大促期间,上述站点和系统进行了数万亿次API调用,Amazon DynamoDB以低至个位数毫秒延迟的高性能表现,无感支持峰值达每秒8,920万个请求,同时确保系统的高可用性。

Amazon DynamoDB自2012年问世以来,我们为其增加了大量创新功能,不仅涉及底层可用性、持久性、安全性和规模等特性,还包括易用性等。

Amazon DynamoDB不止步于键值存储,还支持基于哈希的分区和基于范围的分区,并且增加了对二级索引的支持,支持更复杂的查询功能,同时不影响规模或可用性。

现在,Amazon Kinesis Data Streams也适用于Amazon DynamoDB,捕获可扩展的流式数据。我认为任何数据库都不应该是孤岛,更不能是死胡同。它应该支持生成变化的数据流,然后将这些数据流连接到分析应用程序或其他数据存储。

同时,我们也针对备份和恢复等功能全面创新。对于像Amazon DynamoDB 这样具有数百万个分区的大型数据库系统而言,备份和恢复并非易事,我们致力于通过创新让客户获得更好的体验。

我们还为Amazon DynamoDB添加了创建全局表的功能,以便客户可在轻松实现数据库负载全球覆盖的同时,获得近乎本地运行的读写性能。此外,Amazon DynamoDB还扩展了事务处理能力。所有这些创新都致力于不断提升Amazon DynamoDB的可用性和可扩展性。

我们同时致力于为客户提供更高的成本效益。客户通常需要长期存储数据,虽然这些旧数据可能很少被访问,但它必须保持高度可用,以便不时之需。例如,社交媒体用户很少访问旧的内容和图片,但一旦有这类访问请求,需要确保可以立即为用户提供这些内容。这种不经常访问的数据可能会给客户带来高昂的存储费用,而且这类数据的数量还在不断增长。过去,为了优化成本,客户会通过编写代码的方式,将旧的、访问频率较低的数据从Amazon DynamoDB 移动到存储成本较低的如Amazon S3中。

在2021 re:Invent全球大会上,我们推出了Amazon DynamoDB Standard-Infrequent Access表类,一种新的经济高效的表类,用于存储不经常访问的数据,同时保持Amazon DynamoDB的高可用性和性能。

不忘初心,我们始终将DynamoDB的最初愿景作为指引,持续创新,为客户提供更易于查询的用例,支持进行复杂全局事务复制等,不断扩展能力范围,同时持续优化管理成本。

展望Amazon DynamoDB的未来十年

Swami:十年前,当我们推出Amazon DynamoDB 时,客户才刚刚开始对云本身有了更好的理解,它的好处是什么,可以做什么。

如今,就客户构建IT应用程序而言,云已经成为的新常态,规模也是新常态,每个应用程序都需要基于不确定性构建。我们将继续代表客户进行创新,Amazon DynamoDB本身也在这个持续变革的旅程中。我们将继续朝着端到端的现代化数据战略迈进。正如之前提到的,数据库不应该是孤岛。

客户将不再只想在数据库中存储和查询数据,他们需要分析这些数据来创造价值,无论是通过创建更好的个性化推荐引擎,还是使用机器学习运行预测分析的预测系统。将数据流点对点无缝连接,并继续让Amazon DynamoDB更安全、高可用,性能更强且易于使用,这些都将是我们永无止境的追求。

极客网企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2022-02-10
Amazon DynamoDB发布十年 未来还有哪些创新?
2月10日消息,十年前,亚马逊云科技正式推出Amazon DynamoDB,一种快速、灵活的 NoSQL 数据库服务。

长按扫码 阅读全文