导读

数据库的发展由对性能的要求,逐步发展为对更为极致成本的要求,Serverless数据库是在高性能云数据库之上的极致成本优化方案。【墨天轮数据库沙龙-Serverless专场】邀请到腾讯云数据库产品经理陈昊,为大家带来《TDSQL-C Serverless应用与技术实践》主题分享,以下为演讲实录。



陈昊 腾讯云数据库产品经理

Serverlss市场现状

1、Serverless 技术发展

云数据库历经了三个时代的演变,1.0云托管时代,云产品以租户方式提供,帮助用户解决数据库运维、部署机房等问题,实现降本增效,这也是目前大部分客户所处的一个时代。2.0云原生时代,存算分离结耦提供了更极致的性能优势,带来更多资源的有效利用。3.0时代,Serverless数据库应用阶段,自动弹性能力、更加智能化的运维,极致化的成本优势提供了更为广阔的想象空间。

《全球Serverless架构市场》报告同样显示,全球Serverless架构市场的规模预计到2024年将达到140亿美元,在这段预测期内将以23.4%的年复合增长率增长,Serverless技术的热度呈现出逐渐升温的状态。



图1 国内外数据显示Serverless技术持续升温

2、何为Serverless?

简单来说,Serverless=Faas+Baas,Faas为函数即服务,Baas为后端即服务。也有观点认为Serverless是云服务的体现方式,它以API的方式提供服务,呈现出弹性伸缩的能力,不需要额外支付费用。



图2 Serverless的定义

3、TDSQL-C Serverless VS 传统云数据库

大部分用户仍然处于云托管时代,传统云数据库帮助开发者实现高可用、自动备份,将云服务的特性提供给用户。但传统云数据库在同机部署计算和存储的模式下,固定规格使得剩余资源难以利用。以双11高负载的场景为例,提前发起扩缩容的操作会导致运维效益随之大打折扣。不仅如此,固定规格对传统云数据库的计算进程常驻,无请求时仍然收费。

以下图左侧显示,一同机部署的传统云数据库存储资源使用量达到了90%,而计算空余资源没有办法分配给新的租户从而造成资源浪费。



图3 传统云数据库与TDSQL-C Serverless的对比

存算分离是实现Serverless的基础,我们采用了TDSQL-C的架构实现Serverless。在该架构下一旦存储满了,只需要横向加机器而无需关注计算状态,反之亦然。如果计算资源达到了一个瓶颈,只需要横向扩展计算节点。所以相较于传统云数据库,TDSQL-C Serverless的计算与存储解耦的架构形态可以将资源利用率尽可能最大化,跨机扩容也会更加快捷。

TDSQL-C Serverless特点与架构

1、TDSQL-C存算分离架构

TDSQL-C数据库的计算层是腾讯云自研的TXSQL内核并复用bugfix和新特性,使特性能够及时发挥出来。同时RO与RW节点也可以通过redo方式进行物理日志的同步,实现1毫秒同步到备机。

TDSQL-C存储层基于CBS打造 HiSTOR 存储平台,能够真正做到物理日志的下沉,通过DB Client来实现日志的分发。整个存储层采用三副本的模式,能够做到故障的自动迁移与数据校验。存储层就是一个分布式高可用的存储空间,我们也为用户提供了SSB、混存、EC版本,满足多种使用场景与不同诉求。

TDSQL-C存算分离的架构能够达到单节点百万QPS的超高性能,存储空间理论上也可以得到无限的高度。总结来说,TDSQL-C能够将云的技术特点充分发挥,是一款超高性能、新型的数据库。



图4 TDSQL-C Serverless存算架构示意图

2、TDSQL-C Serverles 架构

接下来,为大家介绍基于TDSQL-C如何实现Serverless的架构。下图所示,从上到下分为四个层级,最上层是用户访问层,下面是接入层,路由通过转发进入计算层中,TXSQL与存储层进行数据的交互。当某一时段内用户没有连接,旁边的管控平台便会起到资源实时监控的作用,对计算资源进行回收后上报给监控与计费平台,从而暂停用户计算层的收费空间。整个管控平台起到很重要的作用,它通过监控资源的使用情况来触发扩缩容。



图5 TDSQL-C Serverless架构示意图

TDSQL-C 特性

1、TDSQL-C Serverles 三大特性

我们希望用户像自来水一样使用TDSQL-C Serverless ,它是如何实现的呢?接下来我将为大家详细讲解TDSQL-C Serverless的三大特性。

第一个特性是自动扩缩容,能够像调节水龙头的大小一样控制水流速度。用户指定最大与最小规格,TDSQL-C 便在这个范围内触发自动扩缩容。业界的常见方案存在着一定的弊端,首先弹性扩缩容的监控时间对整体业务会有影响,其次面对临时的高负载任务,需要多次弹性扩容以满足业务需求,并且多次动态调整Buffer pool会对性能产生影响,对用户体验感造成折损。

一改常见方案,TDSQL-C将CPU与内存的限制放到最大的规格,管控平台起监控作用根据不同的负载来调整Buffer pool。因此我们给用户分配2核4G资源的模式,使得CPU与内存消耗在无限大的情况下,都可以快速响应使用资源的诉求。



图6 TDSQL-C Serverless 特性一:自动扩缩容

第二大特性是按使用量收费,以实际使用的负载进行计费,开发者无需为没使用到的资源付费。我们每5秒进行一次资源使用采样,单位是CCU,CCU(CynosDB Compute Unit)为 Serverless 的计算计费单位,一个 CCU 近似等于1个 CPU 和 2GB 内存的计算资源,每个计费周期的 CCU 使用数量为:数据库所使用的 CPU 核数 与 内存大小的1/2 二者中取最大值。以实际使用的负载进行计费,开发者无需为自己没有使用到的资源付费。



图7 TDSQL-C Serverless 特性二:按使用量收费

第三个特性是无使用无费用。当无数据请求时,不需要对计算资源资源进行计费。

我们给用户提供了自定义启停的能力,默认情况下(10分钟内)没有用户连接,便会回收计算资源不扣费,在这个时间段内也支持用户自定义启停时间。



图8 TDSQL-C Serverless 特性三:无使用无收费

2、链接不断转发请求能力

TDSQL-C 的链接不断转发请求能力让数据库能够快速启动不影响整体业务。接入层增加了一个恢复感知器(简称 perceptron)的模块来实现请求转发,perceptron 在和客户端握手之后,不断用户连接,恢复集群后,与 TDSQL-C 版握手,后续转发四层报文。

整体流程设计采用了两个挑战随机数进行鉴权,以实现中继模块 preceptron 不存储用户名密码的情况下也可以完成用户名密码验证,保证了用户密码的安全性,也不会引入存储密码不一致的问题。



图9 TDSQL-C Serverless 拥有链接不断转发请求能力

TDSQL-C Serverless应⽤场景与使用

1、TDSQL-C Serverless场景

对于每天夜间清理过期数据、生成报表等每个月初计算上月的账单这样负载不均衡的场景,中小企业选择固定高规格的数据库会承担更多的成本,选择小规格的数据库又会影响整体性能。面对这样的情况,serverless形态给了用户最大与最小的空间范围,在处理类似慢查询操作以及定时操作以及负载不确定等场景游刃有余。



图10 TDSQL-C Serverless 在定时任务场景使用的示意图

对于机器学习、数据训练等业务数据长期不访问的场景,TDSQL-C Serverless 能够对数据进行存储,同时在用户需要时提供更强的分析能力。



图11 TDSQL-C Serverless 在归档数据库场景使用的示意图

TDSQL-C Serverless为低频访问的应用场景提供了更大的想象空间,它能够立马支撑爆款小程序突然高负载情况,用户无需实时关注扩缩容时间。



图12 TDSQL-C Serverless 在低频访问场景使用的示意图

对于测试开放场景,在周末时间,TDSQL-C Serverless实现不使用自动暂停实例,不收取任何费用,帮助企业降低成本。



图13 TDSQL-C Serverless 在开发测试场景使用的示意图

2、TDSQL-C Serverless 使用案例

腾讯云原生数据库TDSQL-C Serverless 实现与微信生态互通,联合微信小程序云开发,创造开发者使用数据库新形态。开发者仅关注业务即可,后端开发逻辑以及底层应用逻辑等都可以通过键部署完成微信云托管,已为接近50万小程序开发者提供了一站式开发云服务。目前我们也在积极探索新的集成形式,给开发者与企业提供更多一键部署多端运行的全套解决方案。



图14 TDSQL-C Serverless 已实现与微信生态互通

总结与展望

我们的愿景是建一座大坝管理好上游的水资源,我们提供的云资源是一个湖泊,TDSQL-C Serverless 就好比是大坝的闸口,闸口开启以满足下游企业使用云资源。我们希望水资源能够合理分配给每个用户,帮助他们降低成本而把更多的精力放在整体业务的开发层面上。

关于未来展望,TDSQL-C Serverless能够在商业化场景不断扩展,同时也希望它在技术上实现更大的突破。探索更多集成化场景,以业务优先的整体serverless解决方案;探索横向弹性能力在实际应用的落地场景,从“开发测试环境”到有限场景下的生产环境的转变。



图15 TDSQL-C Serverless 的总结与展望

我们相信TDSQL-C Serverless在未来能够在生产环境中使用乃至支撑重大的核心业务,我们对此有很强的信念!我今天的分享就到这里,谢谢大家!

更多精彩内容,欢迎大家观看现场视频回放与会议资料

视频回放:https://www.modb.pro/video/7708

会议资料:https://www.modb.pro/doc/93247


墨天轮技术社区正在举办【有奖问卷|墨天轮2022年数据库大调查】活动,诚邀各位朋友参与!只要以【账号登录状态】提交问卷即可获得奖励,更有机会获得大疆DJI无人机、VIP年卡、电脑支架等奖品。邀请好友填写还可以领取现金奖励!期待大家的参与!

点击即可填写:https://www.modb.pro/event/767

墨天轮沙龙 | 腾讯云陈昊:TDSQL-C Serverless应用与技术实践的更多相关文章

  1. 国产开源数据库:腾讯云TBase在分布式HTAP领域的探索与实践

    ​导语 | TBase 是腾讯TEG数据平台团队在开源 PostgreSQL 的基础上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强一致高并发的分布式在线事务能力以及高 ...

  2. 腾讯刘金明:腾讯云 EB 级对象存储架构深度剖析及实践

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 演讲者:刘金明 腾讯云存储业务中心副总监 背景:5月23-24日,以"焕启"为主题的腾讯"云+未来" ...

  3. 腾讯云分布式数据库TDSQL在银行传统核心系统中的应用实践

    本文是腾讯云TDSQL首席架构师张文在腾讯云Techo开发者大会现场的演讲实录,演讲主题是<TDSQL在银行传统核心系统中的应用实践>. 我是TDSQL架构师张文,同时也是TDSQL的开发 ...

  4. 复盘价值1000万的腾讯云硬盘固件"BUG"

    摘要: 除了吃瓜,还是得吸取教训啊同学们! 这次,我从纯技术角度分析腾讯云与前沿数控的磁盘数据丢失事件,不站队. 硬盘门 这里说的硬盘门不是10年前陈老师的那一次,而聊的是最近"腾讯云&qu ...

  5. 腾讯云数据库团队:MySQL5.7 JSON实现简单介绍

    作者介绍:吴双桥 腾讯云project师 阅读原文.很多其它技术干货.请訪问fromSource=gwzcw.57435.57435.57435">腾云阁. 本文主要介绍在MySQL ...

  6. 强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场

    日前,腾讯云计算(北京)有限责任公司与北京国双科技有限公司签署了<国产数据库产品战略合作协议>,双方将在数据库技术方面展开深度合作,通过分布式交易型数据库的联合研发.产品服务体系建设.品牌 ...

  7. Kubernetes最佳实践之腾讯云TKE 集群组建

    作者陈鹏,腾讯工程师,负责腾讯云 TKE 的售中.售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航.使用 TKE 来组建 Kubernetes 集群时,会面对各种配置选项,本 ...

  8. 进军东南亚市场,腾讯云数据库 TDSQL 助力印尼 BNC 银行数字化转型

    腾讯云数据库在助力金融核心系统分布式替换上,已经辐射到了东南亚市场. 东南亚最大的银行之一印尼BNC银行(Bank Neo Commerce)已正式完成新核心分布式迁移,使用腾讯云数据库TDSQL后, ...

  9. 干货满满,腾讯云+社区技术沙龙 Kafka Meetup 深圳站圆满结束

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 云+导语:4月22日,由腾讯云和 Kafka 社区主办.开源中国协办的腾讯云+社区技术沙龙 Kafka Meetup 深圳站在腾讯大厦举行, ...

  10. 腾讯云GAME-TECH游戏开发者技术沙龙(深圳)开启报名啦~

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:由腾讯游戏云发表在云+社区 腾讯云GAME-TECH沙龙继1月杭州站后,将于3月30日来到深圳站,与游戏厂商和游戏开发者,畅聊游戏安 ...

随机推荐

  1. python面向对象:多态

    python面向对象:多态 多态的应用场景 1. 对象所属的类之间没有继承关系 调用同一个函数fly(), 传入不同的参数(对象),可以达成不同的功能 class Duck(object): # 鸭子 ...

  2. 对比python学julia(第二章)--(第一节)隔沟算样—枚举策略

    1.1.  问题描述 在明代数学家程大位的<算法统宗>著作中记载了这样一道数学题: 甲乙隔沟放牧,二人暗里参详. 甲云得乙九个羊,多你一倍之上. 乙说得甲九只,两家之数相当. 两边闲坐恼心 ...

  3. vue里使用px2rem

    安装 yarn add postcss-px2rem 配置 在vue.config.js中添加以下配置 const px2rem = require('postcss-px2rem') module. ...

  4. 使用Java对稀疏数组的压缩与还原

    稀疏矩阵的压缩与还原 稀疏数组中元素个数很少或者有大量的重复值,如果直接保存保存,会浪费很多空间,这时,就可以考虑对数组进行压缩存储. 先定义一个稀疏数组 //创建一个二维数组 11 * 11 int ...

  5. 【Git】介绍与概述

    版本控制工具应该具备的功能? 协同修改 多人并行不悖的修改服务器端的同一个文件. 数据备份 不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态. 版本管理 在保存每一个版本的文件信息的时候 ...

  6. 【Docker】09 部署挂载本地目录的Redis

    1.拉取Redis镜像: docker pull redis:6.0.6 2.执行挂载命令: docker run -d \ --name=redis \ --restart=always \ --p ...

  7. Springboot实现HTML表单from简单的接收信息

    HTML< from >元素 from可向Web服务器提交请求 普遍格式: <from action="服务器地址" method="请求方式" ...

  8. 图解Java设计模式

    待补充 设计模式介绍 设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案. 设计模式使用的位置 功能模块+框架上. 设计模式在软件中哪里?面向对象( ...

  9. Win11、Win10局域网共享文件报错:共享文件夹出现,您的账号已锁定,无法访问

    解决方法,见: https://blog.csdn.net/dengww_/article/details/133887598 解决方法: https://blog.csdn.net/dengww_/ ...

  10. LeetCode279:完全平方数——动态规划算法——python语言

    无意间看到了这么一个题: LeetCode279:完全平方数,动态规划解法超过46%,作弊解法却超过97% ============================================= ...