构建Amazon DynamoDB的初衷及其过去十年的演进Swami
时间:2022-03-07 21:27:02 | 来源:行业动态
时间:2022-03-07 21:27:02 来源:行业动态
: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的最初愿景作为指引,持续创新,为客户提供更易于查询的用例,支持进行复杂全局事务复制等,不断扩展能力范围,同时持续优化管理成本。