这几年,serverless数据库大行其道,被称为下一代数据库的最新演进方向。问题是,什么是无服务器数据库?Serverless数据库能给用户带来什么价值?目前各个公司在推广的Serverless数据库有什么区别?本文将一一解析!Serverless数据库发展之初的简单认识,Serverless数据库是云原生数据库发展的必然结果!在云原生的早期,也就是云数据库阶段,数据库只是简单的从本地迁移到云端,运行在托管的云基础设施上,架构没有太多变化,导致弹性数据库和资源的利用。率有限。随后,第一代云原生数据库诞生,一些云计算巨头开始改造数据库架构,实现计算与存储分离。这时候他们才有了真正的云架构,但是CPU和内存还是强绑定的。因此无法实现内存、计算、存储的解耦,导致企业无法按需满足计算需求。例如:计算和缓存的比例必须是1核CPU对应2GB内存。但是对于分析内存数据库的场景,他需要的是大量的内存,而不是那么多的CPU;而对于交易型用户,他对CPU的要求往往比内存还要高。同时,还涉及资源峰谷期的动态调整。因此,第一代云原生数据库虽然改变了数据库架构,但并没有实现计算和存储资源的解耦。这样一来,云原生数据库的价格就比自建数据库高,自然无法快速占领市场。2015年前后,Serverless横空出世,云原生数据库真正成为了“当红炸子鸡”。Serverless技术让企业只关心业务代码的功能实现,摆脱服务器管理的复杂环境。流量高峰来临时,可自动分配服务器资源支持;当流量进入低谷时,可以自动释放资源,节省服务器成本。按需付费,动态调整资源值得一提的是,无服务器计算仍然需要服务器,但云服务提供商动态管理计算资源的分配。云计算提供商将计算资源变成一个池子,用户无需创建实例即可快速完成部署。具体到数据库层面,用户只要使用基于Serverless特性的数据库,就可以根据函数运行消耗的内存和执行时间按使用量计费,大大降低了数据库的使用成本.此外,Serverless数据库不仅省钱,还具有更弹性的扩展能力,可以让计算资源的分配更加高效合理。用户选择Serverless数据库,通常可以理解为按量付费的模式,不需要搭建开发环境,更不需要专业的基础设施团队进行运维。当用户发起对无服务器服务的请求时,云提供商会分配一个实例(虚拟机)或pod(一组逻辑容器,通常由Kubernetes管理)来处理来自其资源池的动态。当无服务器代码退出时,分配的资源将返回到池中。通常,用户根据CPU容量、RAM分配和时间为使用的资源付费。不同产品之间的竞争最早的无服务器计算服务是亚马逊云技术公司的AWSLambda,它是函数即服务或FaaS的典型应用。之后,微软Azure、谷歌云,以及国内的阿里云、腾讯云、华为云都与FaaS开展了合作。相关产品跟进。因此,在Serverless数据库领域的探索上,亚马逊云技术也走在了行业前列,产品种类也更加丰富。秉承专用数据库的理念,亚马逊云科技推出了满足不同数据类型需求的数据库应用。目前,亚马逊云科技发布的产品包括:AmazonAuroraServerless关系型数据库、AmazonDynamoDBkey/value数据库、AmazonTimestream时序数据库、AmazonKeyspaces宽列数据库、AmazonQLDB账本数据库等,均属于无服务器数据库产品矩阵。也就是说,key-value数据、时序数据、文档数据的存储,都可以以serverless的形式对外开放。客户无需管理或配置服务器即可按量扩展,真正为价值付费。前不久,亚马逊云科技也发布了新一代Serverless数据库版本——AmazonAuroraServerlessV2。与2018年发布的AmazonAuroraServerless相比,新版产品可以实现即时扩容,真正实现了扩容能力的最大化。有意思的是,腾讯云在国内率先推出了Serverless数据库。2020年4月,腾讯云发布了首款Serverless数据库新产品——PostgreSQLforServerless。最快1秒完成数据库部署,成本降低70%。用户购买后,只需通过腾讯云相关组件一键创建数据库实例,最快一秒即可完成部署。此外,PostgreSQLforServerless在可用性和安全性方面优势突出,支持“一主一备”。当主实例意外不可用时,可以自动启动备份实例,业务连接也会同步转移到备份实例上,有效规避各种风险。2021年,阿里云还推出了Serverless数据库,即PolarDBServerless。最大的创新是在业界首次实现了内存与计算/存储的解耦,并将内存进一步池化形成三层池,让弹性能力呈指数级增长。最大的卖点是基于内存池,大大降低了成本,更适合用户的各种应用场景。阿里云官方给出的信息是,PolarDBServerless构建了一种全新的数据库形态,即DCaaDB(DatacenterasaDatabase),即整个IDC变成了一个大型的多租户数据库,其所有的CPU、内存、storage构成三个独立的资源池。任何用户(租户)都可以将任何资源灵活扩展到任何规格,用户为SQL动态消耗的CPU、内存和存储付费,无需预先设定任何规格。因此,相比较而言,Serverless数据库的功能是相似的,最终目的都是为了降低用户使用数据库的成本。但是,不同产品的部署环境不同,产品的成熟度也不同。
