FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

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

  • 2019-06-12
  • 本文字数:4171 字

    阅读完需:约 14 分钟

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 鲲鹏会荣誉导师。


2019-06-12 13:2618949
用户头像
刘家宇 InfoQ 编辑

发布了 176 篇内容, 共 52.3 次阅读, 收获喜欢 280 次。

关注

评论

发布
暂无评论
发现更多内容

Java多线程之常见锁策略与CAS中的ABA问题

未见花闻

7月月更

Envoy负载均衡与限流设计

阿泽🧸

7月月更 Envoy负载均衡

王者荣耀商城异地多活架构设计(架构实战营 模块七作业)

Gor

【MySql 实战】以 sql 的方式多表联动更新数据

安逸的咸鱼

MySQL 实战 7月月更

树莓派3B搭建Flink集群

程序员欣宸

Java flink 树莓派 7月月更

架构实战营模块7作业

挖了蘑菇哩斯

架构实战营

Okaleido tiger NFT即将登录Binance NFT平台,NFT权益时代即将开启

鳄鱼视界

Docker小白的福音:50条Docker命令清单,干就完了!

wljslmz

Docker Linux Docker 镜像 7月月更

关于Web响应式设计

程序员海军

Web 7月月更 响应式设计

Starfish OS:以现实为纽带,打造元宇宙新范式

EOSdreamer111

Java中关于多线程的知识点

Java学术趴

7月日更

Okaleido tiger NFT即将登录Binance NFT平台,你期待吗?

股市老人

iOS中内存管理(Autoreleasepool)

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

正则什么的,你让我写,我会难受,你让我用,真香!

掘金安东尼

前端 正则 7月月更

网络水军为何如此猖獗:揭秘背后灰色利益链

石头IT视角

王者荣耀商城异地多活架构设计

Geek_7a789a

TableWidget 排序的多种方式

小肉球

qt 7月月更

云原生(九) | Devops篇之Jenkins安装与实战

Lansonli

云原生 7月月更

一文解析Ansible配置管理文件

穿过生命散发芬芳

ansible 7月月更

鸿蒙eTS版天气预报

坚果

开源 HarmonyOS OpenHarmony Open Harmony 7月月更

python小知识-如何判断一个对象为空值

AIWeker

Python python小知识 7月月更

王者荣耀商城异地多活部署设计

Geek_e8bfe4

Okaleido tiger NFT即将登录Binance NFT平台,后市持续看好

EOSdreamer111

【函数式编程实战】(一)Java演变与函数式编程

小明Java问道之路

Lambda stream 函数式编程 7月月更

从日常小事看如何工作

耳东@Erdong

7月月更

C#入门系列(二十六) -- 程序集和命名空间

陈言必行

7月月更

zookeeper-集群leader选举

zarmnosaj

7月月更

如何分析并设计性能测试场景

老张

性能测试 需求分析

前端网络之跨域请求

Jason199

跨域 7月月更

架构师成长:关于我在 ArchSummit 大会收获了什么

宇宙之一粟

架构 个人感悟 ArchSummit 7月月更

Web3流量聚合平台Starfish OS,给玩家元宇宙新范式体验

股市老人

  • 扫码添加小助手
    领取最新资料包
PingCAP 开源社区运营最强 5 招:招招精彩_开源_刘家宇_InfoQ精选文章