查看原文
其他

黄东旭:开源数据库的国际化思考与实践

CSDN 2022-11-02
整理 | 小雨青年
出品 | CSDN(ID:CSDNnews)
在“长沙1024程序员节”的“全球开源技术掌门人”高峰论坛上,PingCAP 联合创始人兼CTO 黄东旭分享了《开源数据库的国际化思考与实践》。

开源已死?不,还差得远
可能因为TiDB是开源的,最近在国内开源也是比较热的主题。有些朋友会说Snowflake 也不开源,或者Databricks的Delta Lake 一开始也没有开源,并且现在一些云服务厂商,比如 AWS Aurora 的 Redshift ,基本都不开源。所以开源会是数据库或者新一代的基础软件的一个必要条件吗?下图为一个名为ossinsight 的开源项目,它把Github上的数据实时抓下来做数据分析。从宏观角度来看,开源项目即使基数很大,仍然在呈指数级地增长。在这个趋势下,开源变得越来越重要,如果新的数据产品或者数据库软件不开源,那么它的机会是不大的,毕竟现在很难在成就一个Snowflake 。开源仍然是现代数据库或者其他项目冷启动最好的方式。
开发方式正在被重塑
Supabase 是一家非常有意思的数据库公司,在它的主页有两句 slogan ,"Build in a weekend.Scale to millions."。从我们的角度来看,一周能Build 出来的也就是原型,而millions 对于数据库性能来说是个很小的数字。Supabase 提供的服务很简单,它把PostgreSQL 放到云上,给客户提供易用的服务。而它的目标客户不会关心它能不能跑一个亿的 TPS ,而是整体的用户体验非常流畅。我们过去一直在关心数据库本身,但是开发者在使用产品过程中不止在使用数据库,还有用户体验上,比如数据导入导出、数据同步和服务上层的API 。现在更多的云服务公司、数据库公司的硬核能力不再变得那么重要,反而对于用户体验的关注会让产品更好用。开发者的开发应用方式正在被重塑,用户体验在未来会变成数据库产品的兵家必争之地。谁能提供简单易用的服务谁就会赢,尤其是在云上。开发者的门槛在变得越来越低。以前的电商平台,要做双十一的服务,它背后的数据库技术、缓存技术、全链路技术和高并发技术等,对于开发者的知识和能力的要求都非常高。随着云上的服务和产品的出现,开发者构建这样的应用门槛变得非常低,只要会写前端就能构建出一个八九不离十的应用。Vercel 是一个前端应用托管平台。如果开发者采用传统的应用托管,就要自己租服务器或者虚拟主机、选择数据库再把代码部署上去,而Vercel 把一切关于运维部署的东西都隐藏起来了。对于开发者来说,只要把业务代码提交到Github 上,Vercel 就会搞定后续的一切工作。如果开发者的电商业务流量暴涨,Vercel 还会解决可扩展性的问题解决。Vercel 会和其他厂商做整合,比如TiDB ,用户可以直接在Vercel 上使用 TiDB 的服务,而TiDB 本身的服务是可伸缩的,所以对于用户来讲得到的是全链路的解决方案。只要开发者会写前端,就能拥有其他厂商几十年的功力。TiDB 在海外主要是以云服务的方式对客户提供服务,所以用户已经看不到底层部署主哪台机器上运行,这些对用户来说不用关心,他只需要关心怎么连上去数据、怎么导入导出,包括备份恢复这些全都已经内嵌到产品里了,所以使用数据库就是一个点点鼠标的事情。开发者体验是一个非常重要的事情,而且在未来会越来越重要,因为开发者的门槛在变得越来越低。懂得这些分布系统或者数据库。的人其实没有那么多。而且事实上这个世界上就没有这么多双11,就没有这么多的这个极端的这种场景去需要这么高的这个极端的性能。
OALP 和 OLTP 之间的差距正在模糊
过去几十年,我们发明了太多的OLTP 数据库,比如Oracle 、MySQL 、DB2 、 PostgreSQL ,同时我们又发明了多个Data Warehouse ,比如Greenplum 、Terdata 、snowflake 。这样就导致整个系统非常复杂。最近半年,尤其在美国,HTAP 是个非常重要的趋势。比如 Google 隆重推出了名为 AlloyDB 的全托管式 PostgreSQL 数据库,它的特点是支持实时分析。最近这几个月,Snowflake 发布了 Unistore 的新服务。这个新的服务针对的 Workload 就是在线服务,比如支持事务,同时也支持分析型的负载。


两家巨头都发现,越来越靠近实时和交易型的数据库是一个很重要的方向。这背后的核心逻辑在于简单,因为二三十年前其实我们根本没有什么 OALP 和 OLTP 之分。数据库来讲,开发者只要会写 SQL ,在Oracle 或 DB2 上执行就结束了。数据库技术的演进和发展跟不上人们对于数据服务的需求,后来就分化出各种特定场景的数据库技术。因为OALP 和 OLTP 本质上来说底层要求的技术是不一样的。但是对于这个云上,这几年包括硬件、云、分布式技术的成熟,使用户体验上的融合是变成可能,而且融合到最后会以很简单的形式提供给用户,因为开发者去使用数据库的时候,一定会希望它是更简单的接口形式。
高性能?
经常有人说数据库到底要不要追求高性能,当然要。但是高性能到底意味着什么,目前没有一个人能够给我讲清楚。实际上大家真正去使用数据库的时候,更在意的是性能是不是可预期的,就是稳定性。其实,可预期的性能比高性能更重要。比如说数据库服务告知开发者,不管是 100 并发、1000 并发甚至1 万并发响应都是100 毫秒,而不是说在压力小的时候 1 毫秒,压力大的时候是2秒。所以不稳定的快不如稳定的慢,尤其在云上。如果厂商要提供数据库服务的话,这一点是比单纯追求极致的性能会更加重要的设计思路。Serverless 会变成下一件大事
这次不提云原生,因为目前来说所有东西都是云原生的,当云原生成为必选项以后,一定会出现基于云原生出现新的生态和技术。Serverless 就是一个很好的例子,云原生的下一站一定是 Serverless 。这里需要一个新的概念 Full Stack Service 。比如 Vercel 这个网站和应用托管平台,前端不需要关心CDN 的服务器,应用层不需要管部署在那个服务上。这些新一代的服务提供商,他们在每个链路上都是 Serverless 的解决方案,以后整个链路串起来变成全栈 Serverless 的体验。现在云上数据库存算分离已经变成基本要求,以后厂商能多大程度地去利用 Serverless 就意味着能多大程度地去利用云上的弹性的资源,能多大利用弹性的资源意味着能够创造多少利润空间,这点其实特别重要。
从SQL 到API
作为 Database 厂商,我们经历了 SQL 到 NoSQL 再到 new SQL 又回到了 SQL ,接下来 API 会变成兵家必争之地。SQL 是访问数据库的一个标准的语言,但是 SQL 其实离真正的应用还是有点远。真正的应用一定是通过 API 来去访问数据,但这意味着用户还要去管理 API 去写很多代码去封装数据库,把数据库的数据访问变成 API 再提供给应用。所以下一个趋势是让 API 的封装和使用变得更加的简单。对一个数据库公司来说,用户是谁,很多人说是 DBA。早年我也觉得产品就是给像数据库的使用者、管理员和这个基础软件的开发者去用的。但是现在真正我们的用户是构建应用的开发者,甚至未来世界都可能没有DBA 。当然,目前来看 SQL 仍然是一个非常重要的一个接口,至少比 NoSQL 要好。

— 推荐阅读 —

2022 RTE 行业的关键词是什么?
不要让框架控制你的项目,过度依赖框架,可能最终会害了你
阿里系占6席,华为遥遥领先,《2022 中国开源贡献度报告》首次发布!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存