成长故事分享:从社区小白到 CNCF 大使

文摘   2024-12-04 09:29  

本文不讲技术,只是浅述一段在 CNCF 开源社区成长的故事,这篇故事的主人公叫 Michael Yao。

01

2021:小白入行

2021 年 2 月,Michael 加入了一家在上海杨浦的云原生创新公司:DaoCloud。他最初的工作是在内网 Confluence Wiki 上给一个容器化 PaaS 平台编写和汇总中英文档资料,让代码更亲民,让文档更友好。他日常参加晨会,总会听到各种容器技术和开源贡献的分享。好奇之余,他自己也思量能否参与其中,如何参与进去?

他抽空注册了 GitHub 账号,看到首页写了 8000 万开发者参与其中,感觉有些震撼。但对新手而言,这也就是一个网站,一个花里胡哨的蓝色界面,怎么去探索这个网页背后的神秘和浩瀚?他其实比较茫然,无从下手。

周末闲暇时光,他加了一些类似 HelloGitHub 的公众号去阅读文章,去 B 站和抖音上有意识地刷一些如何做贡献的视频,但并没有去提交任何贡献。这就像最近日本 Kubernetes 上游培训团队的组织者 Keita 在一次访谈[1] 中提到的,“为社区做贡献,最难的是迈出第一步”。人们从知道开源,接触开源,到贡献开源,平均需要 6 个月到两年时间。

2021 年底 DaoCloud 研发部门的开源战队开源了一个叫 KLTS 的项目。部门领导要求 Michael 协助云原生开发者 wzshiming 编写和完善这个项目托管在 GitHub 上的用户文档。KLTS [2] 全称为 Kubernetes Long Term Support,主要使命是为 Kubernetes 早期版本提供长期免费的维护支持。这个项目相对冷门,但对许多在生产环境中仍在运行 Kubernetes 早期版本的企业而言,宛如一缕春风,带来了久违的福音。

在 wzshiming [3] 的帮助下,Michael 本地安装了 Git [4],学会使用了 VSCode [5],能够通过终端命令行磕磕碰碰地推送并将修改提交到 KLTS 仓库。开始时,他经常会因为网络问题或敲错命令而提交失败,还时不时与线上文档出现冲突需要各种 Rebase,他没办法就会一次次地抱着笔记本电脑去请教。

好在 Michael 是一个工科生,学会 Git 命令后,黑色的终端窗口让他沉迷。只需一行行简单的命令流动,就能提交修改的内容并将其近乎实时显示在网站上,让所有人看到自己的努力,让世界感受到这里有所变动。Google 搜索引擎有一个规则:有效内容更新频繁的网站会显示在前列,因为它是活着的。

这跟以前单机的 Office 系列、企业内网的 Wiki 页面截然不同,是一个从封闭到开放,从个人到群体,从小范围合作到全球协作的转变。而这也是开源社区繁荣的原因之一,大家提交的每个 PR 都是为了向前走一步,每个改动都能让所有人看到,你的每次成功合并都有人为你喝彩。如果发现 PR 修改有问题,任何人都可以留下 Comment,直到所有 Comment 被 Resolved 之后,PR 才会被合并进去。

02

2022:开始上路

这一年 DaoCloud 研发部门招兵买马开始研发第五代容器化平台,也就是后来的云原生操作系统 DaoCloud Enterprise 5.0。Michael 负责文档资料,也开始调研用什么来建设文档站,他先后调研了 GitBook [6], Docusaurus [7], Hugo [8], MkDocs [9]。最初以 GitBook 在内网搭建了各个 Scrum 团队的文档站,但没有 IT 支持,只能实现一些简单的样式。另外 GitBook 商业化之后,社区版的更新基本处于停滞状态。各个 Scrum 团队的文档处于离散和割据状态,层次不齐,风格各式各样。

2022 年初,samzong [10] 加入 DaoCloud,他非常擅长在 GitHub 发现、探索和使用各种工具。他像一个机器猫一样总能从 Git 上淘出好东西,又像一个领航人总能找到一条合适的路往前冲,同事们戏称他为船长。在船长的帮助下,Michael 成功以 MkDocs 汇总了 10 多个 Scrum 团队的文档,从内网将数据迁移到了 GitHub,将所有 Markdown 源文件对全球开源,形成了对外的 docs.daocloud.i[11]。日常提交、评审、合并 PR 成为 Michael 的日常工作。

2022 年中的一天,Michael 克隆了 k/website 的源数据,发现有些文档写得有问题,读上去生硬不通顺。他尝试做了一些文字修改,提交了一个很小的 PR [12]这是他事实上对外提交的第一个社区 PR,很快收到了 Reviewer 的反馈。

他从这个 PR 学到的第一件事是包容。原句是不太通顺,但你不能不礼貌,不能以批评的语气去 Judge 别人的成果。因为社区是来自全球贡献者的协作,难免会有各种不同的想法,你自己习惯的说法,在别人那里可能并不习惯。就比如中文,除了国内,还有港澳台、新加坡,华人遍布世界各地,贡献者有时差,日常面对的也是不同的文化和氛围,每个人都要学会包容和理解,学会友好讨论,学会耐心和共情,这些是社区所推崇的品质,也是 CNCF CoC 社区行为准则[13] 中每一条文字的体现。

Michael 曾遇到过这样一个案例,有关 Namespace 中文译法的争论。IT 行业最常见的叫法是“命名空间”,但还可以有其他叫法,比如名字空间、名称空间、命名域。后面这几种叫法并不是错误的,只是不常见。很多新来的贡献者会指出 k8s.io 上这个词为什么不统一,为什么各种叫法都有呢?而在 k/website 混迹几年以上的老鸟当然知道这个问题,但为什么他们不提了呢?社区曾经就这个问题投过一次票,后来 Jimmy Song [14]、Tengqm 等资深大佬倾向于名字空间,而新人们赞成命名空间。在讨论的过程中,老生们都在克制讲解为什么,而新人们都在坚持挑战,甚至有人在嘲讽和谩骂,以至于后来引来了 CoC 委员会的工作人员执行了锁帖操作。这件事没有赢家,而讨论也不了了之了。

Michael 建议新手们,刚开始做贡献可以处理一些 good first issue [15],大批量的修改等你熟悉社区之后再去进行。社区的参与者都有自己的工作,大多数只是抽空参与,PR 越大越难被合并,有些复杂的 PR 可能会拖几年。尽量让 PR 的修改具体到某一方面,让 Reviewer 一眼就能理解,这样很容易就能收到 /lgtm 和 /approve 标记,将 PR 合并进去,留下你成功走过的一个个足迹。

03

2023:奔跑吧,兄弟

这一年,Michael 参与了多个开源项目的建设工作,从对外网站的静态编译技术分为三类:

过 Hugo 编译的网站:

  • k8s.io [16]:全球 AI 负载容器化编排的事实标准技术,CNCF 毕业项目,国内代码贡献 DaoCloud 排名第一,Michael 是维护者之一

  • istio.io [17]:全球最流行的现代化服务网格技术,CNCF 毕业项目,国内代码贡献 DaoCloud 排名前三,Michael 是维护者之一

  • opentelemetry.io [18]:全球最流行的可观测项目,CNCF 毕业项目,DaoCloud 有三名维护者参与其中,Michael 是维护者之一

  • klts.io:经 DaoCloud 开源的早期项目,向公众提供免费长期的 Kubernetes 旧版本支持,修复各种 CVE,Michael 是维护者之一

  • clusterpedia.io [19]:经 DaoCloud 开源并捐献给 CNCF 后成功加入 Sandbox,Michael 是维护者之一

  • merbridge.io [20]:经 DaoCloud 开源并捐献给 CNCF 后成功加入 Sandbox,Michael 是维护者之一

  • KWOK [21]:经 DaoCloud 开源并捐献给 Kubernetes 社区成为一个 SIG 项目,被 Apple、IBM、OpenAI 等广泛使用的测试模拟工具,Michael 是一名 Reviewer

通过 MkDocs 编译的网站:
  • docs.daocloud.io:经 DaoCloud 开源的第五代云原生操作系统的全球文档站,Michael 是 Owner

  • docs.d.run [22]:经 DaoCloud 开源的算力操作系统的全球文档站,Michael 是 Owner

  • kubean.io [23]:经 DaoCloud 开源并捐献给 CNCF 后成功加入 Sandbox,Michael 是维护者之一

  • spiderpool.io [24]:经 DaoCloud 开源并捐献给 CNCF 后成功加入 Sandbox,Michael 是维护者之一

过 Docusaurus 编译的网站:

  • hwameistor.io [25]:经 DaoCloud 开源并捐献给 CNCF 后成功加入 Sandbox,Michael 是维护者之一

  • karmada.io [26]:经华为开源,DaoCloud 代码贡献量排名第一,Michael 是维护者之一

04

2024:有所知

社区的繁荣离不开人们的贡献,活跃的贡献者是各个项目的生命之源。

Michael 在 2024 年多次参与了 Program Committee 评审 KubeCon 演讲议题

- KubeCon Paris 2024
- KubeCon Salt Lake City 2024
- KubeCon New Delhi 2024
- KubeCon
Hong Kong 2024

2024 年 11 月 12-15 日举行的北美 KubeCon 上,凭借近三年对所有 CNCF 项目带来的 11396 次贡献,他获得了 CNCF 社区的 Top Documentarian 的奖项

05

结语

迄今为止,你所听过的太多伟大软件来自开源社区:Linux、Android、Git、Kubernetes、Istio、OpenTelemetry、Grafana、MySQL 等等。开源项目想要发展壮大,就需要持续的新鲜血液,需要更多的贡献者加入

新手去开源社区做贡献,最难的可能就是迈出第一步。安装好各种工具,搭建好环境,找到可以完善的点。接下来就会顺理成章,多多与人交流,找到一个好的 Mentor,慢慢地就会形成一种习惯。

习惯

习惯去看 PR,习惯发现和提出 Issue,习惯去了解社区的方方面面。

  • 从看懂 Slack 各种消息,到开始点赞和留言

  • 从默默无闻,多听多看,到开始尝试发出只言片语

  • 从悄悄参加线上会议,努力听懂老外们的各式口语,到参加线下活动互加好友

  • 从只有微信,到有了 Slack、Twitter、Linkedin、WhatsApp

  • 从第一次参加 KubeCon,到参与会议前后的各项工作

  • 从国内到国外,从本土到国际化

包容

开源社区的包容性很强,任何人都可以找到自己的位置,都可以去交流学习。如果成功合并 PR 留下记录,你会为自己的每一次成长而骄傲。
  • 产品:加入 release 团队,根据 KEP 开发计划,推进各 SIG 团队的开发进展

  • 开发:修 bug,提 KEP 提交代码

  • 测试:提交和完善 e2e 测试脚本

  • 前端:UI/UX 技术

  • 设计:制作 logo,各种 png、svg、mermaid

  • 文档:英文撰写,多语言翻译

  • 管理:编写行为准则,监督社区行为,组织线上会议

耐心

在社区做贡献,大部分都是偶尔为之。你提了 PR 或 Issue 之后,通常需要一段时间后,才会有所响应。所以你需要耐心等待,大部分人只关心自己感兴趣的内容。如果真的太长时间无人响应,你可以翻阅 PR 或 Issue 记录,@对应的人员,同时也要反省自己是不是提的有问题?是不是还能修改完善一下?

氛围

对很多人来说,社区是职场的延伸。很多人来这里是为了学习和交流,目的大多是为了提高技术水准,拓宽视野和人脉,也许还想证明一些什么,总归有所求。一个良好的氛围可以促进你贡献更多,甚至会沉迷进去。
那还等什么?去找到一个鼓励开源贡献的氛围,可以是大学或者研究机构,也可以是像 Google、Microsoft、Amazon、华为、阿里、腾讯、字节等这样的大公司,还可以是 DaoCloud 这样的创新公司。你在 GitHub 会找到并认识他们,跟他们一起讨论解决问题。社区突破了高墙、公司和国家的界限,让创意在网络空间内碰撞,激发出一个个灵感。

回报

努力总会有所回报。假有一天去搜索自己的名字,发现很多篇文章跟自己有关,每一篇的阅读量都在几万,心中热血会促使你更有动力继续前行。
  • DaoCloud 社区认证资质[27]

  • CNCF Ambassador 列表[28]

06

参考

[1] 访谈:
https://kubernetes.io/zh-cn/blog/2024/10/28/k8s-upstream-training-japan-spotlight/

[2] KLTS:
https://klts.io/

[3] wzshiming:
https://github.com/wzshiming

[4] Git:
https://git-scm.com/

[5] VSCode:
https://code.visualstudio.com/

[6] GitBook:
https://www.gitbook.com/

[7] Docusaurus:
https://docusaurus.io/

[8] Hugo:
https://www.gohugo.org/

[9] MKDocs:
https://www.mkdocs.org/

[10] samzong:
https://github.com/samzong

[11] docs.daocloud.io:
https://docs.daocloud.io/

[12] 很小的PR:
https://github.com/kubernetes/website/pull/33568

[13] CNCF CoC 社区行为准则:
https://kubernetes.io/zh-cn/community/code-of-conduct/#cncf-community-code-of-conduct-v13

[14] Jimmysong:
https://jimmysong.io/

[15] good first issue:
https://github.com/kubernetes/website/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22

[16] k8s.io:
http://k8s.io/

[17] istio.io:
http://istio.io/

[18] opentelemetry.io:
https://opentelemetry.io/

[19] clusterpedia.io:
http://clusterpedia.io/

[20] merbridge.io:
http://merbridge.io/

[21] KWOK:
https://kwok.sigs.k8s.io/

[22] docs.d.run:
https://docs.d.run/

[23] kubean.io:
https://kubean-io.github.io/kubean/en/

[24] spiderpool.io:
https://spidernet-io.github.io/spiderpool/

[25] hwameistor.io:
http://hwameistor.io/

[26] karmada.io:
http://karmada.io/

[27] DaoCloud 社区认证资质:
https://dwiki.daocloud.io/pages/viewpage.action?pageId=16104222#user-menu-link-dd

[28] CNCF Ambassador 列表:
https://www.cncf.io/people/ambassadors/




 本文作者 



要海峰

「DaoCloud 道客」内容专家,云原生基金会全球大使,Kubernetes, Istio, OTel 等网站维护者




热门推荐

            

访问以下网址,或点击文末【阅读原文】立即体验

d.run,让算力更自由
https://d.run/



DaoCloud 公司简介

「DaoCloud 道客」,云原生领域的创新领导者,成立于 2014 年底,凭借其自主知识产权的核心技术,成功打造了新一代云原生操作系统 DaoCloud Enterprise 5.0,致力于推动企业数字化、智能化转型。依托在云原生领域的技术积淀与持续创新,「DaoCloud 道客」推出 d.run 算力一体化解决方案,作为专业的技术提供商参与并推动多个区域算力枢纽中心的建设,为各行各业提供稳定、高效的算力支持。成立迄今,公司已在金融科技、先进制造、智能汽车、零售网点、城市大脑等多个领域深耕,标杆客户包括交通银行、浦发银行、上汽集团、格力集团、京东方、屈臣氏集团等。公司总部位于上海,并在新加坡、北京、深圳、成都、南京、武汉等地设立多家分公司及合资公司,总员工人数超过 300 人,是国家级“专精特新”小巨人企业、上海市高新技术企业,并入选了科创板培育企业名单。


网址:www.daocloud.io

邮件:info@daocloud.io

电话:400 002 6898




文章转载自道客船长点击这里阅读原文了解更多

CNCF概况(幻灯片)

扫描二维码联系我们!




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。

CNCF
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
 最新文章