数字化转型方略 特刊 2022/01/06

为现代化应用而生,数据库的三次“进阶”

文/高玉娴
云数据库的出现,赋予了企业充分的弹性力和创新力。

所有固体都有一定的微观结构。如果施加外力后,物体能恢复到原来的形态,这就叫“弹性形变”。在生活中,很多东西都有弹性,比如橡皮筋、弹簧、弹弓等等。它们的共同点在于,可以根据不同需要进行拉伸或收缩。

在商业场景中,“弹性”同样重要。比如,零售商每年都要经历数次的大促流量峰值,游戏公司定期会有比赛访问高峰,媒体社交平台上常有突发新闻爆点……想要让用户体验始终“丝滑”,支持这些工作负载的数据库就要拥有足够的“弹性”——在高峰期快速扩容,在流量回落后又自动缩容。因为,让每个企业都按峰值容量购买和预置服务,又或是按平均容量预置,都不可避免地会造成资源浪费。

当然,企业现如今对灵活工作负载的需求,已经不仅仅表现在这些每年为数不多的点状峰值期,而是全方位的海量数据处理和毫秒级应用响应。一方面,随着“万物互联”时代到来,数据量出现爆炸式增长,其形态呈现多样化,其分布也更加分散化,这要求数据库技术与时俱进,以支持对数据的实时处理;另一方面,环境的更迭变幻加快,企业必须塑造自身的敏捷性、更快地构建现代化应用,而这背后,同样要求专库专用。

云数据库的出现,赋予了企业这样的弹性力和创新力。

初代”云托管数据库亮相,搞定弹性难题

作为云原生产物,云数据库天然具备云的多可用区部署、低运维和低成本等先天优势,能够为企业节省开销并提升稳定性。

反观传统商业数据库,不仅价格昂贵,同时,由于大多采用的是集中式架构,在扩展性和灵活性方面也先天不足。曾经,需要开发一款应用,在设计架构时,架构师有件非常重要的事情要做,那就是“Sizing”(中文翻译“规模估算”),就像是裁缝做衣服,必须量体裁衣。当我们需要新建或者扩容时,通常需要增加设备采购、设计周密扩容计划。并且,在面对海量数据处理需求时,只能走向分库、分表,这对应用程序是侵入性的,额外的查询逻辑和冗余存储,会造成诸多隐患。

因此,云托管数据库与传统数据库谁能匹配企业现代化应用对扩展性的需求?用数据说话,据Gartner 预测,到2023年,全球3/4的数据库都会跑在云上——这也在一定程度上印证了这一点。

在这个赛道,亚马逊云科技称得上是“初代”云托管数据库服务商。早在2009年,Amazon Relational Database Service (or Amazon RDS)就已问世,当时主要支持MySQL,如今已经成为了一项囊括Amazon Aurora、Oracle、SQL Server、PostgreSQL、MariaDB的云服务,一款历经12年捶打的成熟产品。;2014年推出的首款云原生关系型数据库Amazon Aurora是亚马逊历史上用户数量增长速度最快的云服务。

曾经,大家会疑惑于Amazon Aurora的定位,毕竟在它诞生的那个年代,传统关系型数据库市场已经被大众普遍认为是红海市场。但是Amazon Aurora“另辟蹊径”,集传统商业数据库与云数据库的优点于一身:既有传统商业数据库的高性能和高可用,又具有开源数据库的简单性和成本效益。

举例来说,当业内的数据库厂商还只关注数据库的性能指标,强调在单个可用区实现几倍于标准开源的性能时, Aurora已经做到了在跨几十公里的不同可用区(甚至是3个可用区)提供强大的业务连续性支 持,并且能够做到标准开源MySQL的5倍。这是因为,亚马逊科技选择了对于数据可用性不妥协的6个副本,并将其分布在3AZ的分布存储架构,这样一来,哪怕是在一个故障可用区加一个健康可用区的1份数据副本缺失的情况下,也不会影响企业业务运行。这对于企业面对各种不确定性、保持业务的连续性极为重要。

此外,由于Aurora的数据库计算资源与存储层是相互独立的,所以,数据库的容量设定不会影响数据库的效能。换句话说,在面对突如其来的高流量并发时,企业也可以从容应对,对计算节点和存储节点进行弹性扩容,按需、按量使用和付费。

自2015年亚马逊云科技跻身于Gartner发布的数据库管理系统魔力象限之后,已经连续第7年被评为云数据库领导者。

Gartner 2021全球云数据库魔力象限报告

Serverless数据库进阶,实现弹性伸缩

世界的发展不是线性的,一个创新或者一个事件的出现,往往会颠覆一个行业。技术世界也遵循这一规律。如果说云托管数据库给企业工作负载带来了一定程度的“弹性力”提升与运维资源的释放,那么,Serverless数据库的出现,则把这个“阈值”直接拉满——能够实现完全地按量使用和按需弹性,从而贴合各种场景的需求。

从架构出发来看其中的变化,虽然云数据库实现了计算和存储资源的解耦,但是,计算与内存依然是强绑定的。这会在很大程度上影响用户的灵活资源配置,比如,对于电商、社交等互联网平台,其峰值期通常会发生在集中的短时间内,平时只需少量内存就能保证99%的缓存命中率,但是,一旦到了高峰期,计算的需求就会远高于内存。所以,成本浪费依旧无法避免。

在这方面,Serverless数据库实现了突破——通过内存、计算、存储三层资源的分离,进一步提升了企业应用负载的弹性能力。换言之,在“初代”云数据库阶段,虽然用户不需要考虑扩缩容时机,但仍要考虑它的费用、成本等;而Serverless数据库则实现了按更小粒度的使用量付费。

敏锐观察行业技术发展的亚马逊云科技,很快就洞察到了这一技术的潜力。所以,才会在自己的产品设计中,一早就把Serverless理念融入其中。比如,2012年发布的Key-Value数据库DynamoDB,可以视作serverless的较早实现。

据了解,DynamoDB可以构建吞吐量和存储空间几乎无限的应用程序,并且,无论是在什么规模环境中,都可以提供一致的且毫秒级的响应,非常适用于任意规模、低延迟数据访问的应用场景——比如游戏、广告等等。在亚马逊内部,目前全球的多个高流量网站和系统都已经采用了DynamoDB,举例来说,在此前的Prime Day期间,更是进行了数万亿次的API调用,达到每秒8,920万次请求的峰值。

在亚马逊云科技看来,一切皆可Serverless。 Amazon DynamoDB,Amazon Aurora (云关系型数据库)、Amazon Timestream(时间序列数据库服务)、Amazon Keyspaces(兼容 Apache Cassandra 的托管数据库服务)和Amazon Quantum Ledger Database (Amazon QLDB)(全托管的分类账数据库),无一例外,全部是具有Serverless特性的数据库服务。

在Serverless架构下,不仅让数据库摆脱的单点的扩展瓶颈,而且还完全释放了运维的压力。用户只需要创建数据库端点,就可以选择想要使用的数据库引擎以及容量,操作极为简便。比如,用户只要设定Aurora Serverless最大与最小容量,或者特定的条件(比如一定的CPU使用量阈值),应用就会连接到代理(Proxy Fleet)中,从而实现工作负载资源的自动扩展。

据了解,更新到第二版本的Aurora Serverless已经可以在几分之一秒内,将数据库工作负载从数百个事务扩展到数十万个事务,如果和按照峰值负载配置容量的成本相比,最多可以帮助企业节省下90%的数据库成本。放在过去,这是非常不可思议的成本节约。

AI赋能数据库,解放人力,创造新应用

Serverless被视为继虚拟化、容器技术之后,云计算的第三代通用计算平台。通过封装几乎所有底层资源,赋予了企业所需的弹性力。与此同时,它还封装了大量的系统运维工作,进一步解放了开发人员的工作。通过在接入层、计算层和数据存储层等方面的Serverless化,企业的开发人员可以减少对底层基础设施的关注,专注于业务实现。

而在这基础上,如果加上AI的加持,人力将会被最大释放。

就像是自动驾驶汽车,当Level 5级来临之时,司机就可以被完全解放出来,在路上看书、看视频、开会、睡觉甚至是K歌。通过引入AI、机器学习等技术,数据库同样可以做到自动化运维——无论是打补丁、备份还是调优、修复、扩展,这些以前需要专门的DBA(数据库管理员)去完成的工作,就可以减少人工干预。比如,在今年re:Invent全球大会上发布的DevOps Guru for RDS,就是一个范例。它允许用户轻松地借助AI去检测、诊断和解决云托管数据库中的性能和操作问题。

如我们所知,数据库一直都是IT运维管理的重点,而且,因为工作繁琐、技术含量高,DBA人才非常紧缺。所以,AI的加入起码会带来两大好处:第一,简化数据库运维的复杂度,降低数据使用门槛,从而弥合人才短缺的困境;第二,从繁琐运维工作中解放出来的人工,还可以投入到更具创造力的工作中。

比如,亚马逊云科技提出的智能湖仓架构,不仅允许数据库、数据仓库以及各种分析工具之间实现数据的无缝流动,同时,基于机器学习能力,还能赋能于DBA、数据库工程师等人员。值得一提的是,在这个过程中,用户甚至不需具备机器学习的专业知识,只要使用熟悉的数据库查询语言(如SQL),就可以进行机器学习操作。

以点带面,亚马逊云科技的数据库服务与人工智能和机器学习实际上是深度集成的,体现在具体的产品上,包括了Amazon Aurora ML、Amazon Neptune ML等诸多功能服务。其中,Amazon Neptune ML借助由深度图数据库(DGL)和Amazon SageMaker 驱动的图神经网络(GNN),能在几小时内对图数据库进行基于机器学习的预测,用于知识图、欺诈检测或产品推荐应用中,通过所需的数十亿个节点/关系所蕴含的数据进行推断。

据了解,今年8月,亚马逊云科技已经通过与光环新网和西云数据的合作,在中国推出了Amazon Neptune ML。

数据库的“进阶”故事,未完待续

纵览全局,亚马逊云科技的数据库服务遵循的是五大理念,前面介绍的主要是三个方面:其一,专库专用,提供十数种专门构建的数据库服务,其中就包括了非常核心的、专为云平台打造的关系型数据库Amazon Aurora;其二,开创Serverless路线,进一步简化用户创建、维护和扩展数据库的过程,实现高度扩展性及自动伸缩容量;其三,AI赋能数据库,降低数据库运维成本,并让数据库也能直接参与机器学习。

除此之外,还有两点不得不提:一是作为全球最大的云服务商,亚马逊云科技的全球部署能力,基于遍及25个地理区域的81个可用区(AZ)全球基础设施,亚马逊云科技提供了多个可支持全球分布式应用系统的数据库功能,可以帮助企业将业务部署到全球;

二是平滑迁移的能力,通过多种创新的迁移服务,可以帮助企业实现数据库“无感”迁移。其中,在今年re:Invent上最新发布的Babelfish for Amazon Aurora PostgreSQL,可以帮助企业迁移SQL Server应用,而Amazon Database Migration Service Fleet Advisor则允许用户通过自动发现和分析迁移队列来快速构建数据库和分析自己的迁移计划。

可以说,一直以来亚马逊云科技都是云数据库领域的“风向标”,无论是最早的Amazon Redshift还是后来的Amazon Aurora,又或是现在的Serverless系列服务——云数据库的“时尚”风向,亚马逊云科技完全“拿捏”。

而未来,随着企业的转型“姿态”越来越快、越来越敏捷,可以肯定的是,现代化应用的构建和运行会常态化,而作为核心支撑的数据库技术的更新迭代,依旧任重而道远。所以,我们相信,亚马逊科技数据库服务的“进阶”故事,也仍是“未完待续”。

本文章选自《数字化转型方略》杂志,阅读更多杂志内容,请扫描下方二维码

《数字化转型方略》杂志