这几年,Serverless数据库大火,被称为是下一代数据库的最新演进方向。问题是,什么是Serverless数据库?Serverless数据库给用户带来了哪些价值?当前,各家都在推的Serverless数据库,有哪些区同点?本文将逐一进行分析!
Serverless数据库发展之初
简单理解,Serverless数据库是云原生数据库发展的必然结果!
在云原生早期阶段,也就是云数据库阶段,只是简单地把数据库从本地迁移到云端,运行在托管的云基础设上,在架构上并没有做太多改变,导致数据库的弹性以及资源的利用率受到限制。
之后,第一代云原生数据库诞生,一些云计算巨头企业开始对数据库架构进行改造,实现了计算和存储的分离,这时才拥有了真正的云架构,但CPU和内存依然是强绑定状态,无法实现内存、计算和存储的解耦,导致企业无法按需满足计算需求。比如:计算和缓存的比例,必须是1核CPU对应2GB内存。但对于分析型内存数据库场景来说,他需要大量内存,用不上那么多的CPU;而对于事务型用户来说,他的CPU需求往往要高于内存。同时,还涉及波峰波谷期的资源动态调整问题。
所以,第一代云原生数据库虽然改变了数据库的架构问题,但并没有实现计算和存储资源的解耦,导致云原生的价格高于自建数据库,自然也无法快速占领市场。
大概在2015年左右,Serverless诞生,云原生数据库才真正成为“当红炸子鸡”。Serverless技术可以让企业只关心业务代码的功能实现,脱离服务器管理的复杂环境。当流量洪峰来临时,可以自动调配服务器资源支持;流量进入低谷时,则可以自动释放掉资源,节约服务器成本。
按需付费,动态调整资源
值得一提的是,Serverless无服务器计算仍然需要服务器,只不过是由云服务商动态地管理计算资源的分布。云计算供应商将计算资源变成一个池子,用户无需创建实例,就能快速完成部署。
具体到数据库的层面,用户只要使用了基于Serverless特征的数据库,就可以基于函数运行所消耗的内存和执行时间,按使用量计费,极大地降低了数据库的使用成本。
另外,Serverless数据库除了省钱,还更具弹性扩展能力,可以让计算资源的配置更高效和合理。用户选用了Serverless数据库,通常可以被理解为是按需付费的一种模式,不需要搭建开发环境,更不需要配备专业的基础设施团队去做运维。
当用户发起无服务器服务请求时,云提供商会分配一个实例(虚拟机)或 pod(基于一组逻辑的容器,通常由 Kubernetes 管理)来处理来自其资源池的动态。当无服务器代码退出时,分配的资源将返回到池中。通常情况下,用户根据 CPU 容量、RAM 分配和时间为使用的资源付费。
不同产品之争
最早的无服务器计算服务是亚马逊云科技的 AWS Lambda,是功能即服务或 FaaS 的典型应用,之后Microsoft Azure 、 Google Cloud 以及国内的阿里云、腾讯云、华为云都进行了与 FaaS 相关的产品跟进。所以,在Serverless数据库领域的探索,亚马逊云科技也走在行业前列,产品类型也更为丰富。
秉持专库专用理念,亚马逊云科技推出了符合不同数据类型需求的数据库应用。目前,亚马逊云科技已发布的产品包括:Amazon Aurora Serverless关系型数据库,Amazon DynamoDB键/值数据库,Amazon Timestream时序数据库,Amazon Keyspaces宽列数据库,Amazon QLDB分类账数据库等,都属于Serverless数据库产品矩阵。也就是说,不管是键值型数据、时序型数据,还是文档类数据的存储,都可以通过Serverless的形式对外开放,客户无需管理或配置服务器,就可以按量进行缩放,真正为价值付费。
不久前,亚马逊云科技还发布了新一代Serverless数据库版本——Amazon Aurora Serverless V2,相比于2018年发布的Amazon Aurora Serverless,新版产品能够实现瞬间扩展,真正将扩展能力发挥到极致。
有意思的是,国内率先推出Serverless数据库的是腾讯云。2020年4月,腾讯云发布首个Serverless数据库新品——PostgreSQL for Serverless,该数据库能够最快1秒完成部署,成本降低70%。用户在购买之后只需要通过腾讯云相关组件一键创建数据库实例,最快1秒钟就可以完成部署。另外,PostgreSQL for Serverless在可用性和安全性等方面具有突出优势,支持“一主一备”,当主实例出现意外不可用时,能自动启动备份实例,业务连接也将同步转移至备用实例,有效避免了各种风险。
2021年,阿里云也推出了Serverless数据库,那就是PolarDB Serverless,最大创新之处在于:在业内首次实现了内存与计算/存储的解耦,内存进一步池化,形成三层池化,使得弹性能力呈指数级上升。最大的卖点是,基于内存池化,大幅度降低了成本,更贴合用户的各种应用场景。
阿里云给出的官方资料是,PolarDB Serverless构建了一个全新的数据库形态,即DCaaDB(Datacenter as a Database),也就是整个IDC变成了一个多租户的大数据库,其全部的CPU,内存,存储构成三个独立的资源池。任何一个用户(租户)都可能任意的弹性扩展任何一种资源到任何一个规格,用户为其SQL动态消耗的CPU、内存和存储买单,不需要预置任何的规格。
所以,对比来看,Serverless数据库的功能都差不多,最终目标都是为了降低用户使用数据库的成本。只不过,不同产品部署环境不同,产品的成熟度也不一样。