---
title: '极致体验、拥抱 AI、发布 Serverless、优化运维：回顾 TiDB Cloud 的 2023丨PingCAP 唐刘'
date: '2024-01-25T18:28:26+08:00'
status: publish
permalink: /blog/tidb-cloud-in-2023
author: '周, 盛虎'
excerpt: '在 2023 年，我们自己在 cloud 提供的托管服务 TiDB Cloud 也取得了非常巨大的进步，这里也简单的分享一些故事。'
type: post
id: 6204
category:
    - 产品技术解读
tag:
    - 'TiDB Cloud'
    - 'TiDB Serverless'
post_format: []
profile:
    - 唐刘
---
在前面的 [TiDB in 2023 - 一次简单的回顾](https://cn.pingcap.com/blog/tidb-in-2023/ "TiDB in 2023 - 一次简单的回顾")，我简单的介绍了下 2023 年 TiDB 一些进展，在 2023 年，我们自己在 cloud 提供的托管服务 TiDB Cloud 也取得了非常巨大的进步，这里也简单的分享一些故事。

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

注意：我们在 TiDB Cloud 上面，提供了两个产品服务形态 - [TiDB Dedicated](https://www.pingcap.com/tidb-dedicated/ "TiDB Dedicated") 和 [TiDB Serverless](https://tidb.cloud/ "TiDB Serverless")，对于特定的产品，我会分别说明，不过有时候也会用 TiDB Cloud 来覆盖两个产品。

User Experience
---------------

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

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

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

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

![TiDB Cloud界面-new](https://img1.pingcap.com/files/2024/01/20240126103259244.png)可以看到，整个界面相比之前变化了太多，用完全两套不一样的产品来形容也不为过。我们的辛苦努力也没有白费，不少的用户直接跟我们直接反馈，选择 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](https://tidb.cloud/ "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](https://medium.com/@siddontang/how-we-are-becoming-an-ai-powered-company-part-1-4239761618e9 "From Text to SQL: How We Empower Users with AI-Powered Database Interactions")，而我们也会在今年发表放出更多的技术细节，包括但不限于文章，论文等。

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

TiDB Serverless
---------------

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

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

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

![TiDB Serverless 架构](https://img1.pingcap.com/files/2024/01/20240126103511405.png)这套架构有几个关键点：

- 因为 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服务](https://img1.pingcap.com/files/2024/01/20240126103635712.jpeg)也方便的提供了整个大盘的 Alert，能让我们的研发同事专注于重点问题的解决，以及遇到 Alert 之后，可以通过各种自动化工具去解决等。

![Alert](https://img1.pingcap.com/files/2024/01/20240126103706674.jpeg)当然，整体的运维平台并不仅仅只是上面提到的这几个点，通过构建运维平台，提升了我们整体运维 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](https://tidbcloud.com/free-trial "TiDB Cloud")。