云原生时代需要什么样的数据库?如何构建数据库服务?腾讯云数据库技术负责人程彬认为,云数据库未来趋势会从以托管为核心升级到以极致效率为核心,助力业务降本增效。从数据库管理和应用角度来看,云厂商、资源、客户三角关系背后包含了三个维度的效率:系统效率、运营效率、业务效率,当这些效率都做到极致,成本会大幅下降。腾讯云数据库是如何围绕这三个纬度,打造极致效率来赋能业务的呢?
本期带来腾讯云数据库技术负责人程彬在第四届云原生产业大会主论坛的分享实录:
视频完整版:《云原生时代的数据库技术沿革》
大家好,我是腾讯云数据库工程师程彬,代表团队和大家谈谈对云原生时代数据库技术的思考和腾讯云在云原生数据库领域的落地实践。
业务背景
我们观察到,在IT架构领域,云原生已经取代云计算,迎来了一个新阶段。在腾讯内部,每个业务系统会去看自己系统的云原生成熟度得分,不断地去优化和提升。云原生相比云计算,有三个变化。应用场景上,从泛互联网行业进入到了一个全行业数字化,进而带来了数据规模的进一步的增大。基础设施上,也发生了变化。云上IaaS PaaS变得更加成熟,创业公司、独角兽、头部上市公司乃至关乎民生的应用,他们的IT架构都构建在云上。
这些变化引起了我们团队的思考,云原生时代需要什么样的数据库呢?我们怎么去构建数据库服务?
我们认为,云数据库应该从以托管为核心升级到以极致效率为核心。
在讲极致效率之前,我们先看看云数据库背后的一个三角关系。这个三角关系就是云厂商利用和管理硬件资源,为客户提供服务,客户使用服务背后的资源来开展业务活动。它背后有三个效率,系统效率、运营效率和业务效率。
第一个系统效率,系统效率说的是两个层面的事情,一个层面就是把CPU内存、硬盘这些资源全部用出去,不要闲置;另外一个层面是,用相同的资源能处理更多的请求。
第二个运营效率是说云厂商线上规模化运营效率,比较常见的就是数据库调优,1w个实例1个DBA可以搞定,10w个实例或是100w个实例时,DBA人数就需要10个、100个吗?
第三个业务效率是指怎么帮助业务提升开发效率。举个例子,游戏出海需要全球同服,之前非常考验业务架构师的水平,如果数据库能提供低延时全球化部署能力,是不是能大大简化业务架构呢?
大家仔细想想,这三个效率背后又指向了同一个词“成本”。
系统效率
接下来,我就和大家分享,腾讯云数据库怎么打造极致效率来帮助业务降本增效。
传统数据库架构都是基于资源一体化来进行设计的,这种设计在延时上带来好处,但失去了灵活性和弹性,严重影响到了系统的效率。
我们设计了计算存储分离的云原生架构,将存储池化,计算无状态化,大幅提升系统资源利用率。架构的变化当然会引入很多新的问题,比如计算存储分离的网路延时问题。除了引入RDMA网络降低网络延时之外。我们还创新性地引入了多层存储:在计算节点中加入了二级缓存,把热数据缓存在本地,减少远程IO。存储上,除了多副本机制,我们还实现了纠删码+压缩功能,在不降低数据可靠性的前提下,提供了低于1副本的低成本存储能力。
做好系统效率一定先要保证架构效率。什么是架构效率呢?举个例子,同样是计算存储分离架构,插入一条1KB记录,需要传输多少数据到后端存储呢?很多产品要传输16KB,放大了15倍,而我们架构设计只需要1KB加几个字节就可以了。
很多时候,架构上带来的量级gap,很难靠软件工程去弥补。所以,我们特别追求架构上的极致效率,因为产品需要有一个优秀基因。
运营效率
关于运营效率,主要和大家分享两个点,业务连续性和自治。
针对业务连续性,我们提出了全景化的业务连续性方案,引入了故障预测机制来提前主动处理潜在隐患。在故障切换时,我们通过缓存预热来做到对业务的无损切换。
在故障诊断能力上,结合客户负载变化和多级检测信息,生成全链路诊断报告和根因分析,提升运维效率并持续发现优化更多异常场景。
相比传统数据库架构,我们把业务连续故障场景切换耗时降低了74%。
随着业务规模快速增长,客户多样化,不合理使用数据库的案例越来越多,数据库问题分析和调优工作给我们带来了极大挑战。
怎么解决这个问题呢?我们走上了AI for system这条路。通过DB结合AI,用AI替代人工调优、诊断、优化。
我们先从数据库调参开始,通过深度强化学习等AI算法实现调参无需人为介入。在此基础上,通过沉淀内部专家经验和结合多种Al算法,做到了调优速度可以通过增加并发度实现准线性的降低。
目前我们支持数千种调参场景、线上应用性能最高提升235%,调优时效从原来人工花费几个小时缩短到几分钟,节省人力的同时,也大大降低了调优时长。
以上智能调参成果也被数据库顶会SIGMOD两次录用,点击延伸阅读《三篇论文入选国际顶会SIGMOD,厉害了腾讯云数据库》。
业务效率
业务效率上,我们首先想到了云原生最初的核心:极致弹性,按需付费,不使用不付费。举个例子,在公有云的实例中,有相当一部分中小规格的长尾业务,比如周期性开发测试、个人博客、低频资料查找等,他们对数据库的使用负载并不高,对使用成本更敏感。
针对这类用户,打破传统固定规格的产品形态,打造根据业务的负载对计算资源进行自动伸缩,按照实际使用计费,不使用不计费的serverless形态。为了实现计算资源的自动伸缩,数据库在启停方面做了很多优化,保证系统能在几秒内完成停机和重启恢复,提升极致业务体验。
目前我们数据库serverless产品仅在微信生态上就为超过50W小程序开发者提供数据库底座,点击延伸阅读《腾讯云数据库协同微信云托管,助力业务降本增效》。
我们发现以社交、游戏、广告为代表的跨国企业在使用数据库时存在一大痛点,业务通常会在全球多地部署应用,例如,游戏出海,玩家在世界各地登陆账号。为了保证登陆体验,会在世界各地部署多个账号数据库,并实现彼此间的数据库同步,这需要大量人力和精力维护。客户亟需一个可以实现全球同步和就近访问的数据库,以此简化应用架构。
针对这个问题,我们即将推出全球数据库功能,提供跨Region部署能力,并在各地提供访问点,方便客户就近读写。通过物理日志复制技术,解决了跨地域复制的延时问题。
光为用户提供一个好的数据库引擎还远远不够,要提升业务效率,还需要为用户提供方便好用的各类SaaS工具。
腾讯云原生数据库提供了多种SaaS化工具,例如,数据库代理帮助业务高性能应对流量洪峰,数据库自治工具智能调优帮助客户提高整个系统级的SQL性能,数据库加密、备份回档、审计全链路帮助企业数据更安全、更合规。
在混合负载处理场景上,我们也进行了一体化的设计,通过一套系统,对业务透明的方式提供OLTP和OLAP两种数据查询能力,目前灰度中,很快会上线。
未来展望
未来我们继续探索架构的先进性、极致的软件工程能力。与此同时,我们会深刻理解客户业务场景,把架构能力、软件工程能力覆盖到更多的业务场景中。比如,探索数据模型的融合,一库多用、利用统一框架支撑更多的混合负载处理,来帮助业务降低数据库架构的复杂度,从而提升应用效率。
同样,我们继续践行AI for system,从外挂智能到内嵌智能,让数据库实现最高级别的自治能力。我们继续在最优效率的数据库道路上踏步前进。
今天我的分享就到这里了,再次感谢大家和云原生产业大会,谢谢。