深度解析腾讯云的国内首款Serverless数据库

2020年4月7日,腾讯云正式发布了国内首个Serverless数据库产品--PostgreSQL for Serverless。该数据库不需要用户创建实例,完全基于Serverless架构,最快能够1秒钟内完成部署。用户使用该数据库完全按照实际使用量付费,成本降低70%。

PostgreSQL for Serverless这款产品不仅仅是国内第一款Serverless的数据库产品,具备很强的竞争能力,同时和国外的竞争者,比如Aurora Serverless比起来,其性价比也显著的优势。

Serverless技术在云计算时代,是革命性的技术。其主要优势体现在两个方面。第一,它把开发人员解放出来。开发人员不再担心底层资源分配和扩容的问题,只需要关注自己的业务实现。第二,它让用户的使用成本得到有效的降低,用户不再需要为闲置的云资源付费买单。

而数据库的Serverless化是一件相当不容易的事情。在国外,最成功的实现Serverless化的是亚马逊AWS的Aurora Serverless。其他云计算公司目前尚未有竞争力的产品。国内市场的Serverless数据库更是闻所未闻。

和亚马逊基于mySQL的实现比起来,腾讯的Serverless数据库主要基于PostgreSQL。PostgreSQL是一个更为成熟的产品,对中小型用户来说,它比mySQL的功能更丰富,更适用于用一个数据库解决所有业务问题。PostgreSQL实例本身的高可用性,高性能,高安全性等特点,加上Serverless技术带来的低成本,容易扩容,让腾讯云的这款产品非常具有竞争力。

PostgreSQL for Serverless的的架构图是这样的。

系统在连接层实现了代理,应用通过连接层和底层数据库实例打交道。用户连接数据库以后,通过代理层统一进行转发。当用户请求数增加的时候,数据库会实现自动扩容,如果有必要,可以迁移到其他资源更丰裕的主机上。而这并不影响用户的应用程序和数据库实例打交道。当前的版本,单用户最高支持40000QPS。

除了通过连接层转发,自动扩容以外,该系统还支持一主一备的高可用架构。在主实例发生意外导致不可用的时候,数据库会自动启动备用实例,并将业务请求转移到备用实例上。这就避免了业务因为意外情况而导致数据库不可用。

此外,PostgreSQL for Serverless还会每天做一次全量备份,每15分钟或者日志文件达到60个时,备份一次数据库日志文件,所有备份保存七天。备份在后台由系统自动执行。这极大限度了保证了即使发生主备皆不可用的情况下,数据依然不会丢失。

每个数据库产品都有其适用的范围。对PostgreSQL for Serverless来说,最适用的场景是:不常用的数据库,低流量数据库,和不可预测的工作负载的数据库。这些应用都有典型的特点,其流量要么过低,低到即便选择最低配的主机实例,依然需要为闲置付费。或者其流量不可预测,传统方式只能按最大流量配置主机实例,从而导致未非峰值时候的闲置资源付费。

有了PostgreSQL for Serverless以后,这些都不再是问题了,用户只需要为其使用的流量买单,系统会自动实现扩容。当然凡事有一例必有一弊。对于流量非常固定的互联网应用,选择合适的主机实例,其成本依然会更低一些。Serverless的资源共享,和自动扩容,也不可避免的带来一些损耗。这些损耗对固定流量的互联网应用,是额外的开销。

有了Serverless云数据库,在腾讯云上做Serverless开发的最后一个障碍:数据库也没有了。对开发者来说从此以后,可以在腾讯云之上,能够基于全栈Serverless解决方案构筑云原生应用,只需要关注业务逻辑,这会大大提升开发者的体验和速度。

这其中,客户在接入层、计算层和数据存储层都可以通过 Serverless 化的服务来实现,从而真正做到了无需关注底层设施,只需聚焦于业务实现。在接入层,通过API 网关的弹性能力、可以实现安全、稳定的流量接入;在计算层则通过腾讯云高可用,高并发的 FaaS 平台实现业务逻辑;在数据存储层,则通过本次发布的 Serverless DB 直接对数据库连接并进行SQL 操作,无需客户管理连接池,有效降低了开发者的使用门槛。

通过腾讯云的Serverless全栈解决方案,业务的上线速度将得到有效提升,产品从设计到落地交付的时间大大缩短。例如,在疫情期间,众多企业都相继推出自己的抗疫App。借助于腾讯云Serverless全栈解决方案,企业开发者可以在不关心底层基础设施的情况下,1个前端工程师通过几百行的代码就可以快速搭建起一套功能齐全疫情实时追踪大屏,包括国内疫情概览、公司员工健康状况实时显示、外来人员进出登记等功能。并且能够根据访问量,弹性扩缩容,按量付费。

对开发者来说,仅仅有这些serverless服务还是不够的,开发的方便还需要对应的工具。对此,腾讯云联合Serverless Framework 提供了全栈的应用开发平台,支持组件型的快速开发、云端调试、秒级部署和智能运维等特性。这让开发者的开发变得更加便捷。此外,腾讯云对Serverless网关、云函数、对象存储和数据库均提供了限时 30 天的免费试用。这也让开发者可以先尝试再使用。这些举措无疑大大方便了开发者试验和使用的门槛。我很看好Serverless全栈开发的未来。

从腾讯云在Serverless服务的布局看,Serverless数据库的正式发布,彻底打通腾讯云为用户构筑全栈Serverless应用的能力。这让腾讯云在全球的云厂商的竞争中占据了一个有利地位。