我之前也说过,Serverless代表了最高层次的云计算抽象形式,以为Serverless最大程度让开发者不用关注基础设施的细节,从而可以最大程度关注于应用层的业务逻辑,所以,要说2021年最让我眼前一亮的数据库发展,当然也是在Serverless方面,所以,在2021年亚马逊云科技re:Invent全球大会上,Aurora Serverless v2的发布是最让我兴奋的。
Aurora是亚马逊云科技提供的关系型数据库引擎,我敢说,Aurora Serverless v2诞生之后,关系型数据库将会焕发第N春!
虽然近几年NoSQL也是风生水起,但是关系型数据库依然是主流,这是因为关系型数据库足够强大,能够支持不同灵活度的数据存储设计,能够支持几乎所有的应用场景,就如同这次re:Invent全球大会重申的一样: Aurora是亚马逊云科技历史上增长最快的服务 (The fastest growing service in the history of Amazon),没有之一。
传统应用上云需要用Aurora,还有新的应用也会按照关系型数据库来构筑存储模型,Aurora成为增长最快的亚马逊云科技服务,可以说预料之中。我想,也正是因为Aurora增长这么猛,所以2017年亚马逊云科技推出了Aurora Serverless,提供了Serverless版的Aurora。
今年Aurora Serverless出了v2,所以2017年那版自然就加了后缀v1,实话实说,虽然2017年的Aurora Serverless v1也很让人兴奋,但是那时候我们就感觉那版限制太多(这个后面细说),今年的Aurora Serverless v2虽然还只是preview版,但是真的是一个大飞跃,这才是——真·Serverless!
在Aurora Serverless出现之前,Aurora只支持预置(Provision)方式分配资源,也就是需要通过手工方式扩展分配至数据库实例的计算资源,包括内存和 CPU和存储,对于需求量可预期而且稳定的应用,这当然挺好,但是如果需求量不可预期,或者起伏很大呢?这就显得不够了,想想看,你的应用平时只需要50G,但是尖峰时刻需要200G,为了应对尖峰你还是要预置200G的资源,这就花了冤枉钱,当然,你可以在尖峰时刻的前后手工调整预置资源,这且不说很麻烦,而且没办法应对突如其来的尖峰,如果尖峰时刻不可预期,你还是只能回退到多预置资源的方法。
Auora Serverless v1的出现就是为了应对这种困境,提出真正的『需要多少分配多少』,由亚马逊云科技平台根据实际需求量自动动态分配资源。在Aurora Serverless中,用ACU(Aurora Compute Unit)代表分配资源的最小单位,一个ACU相当于2G内存加上配套的CPU和网络资源,Aurora Serverless自动根据需求量自动增加和减少ACU数量,遇到尖峰时刻自动扩容,流量归零的时候一分钱不花,这种服务当然很棒!
但是,Aurora Serverless v1毕竟还是v1,有一些方面还是做得不够极致,有这些方面:
然而,上面收的这些缺点,随着Aurora Serverless v2的推出被一扫而光了!
我先要说清楚,我并不是批评v1,我只是指出v1的不足,我相信一个产品的进化都是逐步完善的过程,没有v1的基础,Aurora Serverless v2也不会这么闪亮,我们来看看在re:Invent 2021全球大会上宣布的Aurora Serverless v2的亮点吧:
现在你理解了,为什么我说Aurora Serverless v2才是『真·Serverless』了吧。
当然,我们也可以说Aurora Serverless v2这些新功能『本来就是Serverless该具备的』,只是晚来了几年而已,最最最让我感到兴奋的突破,是—— Serverless和预置(Provision)两种模式可以存在以同一个Aurora集群中 !
你知道这意味着什么吗?
意味着,我可以在一个Aurora集群中预置资源用于写操作,然后用Serverless来支持读操作,对于新闻媒体服务,就是写操作(编辑创作)稳定而且可预期,而读操作(读者订阅阅读)可能随新闻热点剧烈波动,这种Aurora Serverless和Provision的组合就十分合适。
同样,对于IoT这种写操作可能剧烈波动,而读操作相对稳定的系统,就可以反过来在一个集群中让写操作走Serverless,而读操作走Provision。
Serverless和Provision双剑合璧,得心应手!
在re:Invent的Deep dive on Amazon Aurora演讲中,还提到一个有趣的事情,在Aurora Serverless v2中,为了控制Buffer Pool的大小,结合了LFU(Least Frequently Used)和LRU(Least Recently Used)算法,才实现了缩容的效率。
演讲者Richard Waymire也说,这样一项技术,源自于Aurora Serverless,但是也会应用到Aurora Provision中去。
这是一个很好的Serverless反哺其他云计算服务的例子,我对于Serverless一直很有信心,因为这是大势所趋。
在亚马逊云科技re:Invent全球大会上,还有很多这样让人兴奋和有趣的知识,大家要是感兴趣也不妨去了解下。