分享

PingCAP 开源社区运营最强 5 招:招招精彩

 TGO鲲鹏会 2021-01-08

5 月 18 日,TGO 鲲鹏会北京分会活动现场,来自 PingCAP 技术 VP、TiDB 技术负责人申砾带来了《创新与突破:TiDB 社区运营》的主题演讲,分享了 PingCAP 在 TiDB 社区运营的经验之谈。

6 月 14—15 日,由 TGO 鲲鹏会主办的 GTLC 全球技术领导力峰会总站将在上海举行。

口述 | 申砾
整理 | Rainie Liu
TiDB 是什么?

上图中黄色 TiKV 是分布式的 Key-Value 存储引擎,左边 TiDB 是 Application via MySQL 引擎,不管是业务还是管理工具,它可以把以前的东西无缝牵引过来。最右侧是 TiKV Spark 项目,能让 Spark 理解下面存的数据如何编码,包括关系型数据的表结构、统计信息,可以让 Spark 实时读取到 TiKV 原始数据。

除此之外,我们还有一些周边工具,比如 Binlog 组件,它可以把 TiDB 中的数据实时变更,用户可以直接用这个组件做二次定制开发。

上面的 DM 工具是一个数据迁移平台,可以将 MySQL 数据通过 Binlog 同步到 TiDB 中,它还可以将已经分表好的 MySQL 数据同步到一个 TiDB 中,之后再进行数据格式裁减和内容转换。中间的 TiFlash 组件是我们最新做的分析产品,可以通过 RUF(音)将数据从 TiKV 无缝同步到这个组件当中,在上面的计算层可以选择将计算请求通过行存或者搜索引擎查数据,最底层还有 TiDB Operator 和 kubernetes 相结合。

未来,云将成为非常主流的方式。目前,我们正在考虑如何将 TiDB 这个复杂的分布式系统,包括周边的监控、运维等工具都可以通过 kubernetes 进行管理和调度,以便于降低用户的使用成本,因此我们希望 TiDB 是和 kubernetes 深度整合的产品。

TiDB 开源社区现状

这两张图是从 GitHub 获得的数据,左边是 stars 的数量,我们和几个竞品对比,我们的产品最晚出来,但是增长趋势更加陡峭,并且超过他们的关注度。

我们整个贡献者有三百多个,除了我们公司的员工之外,还有很多来自外部的贡献者,同时,他们来自于世界不同的国家。

上图是 DB-engines 的排名,目前 TiDB 的整体还不算高(一部分原因是这个排名只关注英文网页),不过相比竞品增长速度还是非常快。


上图是 CNCF 发布的 Big Date Landscape,如果大家想对大数据领域做一些调研、技术选型等,可以参考这张图。

去年,TiKV 项目已经捐献给 CNCF,现在隶属于 CNCF。在 CNCF 指导下,我们做了许多关于整个项目治理包括开源社区怎么推进、管理,如何吸引外部贡献者等等方面做了很多规范性的工作,我们应该是中国第二个进入 CNCF 的项目。

除了国内,我们也会参加很多国际上的会议,比如去年时,我们参加了 VLDB 学术会议,在会议现场我们与大家同步了 PingCAP 的最新进展。同时,我们和高校也有合作,联合做一些项目研究。

海外的媒体对我们也进行了一些报道,去年被 InfoWorld 评为数据存储和分析领域最佳项目。

开源社区治理
https://github.com/pingcap/community

这个网站记录了开源社区的相关资料,比如如何去提 PR,如何去写文档,如何去起草案等等。

上图是我们所使用的开源架构,包括 PMC、核心贡献者的组织,用户可以参与到社区,来提一些想法、建议,甚至可以提代码、改文档。

我们会在一些页面上把 contributor 的名字放上去,当 contributor 贡献的 PR 数比较多时,通过他所提供内容的数量、质量以及实用性判断 contributor 是否达到 committer 的门槛。而 committer 经过很长时间的贡献后,能够对几个模块有深入的掌握,那么将会成为 Maintainer,Maintainer 可以对整个项目有更进一步的话语权。

我们将所有的规范都放在 github 上,帮助大家了解如何参与到社区,同时有利于社区良性发展。

上图是教你如何从一名 contributor 成为 committer 以及你需要了解在成为 committer 后,所需要拥有的权利和义务。

另外,图中下半部分是我们新进的两个 committer,上面是在知乎上线后万亿级别的数据,下面是三星研究院的 committer,这些都是通过我们的官方渠道出来的。

contributor 写代码时,我们会有相应的要求,因为我们希望 contributor 的代码风格是非常统一、高质量的,所以我们有相应的工具自动修改代码风格、注释和注释格式等,同时还设立了专业的团队指导,有利于提高 PR 的质量。

包括提 commit 时,我们也会严格监管 commit message 的格式、理由、内容等方面。

如果是一个比较大的提案,那么我们会要求你先提一个 proposal,描述一下你要干什么、为什么要干这个事情、它能带来什么收益、方案是什么以及分析备选方案的优缺点等,我们会让你提个 PR 进行讨论,最后以讨论后的 proposal 为基础,开始后面的开发。

无论是 pull request 还是 issue,它们都有相应的模板要求,比如 pull request 需要写清楚你干了什么事情,PR 解决什么问题,它是怎么工作的,包括如何测试,test 是必选的还是可选的。因为我们希望能让整个社区看到你的 PR 后,就知道你干了什么,为什么要干,再以这些为基础来浏览你的 PR。

而不是只呈现一堆代码,这样会导致他人很难理解你想要做什么。

我们内部主要做的事情也都会通过 Github Project 的形式发布出来,要做哪些比较大的事项,这些事项里面有哪些 issue,这些 issue 的规划是什么等等,大家可以通过 project 了解我们在做什么,它的进展是如何。我们希望通过 Github 的方式将我们的开发尽可能的对外透明,让大家知道我们在做什么,这样也有利于社区参与进来。

另外,我们的 roadmap 也是对外公布的。我们希望社区知道我们的未来计划,可以根据自己的需求和兴趣,跟我们设计的场景规划能够更好地 match,更好地去做贡献。

社区生态建设

开源其实是一种生态,我们只有把生态建设起来,才会促进你项目的成熟。不管是用户还是贡献者都是非常宝贵的一部分,我们在生态建设这一块做了很多的工作。很多人接触到 TiDB 不是以贡献者的身份接触到的,而以用户身份接触到的。他先以一个用户的身份加入进来,当他用得比较深入或者他所在公司大规模使用的时,他才有足够多的动力来分解代码。

我们今年还做了一件事情,希望有系统性的东西帮助用户更进一步掌握 TiDB 怎么使用,因此我们推出了 PingCAP University 计划,通过线上和线下的环节,帮助用户知道 TiDB 的使用方法、了解 TiDB 的关键原理以及调优方式,让 TiDB 用户更好的掌握使用方法。

除此之外,我们在国外还推出了 TiDB Academy 课程,将中文内容做成对应的英文内容,从而指导国外用户怎么用。

除了用户社区之外,开发者社区也是非常重要一部分,同时也是更难开拓的社区。我们为了扩大开发者社区做了很多事情,如在成都、深圳、上海、杭州、硅谷开 meetup,meetup 主要聚焦于基础架构的一些技术,让大家有一个线下交流的平台。

同时,我们做了一个 TiDB Talent Plan 项目,这个项目当前还没看到在国内有类似的东西,这个项目主要面向在校学生。我们希望以 TiDB 为内核扩展到数据库或者是分布式数据库领域,帮助在校学生能够更熟悉这些东西。

开源社区运营心得

运营开源社区需要非常多的精力和投入,我们在运营社区的时候有一些心得跟大家分享一下。

1、远大的愿望——视野决定了格局

首先,我们需要了解想要的产品和社区是什么样子的,是想做一个可用性强的,还是挣钱的,还是能在技术历史上留下名字的社区。因为我们希望能通过开源的方式将 TiDB 做成一个伟大的产品,不仅局限在国内,在国外也在获取海外客户,所以我们的趋势是在国内做放眼于全球,做成真正伟大的产品公司。

2、开放的心态——不只是源码开放

其次,做开源时,需要有开放的心态。我们一直不担心因为我们的代码开放后,竞争对手可以打败我们,因为我们认为如果在这方面不能持续的领先,那我们活该被打败。

我们会把很多东西开放出来,不管是源码也好还是技术方向也好,设计文档也好都会开放出来,因为我们希望能让社区尽可能深入参与其中。除了在线上的活动之外,我们还会邀请一些人线下交流,比如活跃的社区,我们会拜访他们,希望他们给我们提一些建议,或者我们把深度用户邀请到我们公司,开”吐槽大会“的活动,不能说优点,只能说缺点,让他们提一些在使用 TiDB 遇到的问题、踩过的坑。

我们是以一个非常开放的心态做这件事情,因此我们欢迎任何人和我们交流了解,甚至包括友商。

3、吸引顶级人才——人是社区的根本

人是产品的基础,没有足够多厉害的人物,就无法做成这样的事情,我们做这么多事情的目的,也是为了吸引人才。有了 TiDB 后,我们可以跟很多高校建立联系,可以跟专门做数据库的实验室有深入的合作,他们也会比较方便、深入地掌握 TiDB,能够很好的加入到社区里面,让社区顶级人才更好的参与到项目中来。

4、社区是最宽的护城河

做一个开源产品,社区是你和别人最大的不同。和其他数据库相比,我们是非常年轻的数据库,只做了四年多,投入的资本也没有友商那么多,但是我们为什么能够在这么短的时间里面把产品做到这样的程度,这和社区密不可分的。社区会帮我们贡献很多的想法,贡献很多的代码和反馈,有了这些我们才能把产品越做越好。可以说,社区是能够加速你产品成熟的东西,社区是最宽的护城河,因此我们会和社区一起把 TiDB 做的更好。

5、文档的必要性——专职文档团队

很多程序员都不太希望写文档或者觉得自己的文档写的很清楚了,其实不是,文档要从使用者的角度来看,而不是开发者的角度。我们公司有一个专门的团队来负责文档这个事情,不但要负责中文的文档,还要负责英文的文档,除了文档的架构内容详实之外,他们还要从使用者的角度来看文档写的好还是不好。

我们要求我们的文档,即便完全不懂技术的人也能够按照这个文档把产品一步步用起来,这个才是合格的文档。

福利时间

干货没看够?没关系,更精彩的内容等你来!

2019 年 6 月 14-15 日, 由极客邦科技旗下 TGO 鲲鹏会主办的 GTLC 全球技术领导力峰会将正式在上海举行,我们精心策划了技术、思维、战略、管理、视野及领导力等六大专场,并邀请行业内最具影响力的管理者许式伟、季昕华、陆栋栋等大咖加入讲师天团,他们将通过体系化、有洞见的分享帮你应对不断升级的挑战!

精彩嘉宾议题抢先看

曹衡康 红帽 全球副总裁 & 中国区总裁
《领导力蓝图 — 打造开放式组织》

李晓东 民生银行信息科技部技术管理中心负责人
金融科技的转型探索之路

顾旻曼 真格基金 董事总经理 & 华东区负责人
《价值与逻辑:从资本角度看技术创业》

季昕华 UCloud 创始人 & CEO
《做技术人,还是做企业家— 职场选择的洞察与决策》

许式伟 七牛云 创始人 & CEO
《技术创业红利期爆发,如何走好创业路》

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多