毫无疑问Cloud是数据库领域最大的趋势,从Gartner的报告可以看出,今年全球企业在 Cloud上的投入已经超过了私有化数据中心的投入,并且每年的增速都非常快。在数据库领域中也有着同样的趋势,2019年云上的数据库服务(Database as a Service)还不到传统数据库的一半,但在2022年几乎接近持平,可以预见2023年云数据库的占比一定会超过传统数据库。所以,云是毋庸置疑的趋势,在未来的数据库产品中,Cloud一定会变成数据库服务的承载平台。
一、数据库走向Serverless
近年来Serverless概念的热度相当高,Gartner、Forrester等知名咨询机构对Serverless投来关注的目光,AWS、阿里云、腾讯云等云计算大厂也在不断布局Serverless相关产品。可以说与Serverless的结合,再次为数据库的发展添了把火。那么,Serverless数据库到底是什么,有何价值?更进一步,Serverless会成为数据库的未来形态吗?
想要理解Serverless数据库,就要先了解数据库的发展历程。
在早期,用户普遍是自建数据库。作为最传统的数据库应用方式,用户在自己的机房中部署,不仅需要考虑物理部署和运维的方方面面,传统数据库的灵活性和可扩展性也很低,且价格昂贵、维护成本很高。随着云计算的普及,数据库上云成为应用主流。数据库在云上以PaaS服务的形态、以租用服务的方式提供,用户不用再关心机房的物理部署。由于这个阶段的云数据库只是简单地把数据库从本地迁移到云端,在架构上并没有做太多改变,因此数据库的弹性依然受限。
为了解决这一问题,云原生数据库出现了。由于云原生数据库完全为云设计,让计算、存储资源完全解耦,使用分布式云存储替代本地存储,将计算层变成无状态,从而能够充分发挥云的优势,具备弹性可扩展的特性,让用户不需要担心日常业务扩容问题。但云原生数据库也有自己的瓶颈,即不能按需自动缩放,也不能按更小粒度实现按使用量付费。当用户遇到数据库扩容的突发需求时,就只能根据业务实际使用情况手动调整数据库容量大小。
尽管这种方式的确可行,但却会耗费大量的时间和成本。即使是数据库方面的专家,面对波动剧烈的应用,在兼顾性能及成本的情况下,要手动管理数据库容量也并不是一件容易的事情。
在此背景下,Serverless数据库出现了。由于具备完全自动化的扩容能力,Serverless数据库能够随着用户业务的请求数的增加和减少,智能化的“膨胀”和“缩小”,实现资源的自动“吞吐”。当流量洪峰来临时,可以自动调配资源支持;流量进入低谷时,则可以自动释放掉资源,节约成本。这种能力正是Serverless理念的体现,将数据库底层和业务不相关的部分抽象出来,为开发者提供直接的运行环境,让开发者不需要关心服务器基础设施,就可以直接调用函数平台完成函数运行。服务器的逻辑和状态也是由服务提供方管理,服务只有在需要的时候才会自动伸缩,从而让数据库获得了极致的弹性,且开发者不用再为复杂的底层基础设施所困扰。
二、Serverless数据库的价值
Serverless概念的火爆,让Serverless数据库获得了越来越多的关注。其实从开发者的角度不难理解,为什么Serverless数据库一出现就受到了广泛的追捧。一项名为“在你的组织内部到底是谁在选择Database ”的调查显示,架构师、开发者、DBA三者作为数据库软件真正的用户,日常工作时间中有41%的时间都在做基础设施维护,如买服务器、部署服务器、运维等等,只有39%的时间在做业务创新。
随着数据架构越来越复杂,数据库越来越多,每一种数据库都有一套自己的技术,开发者要学习的东西也越来越多。要解决这种复杂性,释放开发者的生产力,让他们有更多的精力关注业务创新,Serverless带来的抽象就必不可少。
抽象程度越高,开发效率越高。从传统数据库上云到云原生数据库,已经一步步将云基础设施能力以及数据库内核层面能力抽象化,让数据库得以支撑高效的应用开发迭代。如今,Serverless在云原生基础上进一步抽象,可以让开发效率再次提升。Serverless是云原生走向成熟之后演变出的开发模式,Serverless数据库是云原生数据库发展的必然结果。对于所有创新的数据库公司来说,如果前两年的门票是云原生,那么今年的门票就变成了Serverless。
在高度的抽象下,Serverless数据库带来的价值显而易见:
第一,创建便捷。Serverless数据库的创建,用户不需要关心任何部署细节,几十秒内即可一键创建,召之即来,挥之即去。
第二,自动缩放。用户不需要考虑基础设施,Serverless数据库可以根据业务负载变化自动匹配。当业务吞吐达到一定程度,不用再停下来加服务器,系统会自动进行扩展;当业务峰值下降,系统能自动缩回,甚至缩到0。
第三,节约成本。Serverless数据库能够提供更细粒度的计费,按照实际使用付费,不使用则不计费。
第四,和应用开发体验深度整合。在过去数据库只关心性能、稳定性等各种指标,很少从开发者使用的角度来设计。
Serverless的出现,让数据库开始真正从用户角度出发,融入到现代的开发应用过程中,帮助用户更快、更流畅的构建应用。
基础设施层面,Serverless部署的成本变得极低,极致的Serverless不用关心任何运维的细节。你可以通过代码和open API控制这些集群的起停。在拥有更大规模的基础设施时,这点是非常重要的。Serverless在处理更复杂或更大系统的时候,能显著减低复杂性;在成本控制层面,Serverless能够真正按照资源的消耗量来去计费。对于开发者来说,想用数据库的时候,只要招手它就来,不用的时候,也不用给钱,任何时候去访问它,数据都在那儿,也能对外提供服务。
在这样的Serverless架构下,我们其实还能解锁更多的能力、更多的可能性。
举个例子,S3是TiDB Serverless Tier底下重度依赖的云对象存储服务。用过S3的肯定都知道它便宜,可用性很高。更重要的一点是数据共享,比如大家都在用AWS,A用户用S3,B用户部分数据也在S3上,比如说我想把我的数据共享给另外一个用户的时候,既然都在S3上,那共享就变得很简单。以前在私有环境下,你还需要把数据下载出来拷给他,再上传进去,然后才能做分析。如果是在数据量比较大的情况下,这几乎是不可想象的。这种新架构的一种可能性就是真正能够做到Data Sharing,当然这里面肯定还涉及到包括隐私计算,各种各样的安全性问题。但从技术底层来说,这种产品形态并非不可能了。
另一种场景,比如说我想做一个区块链的数据分析应用,但做这样的应用,第一步你得把数据准备好。区块链的数据其实也不小,经常是大几百GB或几个TB的数据。但如果在S3上有一个公共的数据集已经准备好了,那在云上 Serverless 用户只需要在启动的时候,加载这部分数据就好了。这些能力在云下是根本不可能完成的任务。
这些能力具备后,数据库的商业模式会变成什么样子?预计数据库作为一个软件形态本身会消亡,而数据库的平台化、微服务化会取代原来的数据库软件形式。今天可以看到几乎所有的数据库厂商,都在云上提供服务,印证了这个理论正在变成现实。
展望未来再往前一步,会发展成什么样子?
Serverless其实是云上Database Service更进一步产品形态的体现。现在用户可能还需要去关注买多少个数据库节点,买多少个集群,但是在未来,真正从开发者的角度来说,他所关心的应该只有数据操作的API,这一层才是离业务更近的东西。另一方面,当Serverless在云上被提供后,数据共享、交换就变成了一个很自然或者很简单的事情,那时候可能会出现一个叫做Data market的新商业模式。
数据库应该做得更简单,把开发者的体验带回从前。我们应该花更多的时间关注于业务的创新、关注于真正重要的事情,这些复杂的东西,就让它简单起来好了。未来真正重要的东西是什么?是流畅的开发体验。这就是行业终极的前进方向,也是每一个基础软件提供商应有的担当。




