1.Serverless 数据库特点
Serverless 分为 FaaS(函数即服务) 和 BaaS(后端即服务)。
Serverless 的特点是无需运维;以API形式提供服务;实时弹性伸缩;按调用次数计费;无使用无费用;高可用。
FaaS 也就是云函数,能满足这些要求,而 BaaS 中很多服务也能满足这些要求,也可以称为 Serverless,比如对象存储。
而目前 BaaS 中的数据库并没有能满足 Serverless 的要求,开发者在购买云数据库的时候需要指定规格购买及扣费。比如购买了4核8G规格,哪怕此时没有任何请求,也按4核8G的规格付费,导致成本上的耗费。而随着 TDSQL-C Serverless 上线后,开发者不再需要权衡规格和费用,避免了购买过大规格导致的过多扣费,也解决了购买规格过小导致无法应对突发高流量的问题。
2.TDSQL-C Serverless 数据库架构
计算存储分离架构是腾讯云原生数据库 TDSQL-C 实现Serverless最大的基础,高度实现计算资源的灵活和自由的分配。
整个 TDSQL-C for MySQL 设计原则上复用云上已有的成熟组件。
计算层使用腾讯云数据库内核团队TXSQL技术,与社区MySQL完全兼容,能够复用 bugfix 和新特性;主从之间采用物理复制机制,准实时同步redo到备机,主从延迟低,小于1毫秒;增加dbclient组件,实现日志分发,日志文件下沉至存储层。
存储层是基于云硬盘CBS打造HiSTOR存储平台。数据安全上复用副本同步,故障自动迁移,数据校验平台;数据备份及回档速度达GB级每秒;性能和成本上提供了SSD、缓存、EC版本等选择方案,满足多种业务场景。增加 dbstore 插件接收计算层日志进行数据库的逻辑回放;算子下推能力加速条件查询。
应用程序访问TDSQL-C Serverless整体流程是应用程序通过接入层访问计算层,从存储层获取数据返回给用户。Serverless基于资源监控的方式进行计费逻辑,根据资源消耗情况,使用过多或过少都会触发自动扩缩容;若没有请求发生便会触发暂停,计算层资源回收,不再计费;若应用程序再次访问接入层便会触发恢复逻辑,把计算层重新恢复后提供数据库服务。
3.TDSQL-C Serverless 数据库三大特性
TDSQL-C Serverless具有三大特性:按负载自动扩缩容,按使用量计费,不使用不计费。
首先是自动扩缩容,速度达秒级,且做到用户无感知。用户在购买Serverless实例时需要确定扩缩容的范围区间[最小规格,最大规格],指定CPU内存资源概况。若用户把当前的小规格打满,会导致无法使用更多CPU,若在此时触发扩容,用户才能使用更多的CPU和内存,但在这种场景下用户不能立刻使用最大CPU,性能受限。TDSQL-C Serverless采取的解决方案是一开始便选取最大规格,当最高负载来临时,根据CPU的使用量动态扩缩缓存池buffer pool的大小,使CPU的使用上不再受限,在负载来临时可立刻使用到最大规格的资源。
按使用量收费。目前大部分云数据库按一小时内最大规格收费,TDSQL-C Serverless做到秒级别计费粒度。在单元资源规格上,大部分云数据库按整核数计费,比如存在不足一核按一核收费;TDSQL-C Serverless是任意单元资源,无规格限制,比如用户使用到0.6核,就按0.6核实收费用。计费机制是每5秒采集当前CPU和内存使用的消耗,以CCU(TDSQL-C Compute Unit 的算力单位)进行计费,每小时出一次账单。CCU = max (CPU, MEM/2, 指定的最小规格)
不使用不收费。TDSQL-C Serverless基于计算存储分离的架构能够做到自动启停,判停时间短,冷启动时间达秒级。运行实例的实例中,若10分钟内没有用户连接,则回收计算节点,转为暂停的实例;当计算层收到用户请求时,会迅速唤醒计算进程提供服务,恢复为运行中实例,目前冷启动时间是2S,在关系型 Serverless 数据库中里面领先。
4.TDSQL-C Serverless 数据库应用场景
针对多种应用场景,TDSQL-C Serverless持续发力,为用户提供优质服务。
业务偶发慢查询场景下,通常会消耗较多CPU资源,大的固定规格将承担更多成本,小的固定规格将无法满足慢查询性能,甚至影响在线业务。TDSQL-C Serverless数据库可以完全避免这个问题,大部分情况下以较低的CCU进行计费,同时能够应对偶发的慢查询。
针对业务定时任务场景,如在夜间清理数据、生成报表等引起 CPU 资源消耗更多,使用Serverless数据库后,能同时满足性能和成本上的述求。
针对业务数据长时间不访问的场景,如档案类数据库,TDSQL-C Serverless数据库能够关闭进程不对CPU和内存进行计费,访问时立刻唤醒,同时提供强大的分析能力,与将归档数据存储存放在 COS 相比,开发者无需自行下载数据并临时编写调试脚本去分析数据。
针对低频访问的服务,通常日访问次数小于 10 次,如个人博客、小程序等业务场景,TDSQL-C Serverless 数据库能够大大地降低这些服务的成本。TDSQL-C Serverless 与云函数、云开发、云托管深入合作,访问结束后暂停实例,不再收费。
针对开发测试环境如周一至周五使用,夜间以及周末不使用,TDSQL-C Serverless数据库实现灵活计费,按需收费,不使用不收费,节约了开发测试成本。
对于极低负载的数据库,TDSQL-C Serverless最低规格为0.25 核,为微服务提供强隔离实例。
TDSQL-C Serverless 解决初创企业5大核心诉求,助力初创企业实现降本增效:
1、低成本,按CPU使用量收费,不使用不收费
2、减少运维人力,单主节点即高可用,自动备份,智能管家诊断SQL帮助企业提供优化建议
3、迭代试错快,发货速度快,回档能力GB每秒,搁置项目只需要暂停实例
4、用户数预期外的激增时,能提供弹性自动扩缩容来应对
5、通过提供更小规格实例来满足初创企业的小微项目