PingCAP 的 5 年远程办公实践

前言

2020 年的春节注定是一个不平凡的春节,全国都在抗击新型冠状病毒肺炎。除了不出门,勤洗手,戴口罩之类的常规操作,我们就在想,在这个大背景下,我们还能够做哪些事情?考虑到春节假期临近结束,返程的旅途中可能会加大传染的概率,延长隔离时间、远程在家办公也许是普通群众能给国家在这场战役中做的最大贡献。然而在我们国家,暂且不论别的行业,至少我们所在的高科技行业还没有普及远程办公的文化,所以我们在此将 PingCAP 实践了近五年的工程师远程办公经验介绍给大家。本文将尽量少描述理念,而更多的从实践方面讲述我们的落地经验,以期在这样的一个特殊的时刻帮助更多的朋友和公司尽快行动起来,为国家为社会贡献一份我们微薄的力量。

我们已经通过实践证明,在这个时代,至少对于类似软件工程这样的主要以脑力和创意为主的工作,已经有足够的方法论和基础设施,让远程工作的效率不比传统模式差,有时候甚至能有更好的产出(相信已经有同学想起了早上拥挤的交通对心情和思维的副作用)。下面我们聊聊一些具体落地的经验。

01 远程办公的管理哲学

远程办公在国外并不是一件新鲜的事情。在硅谷,尤其是新一代的科技公司几乎都有远程工作的基因,这背后有很多原因在这篇文章中就不展开了,如果感兴趣的朋友可以看看来自 37 Signals 的 David Heinemeier Hansson 的《Remote》一书。对于我们来说,PingCAP 从公司建立之初就开始践行这个文化,主要出于这几点原因:一方面包括我在内的几位联合创始人都是工程师出身,本身对于效率比较有追求,自由的工作形式能够提高我们的工作效率,同时我们痛恨低效形式主义;另一方面,对于一个初创的公司来说,我们不希望人才因为地域的限制而不能加入我们。

一个很好的例子是我们的首席架构师 siddontang,也是我们招聘的第一位员工,因为家庭原因不希望来北京,过去的几年一直都在珠海的家里远程工作(这篇 blog 详细描述了他的亲身经历)。另外一个非常重要的原因是我们的员工是全球分布,基于开源的开发模式,所以一开始就注入了远程工作的基因。

软件工程是一项以脑力为主要资源开展的工作,在如今高度发达的互联网技术支撑下,其实是天然适合远程工作的,但是我们为什么大多数时候觉得远程工作不如集中工作效率高?**除了远程带来的沟通协作障碍外,我们认为其实最根本的差异还是在管理哲学上,是倾向于传统监管的管理思维还是自驱的管理思维,在 PingCAP,我们在企业文化上一直倡导的是后者。**为此,我们需要建立一个强大的愿景驱动力,并落实在我们的各种细节中,同时尽可能为同事们营造自由、开放、分享的工作氛围。

幸运的是,这也和我们从事的开源领域的工作方向完美契合。举个例子,在 PingCAP 我们从来不进行任何形式的打卡,每周五我们都有例行但是议题不限的员工 TGIF 分享 ,任何一位同事都有机会站在台上分享自己的工作成果和心得,甚至我们发给大家的周边产品都是在设计、选材上一遍一遍的精挑细选,且限量供应,以期让每一个小伙伴感受到温暖和尊重。这一切的工作看似和我们的远程办公没有直接关系,但是实际上让我们一点一点地变成了一个脱离形式、高于形式而存在的强大的远程组织。

02 目标和计划管理

如果问一个问题,对于工程师团队来说,什么时候需要沟通最多?我想是制定计划和目标的时候。

软件工程远程办公我们首先要解决的是我们要建立远程可操作的更加清晰、高效的目标和计划管理。从宏观层面说,在 PingCAP 我们依赖的是 OKR 这个工具进行公司以及团队的目标管理,OKR 是硅谷以及国内的很多互联网公司越来越流行的目标管理工具。 经过探索,我们认为 OKR 是一个比较适合远程工作团队的目标管理工具,因为 OKR 相比 KPI 来说,首先更加强调由团队成员共同制定团队目标,这样带来的好处是易于让整个团队就目标和关键结果达成共识,始终保持团队的目标导向一致。其次能够让团队成员更加明白做手头上的事情对于团队以及对于公司的意义,这一点对于远程团队尤为重要,极大的有利于促进部门与部门、人与人的协作,让团队更加具有整体性,最后,OKR 还有一个很重要的特点:透明,在我们的实践中,每个团队都可以看到别的团队的 OKRs,大家在制定完各自团队的 OKR 后,还需要在公司级别宣布,确保大家都能了解。

从微观层面说,例如一个具体的项目计划制定和执行跟踪,也需要一样的透明。 我们的实践是项目的负责人为每一个大的项目建立一个全局的项目「地图」,力求做到即使是半路加入的同学,看到这个地图后,就能够清楚的知道现在是什么情况,需要的资源的链接在哪,负责人是谁,风险点在哪。这个对于远程工程团队的管理者来说更是至关重要。下面是一个例子:

某个项目事项追踪表

某个项目事项追踪表

当我们把我们的目标和计划能够清晰、高效、透明的在整个公司内部制定、发布和管理起来,远程办公已经具备了初步的可操作性。

03 工欲善其事,必先利其器

既然我们这里更多的是讨论实操,我们接下来重点讲一讲软件工程远程办公环境我们所使用的工具。企业文化、目标管理我们需要相对长时间的工作去逐渐建立,工具的引入则相对快速见效,也就是俗话说的,工欲善其事,必先利其器,使用良好的工具会让事情事半功倍。

PingCAP 的主要产品 TiDB 是一个开源的数据库,我们研发的主要工作流都是构建在 Github 上面,完全对社区公开。所以我们的工具链也是以 Github 为中心,串联其它的工具,下面是完整的工具列表(这些工具很多都有国内的替代工具,如果公司不像 PingCAP 这种员工全球分布的,可以根据实际需求选择):

  • GitHub:代码托管,公开的 RFC,社区 Issue 反馈,产品发布,Code Review 等。
  • Zoom:在线会议。
  • Slack:即时通讯,机器人消息中枢。
  • 微信、企业微信:即时通讯(没错,我们两个都用,但以企业微信为主)。
  • 在线文档:文档协作,幻灯片,表格。
  • 邮件,日历。
  • Confluence:内部的文档,包括已成型的设计文档(如内部的 RFC 文档),Wiki 等。
  • Jira:Bug 和 Milestone 跟踪。
  • Trello:看板,记录一些重要客户和事件的备忘。
  • Jenkins:持续集成,daily build。

这里通过一个小例子介绍一下我们研发的工作流:

  1. 假设我们需要做一个新功能,从构思开始,可能第一个会使用的工具是在线文档,负责的同事会草拟一个文档,将大致的想法在其中描述,然后通过 Share 的功能,分享给相关的同事,大多数时候这些设计文档都会 share 到所有的工程师都会在的邮件组里,任何人都可以上去评论或者编辑。

  2. 文档经过沟通讨论定稿之后(沟通环节我会在下面一节重点介绍),会同步到 Confluence 和 GitHub 中(如果可以公开的话,英文版会发到 GitHub 上)。

  3. 接着该项目将被拆分成多个子项目,通过 JIRA 分配到具体的人,完成后直接提交到 GitHub 上,项目的该模块的 Reviewer(也包括 Maintainer)会参与 Code Review,收集到两个 LGTM(Looks good to me) 并通过各种持续集成工具的测试后,最终合并到主干。

修 Bug 的流程也类似,值得一提的是我们开发了一个 bot,用于同步 GitHub 中来自社区的 Issue 到内部的 JIRA 中。

优秀工程师的创造力是无穷的,尤其在远程工作的背景下,我们非常鼓励工程师通过自制工具来提升工作的效率。

除了上面提到的 Issue 机器人,我们的Chaos 测试(最近已经开源,CI/CD,甚至包括社交网络上简单的动态舆情监测,都有自动化的工具在做。还有小伙伴们通过自动化的手段优化自己工作中的一些流程,举几个好玩的例子:disksing 同学使用 App Script 自动生成自己的周报(http://disksing.com/review-recorder/) ;siddontang 同学自己写了个小工具 github-cli (https://github.com/siddontang/github-cli) 来高效的追踪关注的 Github 项目的动态;我用 Python 写了一个小脚本,每日收集 Trello 上指定 Board 内的卡片的更新,并给我汇总发邮件……这样的例子数不胜数,有时候真是很佩服大家想象力和动手能力,我们非常坚定地鼓励大家做这些事情。

我们的 IFTTT 机器人在收集提及 TiDB、PingCAP 的推文

我们的 IFTTT 机器人在收集提及 TiDB、PingCAP 的推文

在这里插入图片描述

由我们的 bot 同步的 Github Issue

每天下班之前自动生成的当天动态报告
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200128124118167.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RpREJfUGluZ0NBUA==,size_16,color_FFFFFF,t_70)
每周周会之前自动生成的 Weekly Report

提前根据模版生成出来的个人周报

提醒大家准备周报的企业微信机器人

SRE 机器人自动 Merge PR 并 Cherry-pick 到 Release 分支

介绍了这么多好玩的东西,其实我想表达的是:对于远程工作来说,能交给机器做的,尽量不要人来做,自动化是至关重要的。尤其对于线上的协作来说,多一个人的参与就意味着多一份沟通成本。我对于工程师团队选择开发相关的效率工具,有几个建议:

  1. 选择有开放 API 的工具,方便写 bot,形成协同效应。

  2. 切忌讳过多过杂,选择几个好用的,将其用透。

  3. 使用 Slack 之类的 IM 作为各种工具的 Message Hub,尽可能做到在一个地方就能一目了然事情的状态。

另外就像上面提到的,由于我们也有一些海外的同事、客户以及海外社区沟通的需求,所以主要选用的工具基本都是国际上比较通用的,如果你们公司的业务都在国内的话,这些工具基本都可以找到国内的或者私有部署的替代方案,例如 ONES,Tower,Gitlab 等。

04 对远程友好的沟通和协作机制

如果说上面聊的工具只是基础的话,那么远程工作最大的挑战就是沟通了。对于一个成熟的团队来说良好的沟通一定是必不可少的,甚至沟通的品质决定了做事情的品质。并不是说因为远程工作因为条件约束,就少沟通甚至不沟通了,相反的,在这种环境下我们的沟通可能会更多更细致,只是形式并不仅仅限于面对面的会议这种形式而已。

在聊我们的沟通实践之前,我想先聊聊沟通的意义,首先我认为沟通最重要的意义在于:信息拉平。对于一个远程的团队来说,用大白话来说也就是:大家需要互相都知道自己该干嘛,团队正在干嘛以及该干嘛。这件事情在很多公司是通过大大小小的会议,或者甚至吼一嗓子完成的。但是在一个远程的团队中,沟通这件事情需要做得更加的透明。

即使是远程,大部分时候会议仍然是最高效的信息拉平方式,类似 Zoom 这样的视频会议工具已经提供了很好的平台,而且智能手机和移动互联网的普及也让会议的参与变得更加的便捷。这里多提一句,PingCAP 是 Zoom 的重度用户(也是企业客户),Zoom 的用户体验真的非常棒,我们即使是全公司级别的会议,也都是通过 Zoom 完成的(昨天刚得知一个令人振奋的消息,也给 Zoom 做个友情广告,目前国内用户访问 zoom.com.cn 可以免费不限时长使用,直到疫情得到有效控制之日)。

在 PingCAP 从形式上来说,因为会议基本都会有远程的同学参与,所以默认都是线上会议。

从内容上来说,大概有两种会议,一种是例会,一种是具体业务的沟通会。相信和别的公司也没什么不一样,我这里聊聊我们觉得比较好的一些实践:

在 PingCAP 各个团队(包括虚拟团队)大大小小一定都会有例会,通常以周为单位,有些比较重要且紧急的项目会以天为单位,会议的时间和长度也不一定。周会是一个很好的机会能让团队成员互相了解大家在干嘛,对于 Manager 也能很好的知道方向有没有歪,进度是否正常。

另外一点,分享一些关于会议的实践:

  1. 对于类似例会这种偏信息拉平的会议,Manager 最好不要直接在这类会议上做决策。因为很多信息可能是刚接收到马上做决策不一定是经过深刻的思考,另一方面信息可能不全面,还需要进一步的跨团队沟通。

  2. 善用 Calendar。我建议研发团队内部将 Calendar 可以别人可见(这点上财务,商务,高管团队需要酌情考虑),通过订阅和你相关的同事的 Calendar 是一个也是一个很好的信息拉平渠道。

  3. 会议前发 Agenda,会议后形成 Meeting notes 发给参会的人,并记录在 Wiki 中。

  4. 尽量少开大会长会。Amazon 的「两个 Pizza 原则」也同样适应于开会(这点说起来简单,其实做起来很困难,尤其在跨团队协作上,我们也在努力)。

这里说几个我们亲身经历的坑。因为远程的关系,在 PingCAP 我们一直以来要求尽可能的使用文档进行沟通,我们确实在早期很严格的践行了,但是那个时候我们重度依赖在线文档,于是陷入了一个问题:协同功能很棒, 但是索引功能很弱。于是很多时候就出现了,可能记录某件事情的文档找不到了,或者有多个文档(很多甚至只是讨论稿)在描述同一个事情。

为了解决这个问题,我们后来引入了 Confluence,用做团队 Wiki,主要起到信息索引和搜索的功能,我们非常依赖 Confluence,并且玩出了很多花样,这里我只举几个最佳实践的例子:

  1. 给每个团队创建团队的 Page(类似前面提到的「地图」的概念)索引一切和这个团队相关的内容,让新人能够一目了然。例如下面是来自 TiKV 团队的例子:

  2. 团队周报和个人周报,每个团队的周报会一层层的汇总和归纳,在每周的高管例会前发出。所有的周报都在 Confluence 里被索引。

  3. Logbook,这个是我们比较有意思的东西,对于一些带有探索性质的工作,例如一些小实验,性能测试,一些特殊场景的优化等等。我们也会详细的记录下来,形成一个个实验 logbook,这些 logbooks 可以通过关键字被 Confluence 的检索到,一是作为未来实现或者输出成文章的素材,二是防止将来做重复的工作。

在内部协作全面引入 Confluence 后,我们的文档信息碎片的问题得到了比较大的缓解,唯一美中不足的是 Confluence 的移动端做得实在不尽如人意,希望 Atlassian 团队未来能改进。

另一个坑来自于 IM 工具的选择。这个可能也不是坑,更多的是由于微信平台本身不是为了办公场景设计的带来的问题。由于我们多数的国内客户都倾向于使用微信作为沟通的渠道,作为一个 toB 企业,我们必须去适应这个现实(比如我手机上有几千个微信群),这个问题导致了我们 IM 沟通的碎片化,而远程工作的环境会进一步放大这个问题。可能同一件事情,有些同学看着微信,有些同学看着 Slack,这就导致了消息不对称。再者微信是一个封闭系统,没有 Open API,很难通过技术的手段同步到一个平台。另一个问题是,微信这种用法,工作和生活很难分开,有时候很令人苦恼。这个问题通过引入企业微信得到了一定的缓解,但是因为企业微信又是一个新的 IM,也是一个封闭系统,信息碎片化的问题和海外同事使用习惯上的问题仍然存在。在这个方面,我们仍然在探索。

05 远程办公环境下的自我管理

远程办公还有一个很重要的方面是个人的心理建设和自我管理。这点因人而异,其实很多人不太适合长期 work from home,例如我远程工作的时候一定要从家走出来,去个咖啡厅或者 WeWork 之类的地方才能进入工作状态,但是我们的首席架构师就可以五年如一日将他家的书房当成办公室。人无疑是最重要的一环,不过在这篇文章中,我并不想展开太多,有机会再详细聊聊,这篇文章我希望尽量关注比较普适的方法。

在远程环境下,需要工作者能够克服孤独感,并且由于没有同事在身边,需要比较强大的自律精神克服倦怠感。在这点上,我推荐使用一些个人时间管理工具,例如番茄钟,日历等工具。但是和公司选用工具一样,切忌贪多,选择一个用透最好。另外在生活中也保持一个规律的作息习惯也会很有帮助,这点在上面引用的 siddontang 那篇博客 中有很好的阐述。

另外一点比较重要的是,很多工程师可能是一个比较内向的性格,遇到困难的时候,尤其是在远程的环境下,容易钻牛角尖。这种情况下,一定切记要主动的求助和沟通,甚至可能需要比面对面的环境下更加频繁的沟通。

对于管理者来说,要做到这点,需要将任务拆解得足够细,在前期沟通需要反复确认是否和远程工作的同学达成一致,这个环节需要非常的重视。

06 Online and Offline(线上与线下)

PingCAP 并不是一个彻底的每个人都远程办公的公司,我们仍然在各个大城市有我们的办公室(北京、上海、广州、深圳、成都、杭州、硅谷)。就像上一节说的,远程工作看起来很美,但是可能也并不适合每一个人。人是社会化动物,很多时候我们仍然需要从线上走到线下,和同事一起吃顿饭,聊个天。因为这点,我们的解法是:PingCAP 使用远程的工作方式和文化,但是仍然保留着各地的办公室,所以我们有一个不成文的惯例,当每个城市的员工超过 4 个人的时候,就可以找个办公室了。

在各地 Office 的运营上,也是比较有 PingCAP 的特色的。很多传统公司的各地子公司通常是定位特殊的办事处,例如销售,测试,研发等。但是由于我们的远程办公文化,我们各地的 Office 其实更像是一个虚拟的组织,也就是说可能同一个团队的同学会隶属于不同的 Office,或者反过来,每一个分公司都可能会有不同职能、不同团队的同学。

这样是有好处的:

  1. 作为一个 toB 公司,我们国内的客户也主要分布在几个主要城市,在客户当地有分公司能更方便的开展客户支持和市场活动。

  2. 在同一个城市的办公室内有不同部门的同事,有助与构建更多样化且健康的文化,也能更顺畅的进行跨团队合作。

办公室的 Manager 更偏向于当地办公室具体事务和活动的管理和组织,另外每个 Office 都会有一个行政来处理日常的事务。所以,通常我们的 Team building 会有几种:

  1. 当地 Office 自己会有 TB 的经费,可以自己组织活动。

  2. 每当团队出差到同一个地方的时候,组织团队的 TB(当然,我们大多数是程序员,基本就是吃吃吃)。

这里提到了出差,顺便介绍一下,我们建议远程研发团队的 Managers 大概一个月需要尽量和团队的大多数成员 Face to Face 的见一次面,这些行程通常可以和客户拜访安排在一起。线下的沟通可以让线上的交流更加顺畅。

总得来说,远程办公并非十全十美,像我们这样的科技公司具备天然的文化和规制土壤,但仍然有很多地方有继续改进的空间,欢迎大家给我们多提建议。很高兴在国内远程办公文化尚未普及之时,能够用这么长的篇幅为大家分享一点落地经验。在这个特殊时期,我们在家不动的同时劳动创造价值,也算是为社会做了点微小的贡献 !

相关推荐

TiDB 可观测性解读(二)丨算子执行信息性能诊断案例分享

通常我们可以用 explain analyze 语句获得算子执行信息。explain analyze 会实际执行对应的 SQL 语句,同时记录其运行时信息,和执行计划一并返回出来,记录的信息包括: actRows 、 execution info 、 memory 、 disk。不同算子的 execution info 可以通过 TiDB 文档 ( https://docs.pingcap.com/zh/tidb/stable/sql-statement-explain-analyze )了解。

TiDB_PingCAP 的博客 1020

TiDB × AI :DeepSeek 时代你需要什么样的数据基座

AutoFlow 是一套 GraphRAG 框架,不仅提供了类似于 LlamaIndex 的能力,而且还内置语义化的知识图谱构建和召回,以及我们在 AutoFlow 上实践得出的一系列行之有效的领先的 RAG 能力(这些接下来会介绍)。不过需要强调的是,Dify 是一个开箱即用的非常易用的界面,而 AutoFlow 虽然功能更强却则具有比较高的使用门槛,所以这两个选择其实面向了不同的群体,用户需要依据自己的实际需求进行选择。它并非传统的基于规则的优化工具,而是利用大模型的知识来优化不同类型的数据库。

TiDB_PingCAP 的博客 1417

架构师必看!现代应用架构发展趋势与数据库选型建议丨TiDB vs MySQL 专题(一)

随着业务系统数据量的增长,早起只能无奈采取分库分表方案以及架构,这不单为运维带 来了极高的复杂度,同时对业务开发也带来的极大的入侵,SQL 只能限定按照 shard key 维度进行编写,无法任意维度的进行 SQL 查询,开发不得不牺牲业务需求,业务的发展也不得不受限,同时又需投入大量的高精尖人才进行开发维护。这对数据库的承载能力提出了极高的挑战,不但需要承载大数据量,又需要保障业务读写性能的稳定性,而在数据的承载能力上,MySQL 的极限,是 TiDB 的起点。一行命令完成扩展,无需任何的人工干预。

TiDB_PingCAP 的博客 1233

TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索

通过识别并优化未使用或低效的索引,可以减少资源浪费,并提高系统的响应速度和稳定性。在 TiDB 中,TIDB_INDEX_USAGE 系统表提供了相对丰富的索引使用统计数据,帮助 DBA 快速发现低效索引,并通过优化或删除它们来提升数据库效率。尽管删除索引的操作相对简单,但在实施时仍需注意潜在的限制和风险,尤其是在大数据量和高并发环境下。定期检查索引使用情况,尤其是对于大规模数据库。确保用于决策的统计数据涵盖足够长的业务周期,避免误判。

TiDB_PingCAP 的博客 974

海量数据融合互通丨TiDB 在安徽省住房公积金监管服务平台的应用实践

目前安徽省住房公积金监管服务平台已具备一系列功能模块,包括首页、运营分析、统计报表、智慧大屏、数据治理、风险检查和系统管理。其中,运营分析主要用于从不同维度分析公积金业务指标,统计报表则负责生成、填报和查询住建部规定的报表,同时也支持省级用户的报表导入、核对和更新。智慧大屏提供了综合和业务两大类可视化展示,而数据治理模块则涵盖了传数统计、数据检核和人工数据核对等功能,以确保数据的质量。风险检查方面,平台不仅支持公积金中心的自我检查,也支持省厅的检查,并可以根据需要添加新的检查模型。

TiDB_PingCAP 的博客 1133

TiDB 2024 年度报告:增长的故事

TiDB 2024 年度报告:增长的故事

TiDB_PingCAP 的博客 328

TiDB Chat2Query 深度解析:我们如何打造一款更高效、准确的智能 SQL 生成工具?

上个季度的销售额是多少?“哪个产品类别表现最佳?“本月客户投诉的趋势如何?相比其他工具,Chat2Query 能够对用户上传的大规模数据集进行理解和分析, 摒弃繁杂的专业术语和查询语句,Chat2Query 使得用户能够通过自然语言直接向数据库提问,并即时获得答案。

TiDB_PingCAP 的博客 1335

4.98 亿月活背后的国产数据库:咪咕视讯携手 TiDB 攻克内容分发核心系统挑战

咪咕大概是 2018 年左右正式开始对分布式数据库进行研究的,到现在为止我们看到和测试过太多的国内产品。但是在当时,敢用 LSM 树而不是 B+ 树做存储引擎,敢做分布式存算引擎分离的,能够行列副本共存、优化器路由分流做 MPP shuffle 的,市面上真的真的非常非常地不多见。比较多的是精致的分库分表外挂,或某些知名国外产品的模仿版。TiDB 的产品给我的印象是极具冲击性的,那么大胆、不随大流。验证和使用下来,效果也是切实的。

TiDB_PingCAP 的博客 1204

53 倍性能提升!TiDB 全局索引如何优化分区表查询?

在 TiDB 中,全局索引是一种定义在分区表上的索引类型,它允许索引分区与表分区之间建立一对多的映射关系,即一个索引分区可以对应多个表分区。这与 TiDB 早期版本中的本地索引(Local Index)不同,本地索引的索引分区与表分区之间是一对一的映射关系,即一个分区对应一个局部的索引块。全局索引能覆盖整个表的数据,使得主键和唯一键在不包含分区键的情况下仍能保持全局唯一性。此外,全局索引可以在一次操作中访问多个分区的索引数据,而无需对每个分区的本地索引逐一查找,显著提升了针对非分区键的查询性能。

TiDB_PingCAP 的博客 1356

一行代码不用写,用 Autoflow + Gitee AI 搭建本地知识库问答机器人

本文详解 AutoFlow 从部署到配置的完整流程,包括数据库连接、模型设置、知识库创建及聊天引擎配置,实现了一行代码不用写的问答机器人快速搭建。轻松上手,助力开发者探索智能问答解决方案。

TiDB_PingCAP 的博客 1046

TiDB 分布式数据库多业务资源隔离应用实践

本文将分享某客户在 TiDB 分布式数据库中实现多业务资源隔离的实践案例。

TiDB_PingCAP 的博客 1317

攻克多版本运维难题:爱奇艺百套 TiDB 集群升级至 v7.1.5 实战宝典来袭!

本文将深入探讨爱奇艺如何通过升级,成功将百套 TiDB 集群从多个旧版本升级至 v7.1.5,攻克多版本运维挑战,获得更稳更快的 TiDB 使用体验。

TiDB_PingCAP 的博客 1157

百亿大表的实时分析:华安基金 HTAP 数据库的选型历程与 TiDB 使用体验

明确需求:首先评估业务对 TP(事务处理)和 AP(分析处理)的需求比重,确定数据量、查询速度和响应时间,确保数据库能满足业务对实时性的要求。技术特性评估:考虑数据库的实时分析能力、可扩展性、高性能、安全性和灵活性,以支持业务人员实施的场景需求,特别是后台营销人员对数据实时性的需求。集成与兼容性:评估数据库与现有数据库、应用程序和其他关键系统的集成能力,确保数据同步策略的无缝实施。安全性与可靠性:重视数据库的安全性措施、容灾备份机制、数据恢复能力和错误处理机制,保障业务连续性和数据安全。

TiDB_PingCAP 的博客 1019

TiDB 的高可用实践:一文了解代理组件 TiProxy 的原理与应用

TiDB 是一款典型的分布式存算分离架构的数据库,其中计算层由多个无状态的 TiDB Server 组成,这些 TiDB Server 同时对外承担连接请求。为了可以将连接分发到多个 TiDB Server 节点上,一般需要借助外部负载均衡组件如硬件负载均衡 F5、软件负载均衡 HAProxy 等。为了实现全链路的高可用架构,我们经常也需要考虑负载均衡组件本身的高可用性,比如通过 KeepAlived 来保证 HAProxy 的高可用。

TiDB_PingCAP 的博客 1255

你需要什么样的资源隔离?丨TiDB 资源隔离最佳实践

通过本文的学习,相信大家对 TiDB 的资源隔离能力有了更全面的理解;大家可以根据不同的场景需求,选择合适的资源隔离方案。如果您有新的资源隔离需求或场景,欢迎与我们联系。

TiDB_PingCAP 的博客 1254

狂飙 50 倍丨TiDB DDL 框架优化深度解析

前面我们介绍了 TiDB DDL 任务的整体执行流程。接下来,让我们聚焦到在线 Schema 变更的细节上。执行单步变更:Job Worker 会根据任务定义,执行一次在线 Schema 的变更。每一次变更都代表着 Schema 向目标状态迈进了一步,即进入下一个状态,可能的状态包括 write-only 和 delete-only 等。状态更新:完成单步变更后,Job Worker 会将当前的 Schema 状态更新到元数据中。

TiDB_PingCAP 的博客 1204

唐刘:TiDB 的 2024 - Cloud、SaaS 与 AI

最后再说下产品,在今年,我们发布了TiDB 8.1和8.5两个版本。在 2025 年,我们会有一个重大的改变,就是会持续的投入到 8.5 版本的质量加固,同时收敛新功能的开发,只会在 2025 年发布一个有更高质量的 LTS 版本。关于 TiDB 8 系列,我后面再写一篇文章详细的介绍一下吧。在 2024 年,我们交付了非常不错的成果,当然,能取得这样的成绩,来自于我们不断地交付优异的产品,满足客户的需求,赢得客户的信任。

TiDB_PingCAP 的博客 1054

PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”

TiDB 凭借领先的 HTAP 架构设计,支持用户在云上的数据库中同时运行关键业务交易和实时分析任务,充分享受云的弹性优势和业务连续性优势,助力企业实现数据敏捷。PingCAP 是业界领先的企业级开源分布式数据库企业,提供包括开源分布式数据库产品、解决方案与咨询、技术支持与培训认证服务,致力于为全球行业用户提供稳定高效、安全可靠、开放兼容的新型数据服务平台,解放企业生产力,加速企业数字化转型升级。

TiDB_PingCAP 的博客 705

TiDB 8.5 LTS 发版——支持无限扩展,开启 AI 就绪新时代

TiDB 8.5 扩展了Runaway Queries 的功能,新增“处理行数”和“用量(RU)”作为识别标准,实现更精确的识别,并允许将这些 Runaway Queries 放入一个资源可控的组中,确保在高负载环境下集群的稳定性。TiDB 8.5 通过实例级执行计划缓存功能,使得同一 TiDB 实例内的所有会话共享执行计划缓存,减少SQL编译时间,从而降低整体 SQL 运行时间,提高 OLTP 的性能和吞吐量,并有效地控制内存使用,提升数据库的稳定性。

TiDB_PingCAP 的博客 776

基于时间维度水平拆分的多 TiDB 集群统一数据路由/联邦查询技术的实践

通过该组件与 TiDB 分布式数据库的有效结合,可以实现近乎无容量上限的超大规模数据管理,尤其是对于重要程度高、吞吐量大、业务敏捷性强、数据冷热特征明显的业务系统。不仅能够支撑面向内外部客户业务无损的多维度、不受分片键制约的灵活高效访问,还可以有效控制和平衡单集群的负载、容量、资源利用率、稳定性等关键指标,在不增加过多复杂性的前提下实现更强的整体扩展能力。当然,组件的现有功能更多是聚焦在当前的客户场景,未来可以按需在功能性、易用性、高性能等方面进一步优化和提升。

TiDB_PingCAP 的博客 915

Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战

Rakuten 乐天是一家成立于 1997 年的日本公司,总部位于东京,员工总数超过 30,000 人,业务遍及 100 多个国家和地区。除了电商业务外,乐天还涉及电信、金融等多个行业。乐天的积分系统在日本非常普及,用户通过使用乐天的服务,如银行卡、手机卡等,可以获得积分,并在乐天商城中使用这些积分进行购物或抵扣,我们每个季度还会举办促销活动、会有大量用户高频访问积分系统,因此,乐天积分服务平台的性能、延迟和可用性要求极高。

TiDB_PingCAP 的博客 1355

平凯星辰亮相开放原子开发者大会,TiDB 荣获年度活跃开源项目奖项

12 月 20 - 21 日,以“一切为了开发者”为主题的 2024 开放原子开发者大会暨首届开源技术学术大会在武汉成功举办。平凯星辰亮相本次大会,出品 AI 时代的数据库技术发展论坛,获评“校源行”优质开源课程合作单位。由平凯星辰创立的开源分布式数据库 TiDB 获评“2024 年度数据库领域国内活跃开源项目”,7 位 TiDB 开发者获评“2024 年度数据库领域国内活跃开源开发者”,彰显了 TiDB 在开源数据库领域的卓越影响力和社区活力。

TiDB_PingCAP 的博客 606

B 站数据库负责人赵月顺:助力海内外业务增长,百套 TiDB 的选型与运维实战

B 站的 TiDB 集群规模已达到 100 多套,计算节点超过 2000 个,存储节点超过 800 个。TiDB 的应用场景非常广泛,包括视频观看、一键三连、发送弹幕、撰写评论、阅读漫画以及视频后端的存储等。B 站的 TiDB 部署采取了存算分离的策略,计算节点被部署在容器中,这种做法的优势在于能够充分发挥容器化管理无状态服务达到水平弹性拓展能力,允许根据需求随时对计算节点进行扩展或缩减,整个过程仅需一次服务发版,有效提升了效率与灵活性。存储节点则继续部署在物理机上。

TiDB_PingCAP 的博客 1234

微众银行携手平凯星辰荣膺金融科技创新奖,共同打造纳管千台服务器的大规模数据库运维平台

在过去的十年中,平凯数据库在金融行业积累了丰富的实践经验,已经在国有大型银行的 PB 级别数据服务平台、头部商业银行的核心交易系统、头部保险公司的核心保单系统、头部证券公司的核心交易系统等领域,成功完成了对国外商业数据库和 MySQL 数据库的替换升级,部署了超过 1,000 套关键业务系统,集群节点总数超过了 10,000 个。为了应对这些挑战,同时满足金融行业对高可用、高可靠、高性能数据库的需求,微众银行开发了一套完整的运维体系,打造了大规模信创原生分布式数据库智能运维平台。

TiDB_PingCAP 的博客 805

知乎 PB 级别 TiDB 数据库集群管控实践

知乎的数据库团队以“致力于提供稳定、高效和易用的数据库服务”为目标,为公司业务团队提供更好的 TiDB 存储服务来应对高并发、复杂查询和大数据存储的需求。本文详细介绍了 TiDB 的生态架构,包括核心组件、数据迁移与同步、运维与监控平台、备份与恢复、生态集成、K8s 支持、工具集和安全与审计等方面。同时探讨了知乎如何在云上和云下环境中管控 TiDB 集群,以及如何通过自研的天穹平台实现数据库平台化建设,提升业务研发团队数据库变更和 DBA 团队的资源管控效率。

TiDB_PingCAP 的博客 1180

TiDB 优化器 | 执行计划管理及实践

本文深入解析了 TiDB 优化器的执行计划生成过程及其局限性,介绍了如何通过 Hint、SQL Binding、执行计划缓存等技术手段进行执行计划管理,确保查询性能的稳定性和高效性。

TiDB_PingCAP 的博客 1315

商业银行基于容器云的分布式数据库架构设计与创新实践

本文介绍了某商业银行基于 TiDB 和 Kubernetes(简称 K8s) 构建的云化分布式数据库平台,重点解决了传统私有部署模式下的高成本、低资源利用率及运维复杂等问题。通过引入 TiDB Operator 自动化管理与容器化技术,银行能够实现多个业务系统的高可用、弹性扩展与自动化运维,极大提高了运营效率与资源利用率。本文还详细阐述了平台架构设计、面临的技术挑战及创新解决方案,展示了 TiDB 在金融行业数字化转型中的应用前景。

TiDB_PingCAP 的博客 1360

PingCAP 荣膺 2024 亚马逊云科技合作伙伴两项殊荣

近日,在 2024 亚马逊云科技 re:Invent 全球大会上,PingCAP 荣膺亚马逊云科技年度技术合作伙伴和年度亚马逊云科技 Marketplace 合作伙伴两项殊荣。这是 PingCAP 连续第二年获得亚马逊云科技年度合作伙伴奖项,彰显了 PingCAP 在与亚马逊云科技合作服务客户的过程中所展现的卓越技术实力和专业服务能力,共同推动全球用户业务取得成功。

TiDB_PingCAP 的博客 569

基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知识库问答机器人

通过本篇文章介绍,相信大家对使用 PingCAP 开源项目 AutoFlow 实现快速搭建基于 TiDB 的本地知识库问答机器人会有一个完整的了解。如果提前准备好 Docker、TiDB 环境,整个搭建过程估计在 10 分钟左右即可完成,无须开发任何代码。文中使用一篇 TiDB 文档作为本地数据源作为示例,在实际情况中,您可以基于自己的企业环境用同样的方法快速构造企业内部知识库问答机器人。

TiDB_PingCAP 的博客 1283

TiDB 关联子查询及半连接的优化实践

TiDB 针对子查询语句会执行多种子查询相关的优化,以提升子查询的执行性能。半连接语句和关联子查询语句是常用的两类子查询,TiDB 优化器默认包含一些自动优化策略,同时 TiDB 也提供额外的 HINT 用于影响优化器在特定场景下可以选择更高效的执行计划。本文针对半连接及关联子查询语句在 TiDB 中的用法及优化技巧进行说明。

TiDB_PingCAP 的博客 1405
上一篇: ECUG 演讲分享 | 刘奇:Chaos Engineering at PingCAP
下一篇: Prometheus 常用函数 histogram_quantile 的若干“反直觉”问题
TiDB_PingCAP
TiDB_PingCAP 企业官方账号 企业官方账号
博客等级 码龄10年 2726粉丝 780原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值