2021 年 12 月 25 日,2021 中国大数据技术大会暨 CCF 大数据与计算智能大赛高峰论坛在中科院计算技术研究所隆重召开。PingCAP 高级副总裁范若晗受邀在主会场进行了以 “开源走向世界” 为主题的演讲,结合 PingCAP 的实践,从协作方式和技术演进两个角度,分享了 “开源”和“全球化” 之间相互关联,密不可分的关系。本文内容根据演讲内容整理而成,分为上下两篇,本篇主题为:开源构建全球化的舞台。
实际上,PingCAP 从第一行代码的提交就是在 GitHub 上完成的,我们非常重视这一领地。社区的小伙伴基于 TiDB Cloud,实现了一个用于记录公共 GitHub 活动的公开数据存档在线工具:GitHub Archive。对原始日志数据(超过 40 亿条)进行分析对比,选取国内典型的企业[1],我们可以看到过去 10 年,中国开源像洪流一样发展,活跃仓库[2]数大幅提升。在这数千个活跃的仓库中,越来越多源自中国的开源项目受到国内外同行的认可与赞许,呈现出一种百花齐放的状态。而 PingCAP 创始人的认知和决心都来自于这个洪流的滋养,在过往的六年里也为这条曲线做出了小小的贡献。我们做的这个 GitHub 分析工具,很快也将提供给大家在线访问,根据自己的需求快速灵活的进行分析。
中国目前处于开源高速发展的阶段,开源软件的发展从最底层的操作系统开始,已发展到数据库、中间件,并向应用领域逐渐延展,近年来开始主导信息技术领域的深度创新:如,大数据、云计算、人工智能、区块链、云原生等,加速了国家核心技术的自主发展。《2021 中国开源发展蓝皮书》对国内活跃开源社区进行了不完全统计,我们可以看到,在数据库、人工智能、操作系统领域的开源项目最为活跃,这跟中国互联网行业的市场特点和当前技术发展也息息相关。
一系列的政策指导以及全球开源市场的趋势变化,大大提升了资本市场对开源公司的认可度。而当我们研究近 3 年国内 ToB 技术行业,发现获得数千万乃至数十亿投融资的众多企业,在满满的科技范儿背后都有着一个共同的标签,那就是开源。另一方面,在赛道选择上也有着高度的匹配:操作系统、数据库和人工智能。
过去开源在商业化上的巨大能量是被严重低估的,现在大家对于真正利用好开源这个高杠杆的模式依然还在摸索阶段。开源是真正帮助 PingCAP 走向全球化的一扇门。今天,我将和大家分享 PingCAP 的一些探索和经验。
信任问题的解决是所有工作的前提
PingCAP 不仅代码开源开放、面向全球,文档也是一样的。最早的 TiDB 没有中文文档,所有的注释甚至每一个提交记录都必须是英文的,所有的设计文档都要放到 GitHub 上。早期用户有问题,有时会直接微信或者邮件联系,但我们也建议他们把问题放到 GitHub。甚至有专人会帮早期提出 issue 的人把 issue 从中文翻译成英文。之所以这样做,其实是从 TiDB 项目发起和早期阶段就立下了一个理念,我们要把项目的 why 和 how 都展示给全球社区的参与者。在信任的基础上,开源产品可以在全球化的舞台上实现高效传播
TiDB 的相关技术文档,被技术爱好者自发地翻译成俄语、乌克兰语、日语、西班牙语和葡萄牙语等,极大推动了产品的全球化。PingCAP 编撰的 NewSQL 相关课程还入选了威斯康辛、普渡、卡内基梅隆大学数据库课程。开源的生态大大加快了迭代速度
这张图是 TiDB 每年代码的变化情况。红色是 TiDB 2015 年的代码,蓝色是 2016 年的,大家可以看到,TiDB 每年会进行超过 40% 的代码更新,而这些代码的 40% 是由外部贡献者贡献的,产品的快速迭代才能保证其持续领先性。国内外多家机构共同参与开发 TiDB,既有国内的小米、美团、知乎、一点资讯等,也有国外的 Databricks、Facebook(现在的 Meta)、韩国三星研究院等等。第一个故事,是关于写书
在我们的印象中,通常的书籍编写是一个常年累月的细活,少则半年,多则数年,初稿完成后接着是多人的审阅然后再出版。但在技术发展瞬息万变的今天,产品迭代速度比较快,技术类的书籍能否有一个更快捷更高效的方式。在去年 TiDB 4.0 GA 版发布前夕, TiDB Master 分支社区一片热火朝天。为了给这个里程碑版本留下点不同的内容,我们的 CTO 产生了一个「疯狂」的念头,约一波 TiDB 社区伙伴,以 “分布式” 的方式,在 48 小时之内写完一本关于 TiDB 的技术书籍。希望系统且简要地介绍一下整个 TiDB 和周边工具生态,能手把手地指导用户 “把 TiDB 用起来且用好”。说干就干,从 3 月 3 号在网上发布 TiDB Book Rush 这个创意,3 月 6 号周五晚 21:00 开始,历时 48 小时,共有 102 位来自社区的作者参与,截止周日 21:00,总计产生了 421 次 Commit,199 个 PR,最终开源电子书 《TiDB in Action》 第一版诞生,涵盖了 TiDB 基本架构原理,最佳实践及案例,TiDB 开源社区及周边生态发展历程等。
第二个故事是关于开源加速产品迭代的
“4.0 捉虫竞赛”是由 TiDB 社区发起的挑战赛,选手可以通过为 TiDB 寻找 bug 或提交测试报告的方式获得相应积分,积分可以兑换奖品。这次竞赛共有 40 位社区小伙伴组成 23 支队伍进行参赛。通过大家共同不懈的努力,一共为 TiDB 4.0 GA 找出 51 个 P1 级别的 bug 和 8 个 P0 级别 bug。本次捉 “虫” 竞赛第一名的获奖者 Manuel Rigger (还给自己起了个中文名字叫李曼努), 是一位专攻数据库测试方向的博士后,来自苏黎世联邦理工学院,他的测试框架也帮助 MySQL、PostgreSQL、MariaDB 等数据库找到了 400 多个 bug。
这样的贡献并不是单向的,开源通过激发工程师在社群中的创造力,也使得大量的开发者、机构和企业,无门槛地使用质量优良的软件产品,贡献巨大的社会价值,形成一个良好的循环。
作为先进的生产模式,开源让 PingCAP 获取到了非常多来自社区的帮助,同时把开源的智慧贡献给全球,实现了巨大的社会价值。现在 PingCAP 在开源到商业的道路上越走越好,也是从这些社会价值的贡献中萃取出商业价值,帮助公司和项目茁壮成长,为企业和产品的成功形成源源不断的价值闭环。
可以说最近十年数据技术创新进入了前所未有的蓬勃发展阶段,动力来源于哪里?选择困难该怎么办?在下一篇文章中,我将与大家分享 PingCAP 从数据库近半个世纪的发展历程里,学到了什么,技术发展对 PingCAP 的架构选择和产品方向产生了什么影响。
[1]国内典型的企业:包括阿里、百度、腾讯、字节、美团、滴滴、华为、京东、小米、网易、Bilibili、微众、携程、PingCAP 等 40 多家公司[2]活跃仓库:指在一年中有发生过至少一项事件的仓库,如 PushEvent、IssueCommentEvent、ReleaseEvent、PullRequestEvent等(总计有21 类事件)