这几年,无服务器Serverless技术与服务万众瞩目,给云计算带来了革命性的变革。
但是Serverless落地并没用想象的那样出现井喷,却表现心有余而力不足的疲态。原因是什么呢?
最主要的原因是无服务器生态缺少最后一块拼图——无服务器数据库ServerlessDB,无法形成全栈式无服务器解决方案。
2020年4月7日,腾讯云正式发布了国内首个Serverless数据库新品PostgreSQL for Serverless(ServerlessDB)。这样,开发者在腾讯云上就能够基于全栈Serverless解决方案构筑云原生应用。
而在国外,2018年8月,AWS无服务器服务Aurora Serverless正式支持MySQL版本数据库,2019年则正式支持PostgreSQL数据库。AWS能根据流量自动缩放规模,提供用户按需付费使用的两种数据库服务。
Serverless DB是Serverless生态领域最后一块拼图。有了这块拼图,Serverless技术与服务的“威力”将大增。
01
Serverless DB,数据库应用最新阶段
Serverless也被业界认为是继虚拟化、容器技术之后的云计算的第三代通用计算平台。它通过封装几乎全部的底层资源和系统运维工作,使开发人员更容易专注于应用本身,并可以按需使用云基础设施。
但是,客户只有在接入层、计算层和数据存储层都可以通过 Serverless 化的服务来实现,才能真正做到了无需关注底层设施,只需聚焦于业务实现。
腾讯云中间件产品中心总经理肖雨浓介绍,在接入层,通过API网关的弹性能力,可以实现安全、稳定的流量接入。
在计算层则通过云服务商高可用、高并发的Serverless技术——FaaS平台实现业务逻辑。
在数据存储层,则通过Serverless DB 直接对数据库连接并进行SQL操作。
这样,腾讯云就拥有了一套Serverless全栈的核心解决方案,包括Serverless API网关、腾讯云的Serverless函数计算服务、Serverless对象存储和数据库。
Serverless数据库原来没有自动伸缩的能力,现在通过底层共享池,让中间变成无状态的计算层,数据库也就拥有了快速扩缩容的能力,形成了ServerlessDB。现在用户可以做到一秒部署,可以让开发人员像写代码一样,把DB当做一个组件来使用。
数据库服务也不断演化,从传统的自建数据库一路演化到现在Serverless DB。
(数据库服务发展的四个阶段)
数据库应用的第一阶段是用户自建数据库,这是数据库应用最传统的方式,用户在自建机房时,就要考虑数据库选型,而数据库本身更要关注机房本身的物理部署,灵活性和可扩展性都不高。
第二个阶段,也是目前数据库应用的主流,在云上以PaaS服务的形态,以租用服务的方式提供给客户。在数据库PaaS服务阶段,用户不用关心机房的物理部署了,但是要关心扩缩容时机。
在PaaS方式使用数据库过程中,用户经常会碰到数据库扩容的突发需求,能否满足这些突发的扩容需求,成为用户关注的重点。
在PaaS服务的基础上,云服务商又提供了云原生的数据库服务,可以提供快速的扩缩容的能力。这就是数据库服务的第三个阶段。
在云原生数据库阶段,用户不需要考虑扩缩容时机,但是要考虑它的费用、成本等。云原生数据库还不能实现按更小的粒度实现按使用量付费。
第四个阶段则是无服务器数据库应用阶段。无服务器数据库具备完全自动化的扩容能力,它能够随着用户业务的请求数的增加和减少,智能化“膨胀”和“缩小”,实现资源的自动“吞吐”。
这种全自动化特性,能够为用户带来更经济的计费模式和更丝滑的扩容体验,它可以让业务根据请求的繁忙程度实现平滑的全自动响应,而无需人工介入。
Serverless最早由亚马逊提出,并于2014年推出第一个Serverless服务,在当时,因为过于颠覆,用得人很少,直到最近几年才逐渐被业界所接受。
腾讯云发布的PostgreSQL for Serverless和AWS Aurora Serverless的PostgreSQL数据库,简单的说就是无服务架构版的PostgreSQL数据库服务。
在西方,开源数据库PostgreSQL已经家喻户晓,广泛应用。最近又连续两年蝉联DB-engines 2017、2018年度数据库大奖。“PostgreSQL比其他监测到的343个数据库管理系统更受欢迎。“
由此我们我们用PostgreSQL来比较无服务器数据库与普通数据库。
首先,Serverless到底价值几何?
Server是各种可见的服务,如:存储服务、文件服务、数据库服务;而Serverless则不用关注这些服务,只用是关注业务逻辑本身。腾讯云中间件产品中心总经理肖雨浓说,Serverless架构三个核心的理念,也在Serverless数据库中也得到了体现。
第一,服务只有在需要的时候才会自动伸缩,不需要提前部署额外的资源,在资源成本、人力成本等会节省很多,在机会成本层面也会拥有优势。
第二,按量计费,当用户的应用运行时云服务才会计费,用户没有使用服务时不会生产任何费用,这与传统的互联网架构截然不同。在Serverless架构,如果有一个请求,就会按照一个请求的计费量收费,如果没有请求,底层也没有任何基础设施或者架构额外生产费用。
最后,降低门槛。因为Serverless架构更加易用,让客户聚焦在业务逻辑,让开发者聚焦在业务上,不需要资深的技术能力和技术背景就可以实现业务上云。
(无服务器技术的优势)
腾讯云数据库负责人、数据库领域资深技术专家林晓斌表示,以PostgreSQL for Serverless为例,相比传统的PostgreSQL,首先它具有云原生的能力,能够快速地扩容,又能够自动地缩容,像海绵一样,吸水的时候自动扩容,不用的时候挤一下水,容量就会小下去。
众所周知,传统数据库需要根据业务实际使用情况手动调整数据库容量大小,即使是数据库方面的专家,面对波动剧烈的应用,在兼顾性能及成本的情况下,要手动管理数据库容量也并不是一件容易的事情,而PostgreSQL for Serverless则很好的平衡了这点。
其次,正因为可以动态管理数据库容量大小,即能根据业务请求的繁忙程度进行自动响应资源,且用户不需要为数据库的闲时进行付费,仅需对实际占用的数据容量和数据库活动时的响应资源进行付费即可,因此Serverless能极大降低用户的使用门槛,用户无需预先规划好资源,具备高度弹性、高可用,按需使用,按量付费等特点,能让用户省心、省力、省钱。
第三,PostgreSQL for Serverless DB产品本身是基于PostgreSQL数据库的,所以从能力上百分之百兼容PostgreSQL的语法和功能。同时云上面的PostgreSQL本身提供的高可靠、高性能、高可用的能力是天然集成的,备份恢复、自动回档,不用怕误删等能力。
那么使用无服务器数据库有什么不足或者缺点吗?专家认为,至少在两个方向上,需要云服务商在ServerlessDB上进行努力。
一是与那些在专有服务器、虚拟机或容器中运行的数据库相比,一个不被经常使用的数据库可能会出现严重的响应延迟问题。
如果云服务提供商发现无服务器数据库较长时间未被使用,则会将其完全地关停。这就意味着,如果数据库需要一段时间才能启动运行,则会出现延迟的现象。
二是无服务器数据库常被草率地认为比传统数据库更为安全。实际上与传统架构相比,由于无服务器架构的应用组件更多,随着应用入口点的增多,它受到攻击的可能性也会呈指数式增长。
02
有了Serverless DB,无服务器生态就齐活了
在云计算领域,任何一项新技术或者新服务,在第一个玩家推出后,几乎在两三年内所有的头部玩家都会跟随,推出相应的技术与服务。
Serverless技术是这样,Serverless数据库领域也依然。
AWS在2017年的re:Invent大会上,宣布推出云端数据库的无服务器服务,数据库将能自动启动、关闭以及缩放规模。
AWS云端数据库无服务器服务Aurora Serverless正式支持MySQL和PostgreSQL,Aurora Serverless能根据流量自动缩放规模,提供用户按需付费使用的数据库服务。
用户只需要创建数据库端点,选择想要使用的数据库引擎以及容量。用户可以设定Aurora Serverless最大与最小容量,用户的应用会连接到代理(Proxy Fleet)中,代理会将工作负载路由到具自动扩展能力的资源池。用户可以设定在满足特定条件,像是达到设定的CPU使用量阈值时进行扩展。
AWS提到,资源池中都是“热资源”,扩展的速度很快,运算资源可以随时增加。以应付突如其来的需求。由于Aurora的数据库计算资源以及储存层是独立的,数据库容量设定不会影响数据库的效能。
在Amazon RDS管理控制台,用户还可以简单地透过滑鼠点击,在标准以及无服务器组态中切换。
腾讯云正式发布的Serverless数据库新品——PostgreSQL for Serverless,相比普通云上数据库,能够最快1秒完成部署,成本降低70%。
林晓斌表示,此次发布的数据库是国内第一家基于Serverless技术开发的新型数据库,既拥有Serverless化带来的低成本、易扩容等优点,又包含PostgreSQL实例本身的高可用、高性能、高安全等特性。这款数据库的发布是腾讯云数据库拥抱云原生战略的又一落地,也将进一步巩固腾讯云数据库在国内的优势。
由于没有初始化过程,用户在购买之后只需要通过腾讯云相关组件一键创建数据库实例,最快1秒钟就可以完成部署,大幅提升部署效率。
同时,腾讯云PostgreSQL for Serverless在可用性和安全性等方面也具有突出优势,包括支持“一主一备”,当主实例出现意外导致不可用时,将自动启动备份实例,业务连接也将同步转移至备用实例,有效避免了各种意外导致数据库无法使用的风险。此外,还支持标准PostgreSQL数据库本身的功能优点,如丰富的插件、便捷的备份恢复等特性。
据介绍,这款数据库主要针对当前开发者在使用数据库过程中的痛点问题,包括成本居高不下、性能体验差等设计的。比如对于低流量应用的用户,通常无法最大化使用最低配标准实例的性能,但是需要为多余的性能进行付费。借助 PostgreSQL for Serverless,可避免为多余的性能进行付费。另外,对于不可预测的工作负载、不常用的应用程序、以及开发和测试数据库等场景,这款数据库也具有极强的应用价值。
目前,市场上也出现了一些开源的Serverless数据库。如Firebase是一个移动平台,由互补的功能组成,方便开发者根据需要进行混合匹配,也可以帮助开发者快速开发高质量的应用,扩大用户群,提高收益。
而FaunaDB则是一个分布式、多租户、多模型的数据库系统,具有强大的查询语言。
国外专家David Yahalom认为,现在有很多可伸缩的关系数据库技术提供了读取或读写伸缩功能,如Oracle RAC、Amazon Aurora、Percona XtraDB、ClustrixDB、NuoDB 等。不过它们都不是本地无服务器产品。
当然,现在也有针对无服务器数据库的创新解决方案,其中就包括 FaunaDB(无服务器和全局复制的 NoSQL 数据库)、Google Cloud Spanner(强一致的分布式关系型数据库)或 Microsoft Cosmos DB(具有灵活一致性模型的无模式的多模型数据库)。但是想要使用这些数据库技术的传统应用将不得不进行大量的重写或重新平台化。
支持真正无服务器的关系型数据库,一方面要具有完整的服务器抽象和伸缩能力,另一方面要完整地支持ANSI SQL和ACID,这是一个相对较新的创新解决方案。
03
无服务器数据库市场的三大看点
对于亚马逊、甲骨文、微软、腾讯、阿里、谷歌和其他公司来说,一场数据库创新之战在无服务器数据库领域打响了!
未来,无服务器数据库市场的发展有三大看点:
首先,无服务器数据库的应用场景能否得到延伸?
根据目前的情况,Serverless数据库可以面向更多更灵活的业务。其中包括一下集中典型的场景:
第一,不常用的应用场景,比如学校、幼儿园等应用,就是早上、中午、晚上应用,其他时间则不用。
第二,不可预测工作负载的应用,最常见的就是游戏、小程序等应用。游戏、小程序的访问量突然间量增加时,就需要数据库具有弹性的扩展能力。
第三,开发和测试数据库应用。现在也有客户直接用云上的数据库做数据库测试,但是现在的DB服务不是按量计费,还有一个最小单位的使用时间,因此成本相对较高。这种开发、测试、应用场景特别适合用Serverless数据库,解决成本高的问题。
第四一些低流量的应用如小程序,流量通常很低,但是出现流量暴增时,数据库服务能力能得到保障。
除了这些场景之外,新的场景将是无服务器数据库心的战场,关键是场景的发掘。
其次,无服务器数据库能否从PostgreSQL和MySql延伸到更广泛的数据库领域?
目前市场上推出的无服务器数据库仅涉及PostgreSQL和MySql两种。AWS Serverless数据库支持PostgreSQL和MySql两种数据库。
林晓斌表示,腾讯云PostgreSQL for Serverless是基于现阶段客户需求,而非纯商业驱动。当用户把数据库当做计算资源时,PostgreSQL能力比MySQL更丰富,并且天然与无服务器的特性更加匹配。腾讯云下一步计划就是MySQL for Serverless。
得益于开源协议的开放性,PostgreSQL避免了如同GPL、AGPL、SSPL等协议对于商业生态支持的不友好情况。因此,近几年在全球包括中国涌现出大批基于PostgreSQL的商业公司。
在自有企业版本的公司中,EnterpriseDB、Postgres Pro、Citus Data保留有自己闭源版本的商业产品,同时有专门的团队持续对开源社区贡献代码,实现与开源社区持续迭代。瀚高软件、天曦科技、文武信息、乘数科技、神州飞象等本土技术公司也分分发布了其基于PostgreSQL的独立数据库版本,或集群工具。
在云端,阿里云推出了支持GPU异构计算的PostgreSQL时空引擎插件Ganos,腾讯云发布的云原生数据库CynosDB首发支持的是PostgreSQL,华为云除开源版本外,更进一步推出PostgreSQL增强版。
随着应用场景的增加与需求的变化,Serverless数据库向别的数据库领域扩展将是必然的。
再次,云上的数据库服务是一个大市场,云服务商在数据库服务上的竞争是全方位的,这直接决定了云服务商在数据库服务领域的市场份额。
市场研究机构Gartner的研究报告显示,AWS连续几年占据数据库服务首位,微软和阿里巴巴后来居上,占据第二、第三的位置,Oracle和谷歌云处于第四、五位置。
市场研究机构Forrester发布的最新的报告显示当前数据库服务格局。
中国软件网认为,云服务商数据库服务的优势在于器数据库服务的整体布局和优势,而不在其在每个产品方面的优势。以国内腾讯云、阿里云、华为云和青云的数据库服务为例说明。
腾讯云数据库拥有完善的产品布局,基本涵盖了业内主流的数据库产品。据统计,目前腾讯云数据库已有20多种数据库服务,并还在以每年发布5大产品、50多个新功能的速度递增。
腾讯云数据库启动战略升级,明确了未来的发展方向,将聚焦云原生、自治、超融合三大方向。在云原生方面,CynosDB不仅100%同时兼容PostgreSQL和MySQL,实现了超百万的QPS,并能支持最大容量128TB的海量分布式智能存储。此次发布的PostgreSQL for Serverless,无疑是在云原生战略的又一落地。
华为云数据库服务在关系型数据库、NoSQL 数据库和数据库生态几大领域全面布局。除了Oracle,著名数据库引擎排名网站(DB-Engines)的TOP5 数据库均有支持。包括 MySQL、PostgreSQL、SQLServer、MongoDB。华为云基于社区版MySQL推出一款高性能数据库引擎 HWSQL,性能达原生MySQL的3倍以上。
在 NoSQL 数据库领域,华为云支持了Redis和Memcached缓存数据库;在数据库生态领域,华为云提供了分布式数据库中间、数据库安全、数据复制、数据管理、数据仓库等服务。
接受记者采访的青云的王文谨介绍说,青云QingCloud与其他云数据库服务一样,也提供丰富的数据库品类服务,主要分为几类:关系型数据库服务,单机版可以提供MySQL和PostgreSQL数据库服务;分布式版则可以提供基于MySQL的RadonDB,以及基于PostgreSQL的Citus。
在KV数据库服务,既包括移动互联网的时代数据库明星Redis,也包括Memcached, 一个开源、分布式的内存缓存系统。
同时提供文档数据库服务,如MongoDB、列式数据库服务HBase、时序数据库ChronusDB、分析型数据库服务、ClickHouse on QingCloud 服务等。
有了这些数据库后,用户可以在针对不同业务选择不同的数据库。
但是,无服务器数据库是数据库应用发展的最近阶段。毫无疑问,随着无服务器数据库应用的扩大和优势的不断展现,数据库向无服务器数据库倾斜,是毫无疑问的,也是大势所趋。
因此,对于亚马逊、甲骨文、微软、腾讯、阿里、谷歌和其他公司来说,一场数据库创新战已经打响了!
END
扫码/阅读原文【预约直播】
泛微代理商招募,无需押款压货!