免费试用
作者:唐刘
产品技术解读
2024-01-25

在前面的 TiDB in 2023 - 一次简单的回顾,我简单的介绍了下 2023 年 TiDB 一些进展,在 2023 年,我们自己在 cloud 提供的托管服务 TiDB Cloud 也取得了非常巨大的进步,这里也简单的分享一些故事。

对于 TiDB 来说,在 2023 年,我们的目标是持续构建一个高质量,可扩展的分布式数据库,那么对于 TiDB Cloud 来说,我们在 2023 年的目标就不光是给客户提供一款简单易用的数据库服务,也能让全世界的开发者使用一款一直在线的、触手可及的数据库。

注意:我们在 TiDB Cloud 上面,提供了两个产品服务形态 - TiDB DedicatedTiDB Serverless,对于特定的产品,我会分别说明,不过有时候也会用 TiDB Cloud 来覆盖两个产品。

User Experience

要做到简单易用,并不是一件非常容易的事情,首先如何定义『简单』和『易用』就是一件非常困难的事情。关于这个,我专门跟我的一位完全不懂数据库的朋友探讨过,她给了我一个很不错的输入 - 『一个产品,首先要好看,然后才有想用的欲望。用的时候,整体体验比较顺畅,才有继续用的欲望。就跟你手上的 iPhone 手机一样』。

听到这个,我还是比较有感触的,然后看了看我们在 2022 年 12 月份时候的 TiDB Cloud 的界面,如下:

TiDB Cloud interface

整体界面(这里要强调一下,对于 2022 年 6 月份的 TiDB Cloud 界面,这个界面已经改进了不少的),怎么说呢,虽不至于完全不能用,不过第一眼看上去,我其实并没有太多用的欲望。配色上看起来有点小清晰,不过跟程序员的风格很不搭配。另外一个点就是我完全不知道如何开始,虽然有很多高亮的按钮可以点击,不过第一步从哪里开始,并没有太多的引导。

在 2023 年一开始,我们就把界面上面的用户体验,放到了最高优先级之一,当时我们的目标很明确,提供一个开发者喜欢用的数据库。既然是开发者,那么我们自己就是『受众』了,想想自己想要什么风格的界面,脑子里面立刻想到的就是暗黑模式,侧边栏,有 Getting Started Page 等等,于是经过了一年多的迭代和改进,当前的界面如下:

TiDB Cloud界面-new

可以看到,整个界面相比之前变化了太多,用完全两套不一样的产品来形容也不为过。我们的辛苦努力也没有白费,不少的用户直接跟我们直接反馈,选择 TiDB Cloud 的一个原因就是『易用』,『操作简单』,而更令我们惊喜的是,一些创业公司的 CTO 明确跟我们说了,他们会参考我们的界面风格来开发他们自己的 SaaS 产品。

当然,用户体验仍然是我们今年的一个重点工作,会持续大力投入资源去改进和完善。

AI

2023 年是 AI 的爆发年,对于我们来说,也在一直思考如何跟 AI 进行结合。当时我们主要探讨了几个点,包括但不限于:

  1. 让 TiDB 内核自身提供 vector 的支持,让 TiDB 变成一个 vector 数据库。

  2. 让 TiDB Serverless 提供内置的 vector 的算子支持,调用其他的 vector 数据库。

  3. 依托于世面上的 vector 数据库还有 Open AI,在 TiDB Cloud 上面提供更上层的解决方案。

对于 1 来说,涉及到动 TiDB 的内核,在前文说过,我们在 2023 对于 TiDB 的目标是稳定性,所以并不想太多的改动内核。而对于 2 来说,在 2023 年 TiDB Serverless 的一个重要目标是快速的稳定,能跟用户见面,所以我们也不想耽误 TiDB Serverless 的开发工作。所以在 2023 年一开始,我们选择方案 3,于是就有了我们当前的一个功能 - Chat2Query。

Chat2Query 能非常方便的让用户使用自然语言跟数据库进行交互,这个功能现在几乎已经成了 cloud 上面数据库的一个标配了。这里还是有一点小自豪的,毫不夸张的说,在当时,当我们放出来 Chat2Query 的时候,很多用户就惊叹于我们整个顺滑的操作体验,以及生成 SQL 的准确性了。

Chat2Query 这个原理看起来非常的简单,就是把用户的一段语句,准确的翻译成 SQL,并且能在数据库执行成功,返回对应的结果。不过这可真不是一件容易的事情,我们也是做了非常多的工作,才将准确率提升到一个层次,大概如何做的,大家可以看我之前写的一篇文章,From Text to SQL: How We Empower Users with AI-Powered Database Interactions,而我们也会在今年发表放出更多的技术细节,包括但不限于文章,论文等。

今年 TiDB Cloud 会继续拥抱 AI,我们也会在 TiDB Cloud 提供更多更强的 AI 能力,让用户更方便的操作他们的数据,我们会逐渐开始放出相关的功能,敬请期待。

TiDB Serverless

TiDB Serverless 在 2023 年 GA 算得上 PingCAP 的一个重要的里程碑,我们一直有一个梦想,就是希望『全世界的开发者都能拥有一款永远在线的,触手可及的数据库』,而现在,我们正在不断的实现这个梦想。

要做到触手可及,对我们一个最大的挑战之一就是成本,我们一直有一个梗,就是『贵司』,顾名思义,就是 TiDB 其实很贵的。所以如果我们给每一个用户在云上提供一个触手可及的 TiDB 集群,那么贵司大概率就离破产不远了。。。

所以,一开始,我们就在思考,如何让一个 TiDB 集群能同时支持数万个用户同时使用?于是我们在云上面就有了一个基于 S3 的存算分离,弹性,微服务化的 TiDB Serverless 架构,大概如下:

TiDB Serverless 架构

这套架构有几个关键点:

  • 因为 S3 的高可靠,高可用,高吞吐等特性,我们选择 将 S3 做为所有数据的 Source of the Truth。这个选择有很多好处,譬如,我们可以方便的进行数据的备份操作,以及可以将很多重型的操作,譬如 Compaction 使用另外的 Remote 服务来进行,而不用去影响当前在线的服务。当然,S3 的延迟是一个问题,尤其对于 OLTP 业务来说,所以我们也做了很多的优化,以后有机会再说。

  • 微服务化。我们能很好的进行服务的高可用处理,保证服务的连续性,这个也是我们对外承诺的永远在线的基础。另外一方面因为微服务,我们也能很好的控制服务的力度,让整个系统有更好的弹性能力,从而也能控制我们的整体成本。不过微服务也带来了运维的复杂性,我们也做了非常多的工作,这个也是以后有机会再说。

随着 TiDB Serverless 的 GA,我们也非常开心的看到,不光 TiDB Serverless 承载了我们 PingCAP 自己的很多核心业务,譬如 OssInsight (https://ossinsight.io/ ),现在也给支撑了不少客户的系统。当然,TiDB Serverless 还有非常大的挑战,包括但不限于快速大量数据的导入,针对不同用户负载的更弹性的处理等,这也是我们持续要努力的方向。

Operational Excellence

很早的时候,就听 AWS 一直在强调 Operational Excellence,不过当时我不以为意,直到我们开始做 TiDB Cloud。

一开始,我们以为,做 TiDB Cloud 非常的简单,无非就是帮助用户将 TiDB 部署到云上面,然后帮助用户进行托管运维,当时想想,真的太天真了。提供一个服务,跟给客户一个让他们自己用的产品,完全是两个事情。我们踩了非常多的坑,也做了非常多的改进,这里简单分享几个例子。

在 2023 年年初我们统计我们的某一段时间的服务故障的时候,我们惊讶的发现,9 个故障里面,竟然有 5 个是因为变更引起的,这里面变更包括但不限于给客户改 TiDB 的参数改错了,或者给某一个客户错误升级了集群等等。

另外一个挑战就是对于 Alert 的处理,TiDB 之前为了更好的让用户定位问题,我们提供了几千个监控指标,以及数百个 Alert,如果只是单纯的运维一个集群,忍忍就行了,不过当我们开始帮助客户运维多个集群的时候,这对我们自己就是一个灾难了。我们自己有时候就被成千上百的 Alert 消息给打爆了,疲于 OnCall。而另一方面,我们对于到底当前哪一些 Alert 是高频问题,我们从全局上面并没有很好的感知。

上面的问题,都属于 operation 层面,所以从 2023 年开始,构建一个 Operational Excellence 的服务,就是我们一个非常重要的工作了,所以我们开发了 TiDB Cloud 运维平台。在这个平台里面,我们能让我们的运维同事非常方便的进行变更操作,如下:

Operational Excellence服务

也方便的提供了整个大盘的 Alert,能让我们的研发同事专注于重点问题的解决,以及遇到 Alert 之后,可以通过各种自动化工具去解决等。

Alert

当然,整体的运维平台并不仅仅只是上面提到的这几个点,通过构建运维平台,提升了我们整体运维 TiDB Cloud 的效率,也帮助我们避免了不少的线上故障。一个例子,当我们引入了变更功能之后,在一段时间,我们统计,只有一次出现了变更的故障,这个相比之前是一个巨大的变化了。

小结

构建 TiDB Cloud 对整个 PingCAP,尤其是研发团队,算得上一次巨大成长。如果说 2023 年,通过构建 TiDB,让整个研发团队的心智从『技术驱动』,转到了『产品驱动』,真正专注于给客户提供一个高价值的数据库。而通过构建 TiDB Cloud,责任研发团队的心智继续演化到『服务驱动』,专注于给客户提供一个高价值的数据库服务。

限于篇幅原因,关于 TiDB Cloud,我并没有写太多内部的事情,包括但不限于我们如何构建了一个统一的 Observability 的服务(这个也是 TiDB Clinic 的基础),我们如何将 TiDB Cloud 的管控架构从 Gardener 迁移到 EKS/GKS,我们如何基于 AI 构建我们内部的 Ask Bot 系统等等,这些有机会后面可以在开一些新坑来说明。

总的来说,2023 年对于 TiDB Cloud 是一个里程碑,我们不光在对用户的易用性上面,以及对我们自己的运维易用性上面,都有了质的提升,同时也通过架构的演进为未来更好的业务 scale 奠定了坚实的基础,在 AI 方向上面,我们也有信心成为 MySQL 用户开发 AI 应用的首选数据库。

最后,欢迎大家使用 TiDB Cloud

金融行业内容专区上线,为金融机构数据库选型和应用提供深入洞察和可靠参考路径。