前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DTCC 2021 黄东旭:从 DB 到 DBaaS,数据库技术的当前和未来

DTCC 2021 黄东旭:从 DB 到 DBaaS,数据库技术的当前和未来

原创
作者头像
PingCAP
修改于 2021-10-27 08:01:41
修改于 2021-10-27 08:01:41
5760
举报
文章被收录于专栏:PingCAP的专栏PingCAP的专栏

10 月 18 日~ 20 日,第 12 届中国数据库技术大会(DTCC2021)在北京国际会议中心隆重召开。PingCAP 联合创始人兼 CTO 黄东旭受邀在主会场进行了以 “TiDB Cloud:from Product to Platform” 为主题的演讲,分享了云原生时代数据库产品平台化的重要性,以及 TiDB 从 DB 到 DBaaS 的经验和体会。以下为分享实录。

在最近数据库行业的发展中,比起 “代码写得好不好” 这样的工程技术问题,科学问题更加突出:有一件事情非常深刻地改变了整个数据库的行业,那就是数据库底层发生了变化。以往大家去思考数据库软件和系统软件,都会先做一个假设:软件是跑在计算机等具体的硬件上的,即使是分布式数据库,每个节点都还是一个普通的计算机。现在这个假设改变了:我们的下一代到能够学编程或者写代码的年纪,不会再像我们现在这样能够看到 CPU、硬盘、网络,他们看到的可能就是 AWS 提供的一个 S3 的 API 。其实这种改变并不仅是软件载体的改变,更重要的是架构、编程的底层逻辑发生了变化。云对基础设施和软件的影响和改变是深远的。具体到 PingCAP 身上,最大的感受就是比起做数据库内核, 现在在云上做 TiDB Cloud 服务的投入可能多得多。这也是我今天要分享的主题,From Product to Platform —— 从 DB 到 DBaaS,数据库技术的当前和未来

PingCAP 的创业初心

图片 1.png
图片 1.png

上图是我理解的数据库发展历程。追溯到十几年前,我们开始使用单机 MySQL,这个时期我们对数据库的需求只有朴素的增删改查,2010 年前后直到今天,爆发的数据量让单机数据库难以为继,大家只能通过分库分表或者中间件来实现分布式部署。

然而分库分表对业务的入侵性太大,那能不能有这样一个数据库,用起来和单机 MySQL 一样简单,但是扩容时不需要考虑分片,而是通过系统本身的机制来实现弹性、舒适、业务无入侵的拓展?这就是 PingCAP 创业的初心。

PingCAP 创业六年多以来,为了达成这个小目标,也总结了几点心得

易用优先:协议大于实现

MySQL 协议比 MySQL 具体软件更重要。如果一款数据库能够兼容 MySQL 协议,能让用户在数据库的选型过程中无需考虑对应用和业务的影响,就能拥有最大的用户群。我们无需发明一种新的使用方式,就像电动车还是会通过方向盘和油门来操控,虽然引擎下的世界和汽油车完全不同。

用户体验优先

数据库的性能指标比如 TPS、QPS 等固然重要,但是用户的体验才是一款数据库成功的关键。因此,TiDB 在做所有技术决策的时候都是通过用户体验(Usability matters)来判断。从我过去的经验来看,许多互联网公司需要维护的数据库种类非常多,每启用一种新的数据库就会多一个数据孤岛。因此,在满足用户数据处理需求的同时,简化的技术栈可能才是真正的用户痛点。无论是 OLTPOLAP 还是 HTAP,TiDB 希望做的事就是让大家的生活变得好一点。

开源优先

PingCAP 始终坚持开源战略,也因此受益颇多。从生态角度,开源的研发模式能够迅速积累用户。TiDB 1.0 版本 2017 年 11 月发布,从诞生到现在,我们知道名字的用户有 2000 多家,贡献者有 1500 多个,CNCF 开源组织的 Contribution Rank 中,PingCAP 排名全球第六。

技术角度,开源加速了产品的迭代速度。这张图的纵轴是代码量,横轴是时间,不同色块是代表某一年写的代码量。从图中我们能够看出,基本上每年 TiDB 的代码都在被重写,几乎没有一年是跟去年的代码一样。这个迭代的速度就是通过开源社区来实现的,是任何一个团队、任何一个公司、任何一个企业从头开始做一个数据库都无法达到的进化速度。

Why DBaaS

TiDB 的产品能力不是今天分享的重点,我今天想谈的是把一个产品变成云服务到底有多重要。首先抛出一个最终结论,现在这个时代对 CIO 尤其是海外的客户来说,数据库产品对云的适配成为了一个必选项。

现在我们正好站在时代的交界点上。从技术上来讲,数据库的发展就是从 Standalone(单机)到 Cloud-Native(云原生)的进程。现在我们处在第二条红线的位置,就是从 Shared-Nothing 到 Cloud-Native 的边界。从商业角度看,整个数据库和基础软件行业的商业模式也正在发生特别大的变化:过去我们希望通过售卖 license 进行私有化部署,到现在希望能够实现规模化的扩张,这也正是 On-Prem 到 DBaaS 变革。作为一家成功将数据库商业化的公司,MongoDB 走出了一条很有代表性的道路。MongoDB 每年的市值都在翻番,现在已经到达了 300 多亿美金。从 MongoDB 的财报可以看出,DBaaS 产品 MongoDB Atlas 基本上每年都保持着超过 100% 的年复合增长率,这就是云服务的价值所在。

TiDB 在云上的平台化之路

最近两年我也重新定义了一下我们的愿景和使命:全世界的开发者享受到我们的服务,Anywhere with Any Scale。想要实现这个目标,从 DB 到 DBaaS 是个必选项。只有云上的服务才能突破地域的限制,并提供无限的算力。从 DB 到 DBaaS,远不止将底层资源换成云这么简单,需要考虑的还有很多。技术上,要实现降本增效、运维自动化、多租户管理,合规上要考虑数据安全,商业上,计价模式、商业化策略等都是需要纳入考虑的范围。接下来我将从技术角度谈谈 TiDB 在 DBaaS 进程中付出的努力。

成本节约:分离的架构设计

云原生技术最终要解决的就是成本的问题。
在过去,TiDB 有一个 TiDB + TiKV 的协处理引擎,计算和存储的边界是非常模糊的,很难处理不同负载率的场景。本地部署的情况下,如果需要增加存储容量,就需要增加存储节点,因为硬件的限制,除了磁盘,CPU 及网络带宽也会同步增加,这就造成了资源的浪费,这是所有 Shared-Nothing 的数据库都要面临的问题。

而到了云上,一切就截然不同。比如 AWS 的块存储设备的服务 EBS,特别是 GP3 系列,能够在不同的机器上运行,且达到同样的 IOPS 和 Cost,性能和对云原生的整合都非常好。为了利用 GP3 的特性,我们是否可以把计算和存储的边界往下移,从原来的 TiKV 到存储,到现在 TiDB、TiKV 的大部分都可以是计算单元,更加灵活。

云带来的成本节约不止于此。云上真正值钱的东西是 CPU,瓶颈会是计算,而不是容量。集群和实例可以基于资源共享池进行优化(Spot instances & Clusters based on shared resource pools)、按需选择存储服务的类型、对不同类型的 EC2 实例在特定场景组合交付、无服务器计算、弹性的计算资源都将成为可能。此外,根据我的判断,除了计算存储分离,网络、内存,甚至 CPU 缓存都会是分离的。因为对一个应用程序来说,尤其是分布式程序,硬件资源的要求是不一样的。不管是做什么业务,就像做菜一样,手上只有一颗菜肯定做不出什么花来,但原材料很多,就可以按照口味去做组合,云带来的就是这样的机会。

安全性

除了成本,云的安全性也是重要课题。TiDB 官方支持的公有云是 AWS 和 GCP。云上网络用户使用的都是自己的 VPC,中间也会有 VPC Peering 打通的环节,我们看不到用户的数据,但用户可以很高性能地访问自己的业务,安全性要怎么保证?

图中是 TiDB 的安全体系,云上的安全体系和我们云下的思考完全不同。举个特别简单的例子:云下只需要考虑 RBAC 数据库内部的权限,但在云上就非常复杂,需要考虑从网络到存储一整套的用户健全安全的体系。做好云上安全的关键点是千万不要自己重复发明,因为基本都有安全漏洞。所以我们现在就是要充分利用云本身提供的一套完整的安全机制,比如密钥管理和规则等。当然,最好的地方都是这些服务都能够明码标价,只要做出计费模型就好了。

运维自动化

关于 DBaaS 的构建还有一点很重要,其实也和成本有关,就是运维自动化。云是一个规模化的生意,而现在国内数据库生意最麻烦的部分之一就是交付。一个大客户恨不得派二十个人驻场,但这件事情可持续吗?。我们要实现的就是可以通过 10 个人的交付团队去支持有 1000 个客户的系统,这是规模化的前提。

这些是 TiDB 自己的云服务技术选型,通过 Kubernetes 实现云上部署,通过 Gardener 进行联邦管理,管控多个 Kubernetes 集群,Pulumi 是一个基础架构即代码的自动化工具

Kubernetes

要把 TiDB 变成云服务总共分为几步?第一步就是人肉运维全部变成代码。TiDB 要扩容了,不要人肉扩容,系统自己能不能扩容?TiDB 故障恢复,人参与不了,机器能不能参与?我们把所有 TiDB 的运维全部变成了 Kubernetes Operator,相当于我们实现了自动运维 TiDB。Kubernetes 能够屏蔽所有云厂商的接口复杂性,每个云厂商都会提供 Kubernetes 服务。

Pulumi

刚才说过这些东西的部署、运维、调度的逻辑,如果都是靠人写脚本,一是不稳定,二是不可维护。我们的理念就是只要能够变成代码的东西就固化下来,千万不要依赖人,包括去开一个服务器,或者去买一个虚拟机,我们都会把它变成 Pulumi 编程语言的脚本。

Gardener

TiDB 通过 Gardener 的 API 来管控多个不同 Region 里的 Kubernetes 集群,每个 Kubernetes 集群再去划分不同租户的 TiDB 集群,形成一个多云、多区域、多 AZ 的大的系统。这个架构有一个好处:用户可以在自己应用程序所在的云服务商和地理区域按需启用 TiDB,保持技术栈的统一。

商业 SLA

SLA 里面要考虑的东西也很多,这是 TiDB 要做的且正在做的东西。TiDB 的海外客户特别多,海外用户对数据库的需求与国内用户有很大不同,跨数据中心是一个刚需。由于现在各国的数据安全需求,数据的传输有了诸多限制,合规的、跨数据中心的能力对数据库来说十分重要。比如面对欧洲的 GDPR 管控,如果能把一部分数据就放在欧洲,不要出来,只有不在管控范围内的东西能出来,就会省去很多麻烦。相信接下来这个能力对于中国的厂商和客户,包括做出海以及在国内做合规都会变成刚需。这个功能在云上很容易实现,比如 AWS 本身就是多 AZ、多 Region 的架构,无需考虑底层,在另外一个数据中心开几台机器,用户只需要在界面上点一下鼠标数据就过去了,但对于无法在云端部署的数据库来说,如果要去处理全局的数据分布或者全局 Transaction 和 Local Transaction,需要考虑的东西就多得多。现在 TiDB 就是未雨绸缪,这项功能已经马上就要发布了。

想要在云上提供服务,技术固然重要,合规是个前提。云上的生态整合有一个主线,就是跟着数据走,数据的上游、下游和管控是最重要的三个点。TiDB 的上游就是 MySQL、S3 里面的数据文件,下游只需要支持与 Kafka 或其他消息队列服务的同步即可。在数据的管控层面,在云上尤其是对海外用户来说,比起通过数据库厂商去做整体的管控,更希望和类似 DataDog、Confluent 这样的平台打通。最后打个广告,TiDB 在 Q4 会推出对开发者的为期 12 个月的免费体验版,能够快速部署,默认支持 HTAP 功能,通过容器实现计算隔离,同时具有专用的块存储,大家在云上可以随意使用。我们的网址是 tidbcloud.com,未来也会支持国内的云,期待大家的体验和反馈。希望 PingCAP 能够真正做到:让全世界的开发者享受到我们的服务,Anywhere with Any Scale。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vivo数据库与存储平台的建设和探索
以史为鉴,可以知兴替,做技术亦是如此,在介绍平台之前,我们首先来一起回顾下vivo互联网业务近几年的发展历程。
2020labs小助手
2022/01/27
7980
中国技术出海,TiDB 数据库海外探索之路 | 卓越技术团队访谈录
据 PingCAP 介绍,目前他们旗下的 TiDB 数据库产品已经服务海外多家巨头企业,覆盖互联网、科技、金融、游戏等行业。熟悉数据库的开发者都知道,有着基础软件“三驾马车”之一的数据库对一家企业的重要性有多大。
深度学习与Python
2022/06/11
7830
中国技术出海,TiDB 数据库海外探索之路 | 卓越技术团队访谈录
黄东旭:2025 数据库技术展望
又到了一年一度的数据库行业总结的时间,2024 年其实并不算数据库技术的大年, 倒反而是 AI + 数据相关的应用开始蓬勃发展,但数据库内核技术也并不是没有进步,在对云基础设施的使用已经开始变成行业的共识,下面就集中写一下我今年的一些观察。
PingCAP
2025/01/17
1560
黄东旭:2025 数据库技术展望
ChaosCraft:和女朋友一起来 Hackathon 表演绝活丨滑滑蛋团队访谈
根据马斯洛需求层次理论,当基本的生理和安全需求被满足了之后,人们就需要去满足更高级别的精神级别的需求。
PingCAP
2022/01/28
4170
推荐一个SpringBoot + Vue + MyBatis 音乐网站项目
本音乐网站的客户端和管理端使用 VUE 框架来实现,服务端使用 Spring Boot + MyBatis 来实现,数据库使用了 MySQL。
程序员追风
2021/10/26
1.3K0
推荐一个SpringBoot + Vue + MyBatis 音乐网站项目
用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!
618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售数据如何?用户好评如何?等等
Python研究者
2021/06/19
1.2K1
PingCAP黄东旭:Serverless是数据库的未来形态
但在今天,几乎没有程序员知道如何使用汇编语言,更加简易的高级语言如C++,C#,JAVA,Rust,Go已成为开发主流。
科技云报道
2023/02/14
4460
干掉 powerdesigner,设计数据库表用它就够了
最近有个新项目刚过完需求,正式进入数据库表结构设计阶段,公司规定统一用数据建模工具 PowerDesigner。但我并不是太爱用这个工具,因为它的功能实在是太多了,显得很臃肿,而平时设计表用的也就那么几个功能。
程序员小富
2020/12/30
2K0
MySQL一万字深度总结,基础+进阶(二),建议收藏。
💖✨MySQL一万字深度总结,基础+进阶(二) [2d47ee05b93f41f888888a8a1bba8b31~tplv-k3u1fbpfcp-zoom-1.image] 👨‍🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。 ☠
Java学术趴
2021/08/09
3850
黄东旭:The Future of Database,掀开 TiDB Serverless 的引擎盖
在 PingCAP 用户峰会 2023 上, PingCAP 联合创始人兼 CTO 黄东旭 分享了“The Future of Database”为主题的演讲, 介绍了 TiDB Serverless 作为未来一代数据库的核心设计理念。黄东旭 通过分享个人经历和示例,强调了数据库的服务化而非服务化数据库的重要性,并展示了 TiDB Serverless 架构的创新之处, 同时探讨了 TiDB Serverless 对于中国用户的价值 。以下为分享实录 。
PingCAP
2023/07/26
3290
黄东旭:The Future of Database,掀开 TiDB Serverless 的引擎盖
java操作sql server数据库
请先确保已经设置好了sa,如果不是,可以参照下面链接修改http://jingyan.baidu.com/article/8cdccae9452b3c315513cd52.html
Python研究者
2021/08/22
1.6K0
vivo推送平台架构演进
有的小伙伴可能了解过,有的可能是第一次接触到。无论您是哪一种情况都希望通过今天的分享,能够让您对我们有新的了解。接下来我将从产品和技术两个不同视角,给大家介绍vivo推送平台。
2020labs小助手
2022/01/17
1.5K0
vivo推送平台架构演进
数据结构与算法夺命连环17问
金三银四真的太卷了,最近小编在整理java面试题汇总的时候,无意中寻到了这份阿里面试官手册,这份面试题还真的与以往的java核心面试知识点有大不同,这份面试官手册是完全站在面试官出题的角度分析问题,要问它有多香我们且看目录就完事了,不过小编这里只摘取了一部分面试官会经常问的分享给到大家。
Java程序猿
2022/03/20
3780
大数据平台搭建神器,Ambari HDP集群搭建全攻略
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。
鲁大猿
2020/12/08
1.8K1
基于喜欢的DB、Kubernetes操作器和容器存储运行自己的DBaaS
几乎每天我都听人说到想把越来越多的工作转移到Kubernetes上。这可能有道理,因为上面来自StackOverflow的数据表明,Kubernetes已经真正起飞了。
CNCF
2019/12/04
8810
基于喜欢的DB、Kubernetes操作器和容器存储运行自己的DBaaS
互联网通信发生了什么❓你竟敢如此大胆翻墙❗
✨互联网通信流程介绍 👨‍🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、云+社区、InfoQ、掘金 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。 ☠️你要感谢那些伤害过你的人,正是因为这些人你才能够变得强大。 👋大家好!我是你们的老朋友Java学术趴https://cloud.tencent.com/
Java学术趴
2021/08/19
4270
超详细 PowerDesigner 入门教学(项目数据库设计标准)
项目数据库设计标准步骤 一、数据需求分析 Creates a new model [c8b15963eef24188ab6e5222d1f40a7e~tplv-k3u1fbpfcp-watermark.image] [eb440c06e3d44d9eba41c2551cd3d643~tplv-k3u1fbpfcp-watermark.image] 建好以后是这样的 [在这里插入图片描述] 然后我们来建立实体,选择右边的 Entity,直接在屏幕上点就可以,$\color{red}鼠标右键取消$ [在这里插入
ruochen
2021/02/18
2.1K0
超详细 PowerDesigner 入门教学(项目数据库设计标准)
手把手教你学会Python函数式编程
在这篇文章里,你将学会什么是函数范式以及如何使用Python进行函数式编程。你也将了解列表推导和其它形式的推导。
查理不是猹
2021/12/20
4020
PingCAP 黄东旭万字长文剖析数据库发展新趋势:脱离应用开发者的数据库,不会成功
本文由 PingCAP 联合创始人兼 CTO 黄东旭撰写,基于亲身经历的数据库行业,深度总结过去一年数据库发展的重要趋势,以及展望 2023 年数据库新方向,希望对更多的行业从业者有所启发。
PingCAP
2023/02/01
6190
为什么需要分布式ID?大厂的分布式 ID 生成方案是什么样的?| JavaGuide
今天分享一道朋友去京东面试真实遇到的面试题:“为什么要分布式ID?你项目中是怎么做的?”。
Guide哥
2021/06/25
2.2K0
推荐阅读
相关推荐
vivo数据库与存储平台的建设和探索
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档