12 月 1 日,以”去发现,去挑战”为主题的 PingCAP DevCon 2022 主论坛在线上成功举行,为数万观众带来一场技能盛宴。PingCAP 联合创始人兼 CTO 黄东旭,在大会上同享了“The Future of Database”的主题讲演,同享了他对云原生、开发者生产力的了解,介绍了 Serverless HTAP 的含义以及未来的”技能无感化“发展方向。以下为讲演实录,全文约 7000 字。

首要感谢一切用户,用户的运用是支撑 PingCAP 一向前进的最重要动力,每年看到 TiDB 越来越遍及,用户越来越多,就感觉肩上的担子又重了。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

在曩昔一年中,TiDB 有一个最重要的变化——发版节奏和模型发生了变化。本年,TiDB 榜首次引入了 LTS 版别,以及形成了以两个月为周期的迭代发版节奏。此外,特别值得一提的是,本年 5 月 TiDB Cloud 正式 GA,去年我说到云的含义在于加速软件的迭代速度,短短大半年时刻 TiDB Cloud 现已进行了超越 34 次迭代,增加了上百个功能特性和改善。这个迭代速度比 TiDB 内核自身的迭代速度更快,这也印证了之前我关于云的判断。

数据库的“榜首性原理”

埃隆马斯克有一个很有名的“榜首性原理”,这些年我一向也在考虑这个问题,关于一个数据库厂商或许数据库产品司理来说,数据库软件的榜首性原理是什么?关于数据库来说,一个很实质的问题是 developer 到底需求什么样的数据库。这里说的 developer 并不是指数据库开发者,而是那些真实开发运用的开发者。为什么这么说呢?其实数字化转型也好,各种运用立异也好,其背面的驱动力到最后都是一行一行代码,而这些代码都是开发者写的。关于数据库软件来说,真实的用户其实便是开发者。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

上图是一项关于“在你的组织内部到底是谁在挑选 Database”的查询,能够看到排名榜首的是架构师、第二是开发者、第三是 DBA,三者加起来达到了超越 80% 的占比。这些人都是广义上的开发者,关于数据库软件来说真实的用户其实便是这些人。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

数据库里别的一个大的趋势是 Cloud。我觉得本年现已不必再强调 Cloud is the future,从 Gartner 的陈述能够看出,本年全球企业在 Cloud 上的投入现已超越了私有化数据中心的投入,并且每年的增速都非常快。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

在数据库领域中也有着相同的趋势,上图是云数据库和私有化布置的数据库软件的占比趋势。咱们能够看到,2019年时,云上的数据库服务(Database as a Service)还不到传统数据库的一半,但本年几乎挨近相同,能够预见明年必定会超越。所以,云是毋庸置疑的趋势,在未来的数据库产品中,Cloud 必定会变成数据库服务的承载平台

怎样解放开发者的生产力?

这次同享的主题仍然是“The Future of Database”,要讲的是数据库的未来会是什么产品形状。谈到这个话题,我的考虑习惯是先重视现在数据库到底有哪些痛点,开发者到底在为什么烦恼。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

从这张图能够看出,开发者、程序员、DBA 日常的时刻都花在了什么地方。你会发现他们 39% 的时刻在做事务立异、在 Coding,41% 的时刻在做根底设施维护,如买服务器、布置服务器、运维等等。这其实非常符合一个开发者的日常体感。有时分作为一个程序员,我想要雄心勃勃地做一个新的东西、新的运用时,会发现真实开发那个运用的时刻或许只占整个时刻的 10%-20% 左右,许多时刻都花费在买服务器、布置数据库、数据的备份康复、CI/CD 建立上,而不是在开发运用上面

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

这张图来自 a16z(美国一个特别著名的出资组织)在 2020 年底出的一份陈述,他们提出了一套包治百病的数据架构“Unified Data Infrastructure”。当时看到这个架构的时分,我觉得它确实包含了咱们遇到的各式各样的问题,这个架构确实能处理问题。但另一方面,图中每个框其实都是一套非常杂乱的软件,这个架构的问题是框特别多、特别杂乱,并且这些框之间互相的衔接会把工作变得愈加杂乱。幻想一下方才说到的小比方,我在开发一个运用时要花许多时刻去处理这些根底设施的问题,在这张图里,方才这些不爽的体会要再乘十或二十倍,因为这些组件之间的衔接会带来更多的杂乱性。所以这个架构看起来很美,但实际上咱们会花更多的时刻去保障体系安稳运行。

综上所述,当今把开发者拖慢的最中心原因是开发者的生产力,假如开发者的生产力进步了,事务立异、运用立异的速度就会变得更快。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

OSS Insight 是 PingCAP 自己开发的一个很好玩的 GitHub 数据剖析工具,它抓取了 GitHub 上一切的信息和实时的数据,供给一些数据的洞悉服务。这样一个看起来很简略、很有意思的小运用,假如用传统的思路去构建体系,你就会发现要用一大堆不同的技能栈串联在一起才干实现,并且每一个技能栈还有着自身杂乱的运维本钱

曩昔 20 年咱们发明晰太多的技能,太多不同的 Database,每一种 Database 都有着自己杂乱的概念与运维。作为一个开发者,要想把它用好,就需求把这些东西都学习一遍。业界有一句特别真实的笑话:别发布了,别做新的东西了,我真的学不动了……这些杂乱的概念现在都没有被躲藏起来,反而全都透传给了开发者。举一个简略的比方,假如你想在云上挑选机型,就会发现不同的公有云厂商会有好多机型引荐给你,如 i3.xlarge、i3.2xlarge、i3.4xlarge 等等,这些机型代号背面到底意味着什么?这都是体系架构的杂乱性。

更不要说背面的本钱,假如你在云上选错了机型或许选错了服务,就会发现最后的账单和你选了正确的机型或许服务有着天壤之别。最近很火的 FinOps,说白了便是怎样科学地利用云去省钱。这意味着什么呢?意味着就连计费方式以及挑选的策略关于用户来说都是非常杂乱的工作,杂乱到需求用别的一套工具往来不断做优化,以帮助用户作出正确的决议计划。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

**咱们再往前看一下,今天的开发者到底是怎样去考虑开发运用的?**这里我想同享一个最近特别喜欢的公司——Vercel,是一个非常倾向于开发者开发流程和体会的平台,在它的主页有三个英文单词:Develop(开发)、Preview(预览)和 Ship(上线),这其实便是一个开发者的视角。用过的同学就会知道,在 Vercel 这个平台上,一个运用开发者只需求重视网站怎样做,只需求去写 code。其他的工作,包含发布、布置、CDN、流量全都由 Vercel 帮助封装好了,开发者只需求将 100% 的时刻都放在事务逻辑开发上就能够了。这是一个很好的方向,这意味着运用的开发门槛在下降。未来,运用开发者对数据库的重视点会从数据库变成 API,甚至在更长远的的未来只需求重视 web 前端开发就好了

用“笼统”处理杂乱性

综上所述,从开发者的视点,或许新一代开发框架的视点来说,开发门槛正在变得越来越低,运用开发者变得越来越多,那数据库、数据技能、数据处理技能栈,怎样处理杂乱性带来的对立呢?

我觉得处理这个问题的思路能够用一个词来描绘——Abstraction(笼统)。为什么笼统如此重要?笼统怎样帮咱们处理问题?

关于根底软件或许软件开发来说,概念的笼统程度进步,会带来什么样的成果?榜首,架构的杂乱性会变得越来越低。咱们幻想一下云,原本没有云的情况下你或许还要去考虑一下硬件、网络、磁盘、存储、数据中心的租借,但有云了之后架构自身的杂乱性是下降的,你不需求了解这么多东西,因为云底下的东西现已被躲藏掉了。这意味着作为一个开发者来说,他的心智担负在下降。就像用 Vercel 开发运用的时分你不需求重视 CDN,Vercel 现已处理了 CDN 的问题。心智担负下降意味着开发者能更快地开发出运用,能花更多的时刻专心于事务立异,这便是商业的迭代速度。所以为了处理方才说的对立,咱们在数据技能上应该进一步去做笼统。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

在聊数据库的 Abstraction 前,咱们能够看别的一个比方——核算才能的笼统。上面这个二维图示中,竖轴是技能的笼统程度,横轴是商业立异的迭代速度(Go-to-Market Speed),咱们用它来看一下刚刚这个理论是不是建立。

图中左下角是 On-Prem,意味着 20 年前要做一个网站,还要关怀买服务器、租机房、网络租借等,笼统程度很低,开发者要花许多时刻在这些与事务无关的工作上,这也就意味着迭代速度是慢的

后来人们是怎样处理的?公有云的概念呈现了,把方才那些杂乱的硬件、布置、网络等数据中心的杂乱性笼统掉了。你拿到便是一台机器,它到底是不是真实的机器你不必关怀。这时,你要再开发一个运用,只需求在公有云上开个账号,把运用布置上去,按月给钱就行了。这比起自己去折腾数据中心来说,迭代速度又快了一步。

再往上看,云原生的概念呈现了。云原生的中心核算单元是 Container,Container 是更高层次的笼统。在虚拟机年代,你仍然要去考虑 VM 挂了怎样办,可是在 Container 世界里,Container 以及底下云的调度器都不必你管,意味着迭代速度更快。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

在数据库的世界里“笼统”是怎样去表现的?笼统程度最低的是云自身的根底设施,比方你要在云上私有化布置一个数据库,你需求自己去维护 MySQL 或许 VM。这时分你看到的是云的根底设施,它的笼统程度很低。再往上一层,比方 PingCAP 几年前要基于云供给的根底设施如虚拟机、S3、容器,去开发出一个叫 TiDB 的数据库。TiDB 供给了 SQL 才能,Scalability 才能,以及低推迟、高可用、分布式事务、HTAP、Geo-partition 等等一大堆数据库内核层面的才能。在这个阶段现已有许多用户说,“哇,TiDB 挺好用的”。

曩昔一年中,PingCAP 一向在把这个数据库技能变成一个数据库的云服务,也便是咱们在做的 TiDB Cloud。技能和服务的区别是什么呢?TiDB 技能自身就像一辆车里的发动机,或许一个火箭里的引擎。可是一个发动机跟一辆车必定不相同,尤其在云上。关于一个在云上想要运用数据库服务的用户来说,他需求数据的导入、数据的导出、备份、智能确诊、多租户各式各样周边的东西,把它们组装在一起才是一个服务,而不是给用户一个发动机让你自己拼出一辆车

这张图里有一条虚线,虚线之下作为一个数据库开发者或许一个数据库厂商来说,重视点其实是才能或许 feature ,就比方说发动机是不是安稳、是不是快、是不是省油,这些是才能驱动为主的一个抓手,可是在这条虚线之上整个驱动力会变成怎样去提高用户体会。你想要供给服务,就要从用户运用服务的全生命周期去考虑。比方他刚进来注册的环节、绑定信用卡的环节、数据导入的环节、运用、调优、备份的环节,同步到其他数据源的环节,每一个环节都要去考虑,这里边考虑的点便是用户体会,用户体会是指引这个产品做得更好用的方向

下一级别的“笼统”是什么?

“笼统”再往前一步是什么?咱们给出的答案是“Serverless”。一个月前 PingCAP 现已发布了 TiDB 的 Serverless 云服务。假如方才那个理论是 OK 的,“笼统程度越高,开发的功率越高”,Serverless 就会变成在云原生之后新的“笼统”。关于数据库来说 Serverless HTAP 是一个更高级别的“笼统”,它意味着更高的开发功率。

或许咱们榜首次听到 Serverless HTAP ,这到底是什么东西?意味着什么?

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

榜首,幻想一下假如有这么一个数据库,它的发动或许创立,你不需求关怀任何布置细节,也不必管有几个节点,并且它是召之即来,挥之即去的,几十秒之内就能准备好,一键就能创立出来;

第二,这个体系虽然看不见底下的根底设施,可是它会跟着事务的负载变化而主动匹配。比方说你的吞吐大到必定程度,不必再停下来加服务器,体系会主动进行扩展。当你的事务峰值降下来了,比方说双十一过后事务流量下来了,这个体系还能够主动地缩回来,甚至缩到 0。能缩到 0 其实很重要,在没有事务负载的情况下,体系能变成 0 意味着体系不再收钱,并且当有事务流量再过来的时分它也能在很短的时刻内又康复供给服务;

第三,HTAP Database。供给了一栈式的 SQL 才能,这是 HTAP 自身的才能;

第四,Pay-as-you-go。有的人或许会说公有云不是也是 Pay-as-you-go 吗?Serverless 跟云有什么区别?我觉得二者当然都是 Pay-as-you-go,可是能不能以一个更细的粒度去供给 Pay-as-you-go 的才能?曩昔咱们其实还是依照服务器、虚拟机这样的资源往来不断看待一个月多少钱,这个服务能不能粒度更细一些,只收事务流量的钱?尤其是关于偏剖析的场景来说,有许多时分咱们做大数据剖析,比方每天深夜要去跑个报表,或许需求一千个虚拟机算,20 秒钟算完,然后再缩回来。每天或许就凌晨需求这么多 OLAP 的服务器,可是我不或许白天也买这么多服务器,就为了晚上算那一下,能不能更细粒度的 Pay-as-you-go,只算 20 秒的钱非常重要。

第五,也是长期以来被各种硬核数据库开发商疏忽的一点,但未来会越来越重要,一个 Serverless 的 HTAP Database 必定要跟现代的开发者开发运用的进程体会深度整合。举个比方,比方咱们在笔记本上开发运用,现在假如有一个召之即来、挥之即去的数据库,我的开发体会其实是贯穿于整个开发流程里的。所以,曩昔咱们其实一向在把数据库与开发者分开来看。数据库重视性能、安稳性,各式各样特别硬核的跑分,可是未来将是从开发者的视点考虑怎样去运用数据库,让这个数据库帮助开发者更快、更流畅地构建运用。我觉得关于 Serverless 数据库来说,很重要的一个课题是从用户视点看,它应该融入到每天的、现代的开发体会中。

TiDB Serverless Tier

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

听起来很夸姣,Does it even possible?经过大半年的时刻,咱们总算把这个东西的榜首个原型做出来了,并在 11 月 1 号上线公测,这便是方才说的 TiDB Serverless Tier

我自己写了一个小程序,在一个全新的环境下,经过代码发动一个 TiDB 的 Serverless Tier 实例。在这个进程里,我仅仅告知这个程序,要发动一个集群,这个集群叫什么名字,然后把暗码一输,20 秒之后能够直接拿一个 MySQL 客户端连上去了,这个时刻未来会进一步缩短。幻想一下,假如缩短到三五秒钟,这会极大地改动开发运用的运用流程和体会。并且你不必关怀它的扩展性,即便上线今后,事务流量变得巨大无比的时分,它也能够很好地扩容上去,没有流量的时分,它还能缩回来。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

当然它背面其实有许多许多的技能细节,本文咱们就不一一细说了。其中咱们有一个准则,便是怎样利用好云供给的不同的服务,比方 Spot Instances、S3、EBS、弹性的 Load Balancer。TiDB 的 Serverless Tier 背面关于云上一切的弹性资源都进行了很好的整合,以及巧妙的调度,供给了一个极致弹性的用户体会。这个用户体会比原本的云原生数据库更往前跨越了一步,细节更少,笼统程度更高。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

这是体系的设计图,就不打开太多了,给咱们展现一下这个东西还是挺厉害的。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

所以,TL;DR 是存在的,也是有或许被做出来的。当 TiDB Serverless Tier 上线今后,咱们发现它一上线就把整个 TiDB 在云上的 cost 下降了。拿最小集群来说,现在比照本年年初,本钱下降到 1/5。并且在可见的未来,这个本钱会变得更低;第二便是发动的时刻,在本年 3 月份的时分,在云上发动一个新的 TiDB 集群需求 15 分钟,假如自己布置时刻或许更长。现在只需 20 秒钟,不远的未来这个时刻会缩短到更短。

云端 Serverless HTAP 数据库服务,意味着什么?

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

榜首,咱们一开始花了很长时刻去构建了一个安稳的数据库内核,能够弹性扩展、主动 Failover、ACID Transaction 等非常硬核的根底才能。但这些都是根底才能,这些东西应该躲藏在发动机里。作为一个开车的人,不必关怀变速箱里有哪些特性;

第二,HTAP 能够供给实时的一栈式数据服务。用户不需求关怀什么是 OLAP,什么是 OLTP。一套体系能够支撑一切负载,也不必忧虑 OLAP 负载影响 OLTP 的正常服务;

第三,根底设施层面,Serverless 布置的本钱变得极低,极致的 Serverless 不必关怀任何运维的细节。你能够经过代码和 open API 控制这些集群的起停。在拥有更大规模的根底设施时,这点是非常重要的。Serverless 在处理更杂乱或更大体系的时分,能明显减低杂乱性;

第四,真实的按需计费。Serverless 能够真实依照资源的消耗量往来不断计费。关于开发者来说,想用数据库的时分,只需招手它就来,不必的时分,也不必给钱,任何时分去拜访它,数据都在那儿,也能对外供给服务。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

在这样的 Serverless 架构下,咱们其实还能解锁更多的才能、更多的或许性

举个比方,S3 是 TiDB Serverless Tier 底下重度依赖的云对象存储服务。用过 S3 的必定都知道它便宜,可用性很高。更重要的一点是数据同享,比方咱们都在用 AWS,A 用户用 S3,B 用户部分数据也在 S3 上,比方说我想把我的数据同享给别的一个用户的时分,已然都在 S3 上,那同享就变得很简略。曾经在私有环境下,你还需求把数据下载出来拷给他,再上传进去,然后才干做剖析。假如是在数据量比较大的情况下,这几乎是不可幻想的。这种新架构的一种或许性便是真实能够做到 Data Sharing,当然这里边必定还涉及到包含隐私核算,各式各样的安全性问题。但从技能底层来说,这种产品形状并非不或许了。

另一种场景,比方说我想做一个区块链的数据剖析运用,但做这样的运用,榜首步你得把数据准备好。区块链的数据其实也不小,经常是大几百 GB 或几个 TB 的数据。但假如在 S3 上有一个公共的数据集现已准备好了,那在云上 Serverless 用户只需求在发动的时分,加载这部分数据就好了。这些才能在云下是底子不或许完结的任务。

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

这些才能具有后,数据库的商业模式会变成什么样子?在去年的 DevCon 上,我提出了一个猜测,“数据库作为一个软件形状自身会消亡,而数据库的平台化、微服务化会取代原本的数据库软件方式”。这个理论正在变成实际,今天,咱们能够看到几乎一切的数据库厂商,都在云上供给服务。

更进一步

未来再往前一步,会发展成什么样子?

Serverless 其实是云上 Database Service 更进一步产品形状的表现。现在我或许还需求去重视买多少个数据库节点,买多少个集群,可是在未来,真实从开发者的视点来说,他所关怀的应该只有数据操作的 API ,这一层才是离事务更近的东西。另一方面,当 Serverless 在云上被供给后,数据同享、交换就变成了一个很自然或许很简略的工作,那时分我觉得会呈现一个叫做 Data market 的新商业模式

记得我在上大学学数据库课程的时分,我的教师告知我,这个东西很简略,你只需会写 SQL 就 OK 了。但我工作今后,发现还有 OLTP、OLAP、时序数据库、图数据库,以及各式各样八怪七喇的数据库,你得学习一大堆东西,这些东西里边有很多的细节。

咱们想把它做得很简略,把开发者的体会带回早年。数据库原本就应该是很简略的东西,咱们应该花更多的时刻重视于事务的立异、重视于真实重要的工作,这些杂乱的东西,就让它简略起来好了。

未来真实重要的东西是什么?是流畅的开发体会。这便是咱们终极的前进方向,也是作为一个根底软件供给商的担当。虽然前面说了这么多很技能的东西,但其实 Serverless 很简略,现在它现已变得触手可及,咱们能够经过 TiDB Cloud 就能够马上体会它。