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

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

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 talen Plan项目,这个项目当前还没看到在国内有类似的东西,这个项目主要面向在校学生。我们希望以TiDB为内核扩展到数据库或者是分布式数据库领域,帮助在校学生能够更熟悉这些东西。

开源社区运营心得

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

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

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

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

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

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

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

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

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

4、社区是最宽的护城河

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

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

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

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


技术管理的干货还没看过瘾?没关系,2019 年 6 月 14-15 日, 由极客邦科技旗下 TGO 鲲鹏会主办的 GTLC 全球技术领导力峰会将正式在上海举行,我们精心策划了技术、思维、战略、管理、视野及领导力等六大专场,并邀请行业内最有话语权的大咖加入讲师天团阵营,他们将通过体系化、有洞见的分享来帮助技术您成为一名全能型技术人。

TGO鲲鹏会,是极客邦科技旗下高端技术人聚集和交流的组织,旨在组建全球最具影响力的科技领导者社交网络,线上线下相结合,为会员提供专享服务。目前,TGO鲲鹏会已在北京、上海、杭州、广州、深圳、成都、硅谷、台湾、南京、厦门、武汉、苏州十二个城市设立分会。现在全球拥有在册会员 800+ 名,60% 为 CTO、技术 VP、技术合伙人。

会员覆盖了 BATJ 等互联网巨头公司技术领导者,同时,阿里巴巴王坚博士、同程艺龙技术委员会主任张海龙、苏宁易购 IT 总部执行副总裁乔新亮已经受邀,成为 TGO 鲲鹏会荣誉导师。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章