开源之夏专访|从0到1,Apache SkyWalking Committer 陈意昊/sky

开源之夏人物专访专栏进行中,专栏将持续为大家带来开源之夏参与者的系列分享。欢迎已从开源之夏毕业以及正在参与的学生、导师一起加入专栏行动,有兴趣的小伙伴请联系开源小助手:kaiyuanzhixia 或小编姐姐:damengshiye(备注“专栏投稿”加速通过)

本期专访嘉宾亦是开源之夏的老朋友,Apache SkyWalking Committer——sky 陈意昊

 

1、自我介绍

走入开源世界

编程语言之于我

我叫陈意昊,现在在加拿大 Queen's University SAIL 软件工程实验室做研究生,现在是 Apache SkyWalking 的 committer 和开源之夏导师,平时爱好折腾新技术,GitHub ID: Superskyyy。

我开始频繁接触和贡献开源项目还是始于2021年接触到 Apache SkyWalking 和开源之夏活动宣传的时候。对开源最早的了解开始于刚上大学时候想搭建一个学校学生交流的论坛,接触到了 Flarum ——一个当时还处于早期但令人眼前一亮的论坛系统,由于没有像样开发经历也不知道怎么加入,我只能参与一些社区的讨论和功能建议。平时我也就把自己上课或课外组队做的不可复用的一部分项目传到 GitHub,对开源世界的贡献微不足道。

关于编程语言,我比较精通的是 Python,也熟悉 Java 和常用前端技术。对 Python 的感情来源可能因为其是加拿大本科的入门课程,而且我对生活中各类事情的自动化非常感兴趣,Python 依靠简练灵活的语法和强大的生态可以轻松实现非常复杂的功能。当然,Python 很多时候在性能和可维护性上和主流开发语言有着显著的差距,在使用者开发习惯不好的情况下这种问题比其他语言更容易变成地狱。所以在使用 Python 时候建议多主动探索一些底层知识,不至于吃多了精粮而失去了对很多关键实现原理的理解。

2、我与开源之夏

为什么是开源之夏

角色的转变

我作为学生参与了2021年的开源之夏(第二届),完成了 Apache SkyWalking 的 Python 探针子项目,在项目完成既定全部目标并且顺利合并进主分支后,我留在了社区做了一系列额外的贡献,并且长期参与了与其他贡献者和用户的交流
在2022年我作为 Apache SkyWalking 的新社区项目 - AIOps 引擎的发起者和导师参与开源之夏和 GSOC 的两个机器学习子项目,和社区大佬们、两位优秀的中选者一起合作推动这个项目的设计与实现。

 

 

 

 

选择参加开源之夏活动甚至说参与开源都是个偶然。在前述中我提到对开源的参与仅停留在给别人的项目点点小星星,至多是参与了一点功能方向的讨论。在参与开源之夏之前我就没敢想过自己有资格真正的参与到项目开发中,更别说是动不动上万星的 Apache 基金会顶级项目(Top-Level Project)。

真正让我有了这个想法的偶然来自于我的研究生导师推荐我在一个课程项目里探索一下 CHAOSS (https://chaoss.community/),即现在国内外都比较知名的一套开源生态度量规范和工具链,而高质量项目频出的 ASF 和 CNCF 自然成为了我的首选试验场。又也许是因为度量开源生态健康度经常会提到 "Metrics",我瞎搜索了解到了可观测性领域的东西,其中就包括当时刚合并重生没几天的 OpenTelemetry 标准和现在我参与的 Apache SkyWalking。作为纯新手的我,和今年我接触的大部分(几十位)同学一样不敢直接参与社区,就算有这胆子也不知道怎么理解这动辄几十万行的代码,所以我在混进了 SkyWalking 各个交流群组后发现了开源之夏的存在,我意识到开源之夏就是那个最关键的切入点

SkyWalking (https://skywalking.apache.org/) 是国内迄今唯一由个人开源的 Apache 基金会顶级开源项目,其核心是针对云原生微服务架构设计的应用性能管理平台 (APM),随着可观测性的近年来的火热,生态中的项目受到广泛应用。在2019年从 Apache 孵化器成功毕业后就一路飞速发展到今天由近700位贡献者和30余个子项目构成的大型开源社区,各方面健康度指标在数字和实际场景下都令人称赞。

3、我与开源社区

开源社区的魅力

开源社区对于在校生的裨益

成长与收获

我留在了 SkyWalking 社区,我也在逐渐尝试接触其他相关的社区做一些可观测性方向集成和翻译的贡献,我比较想专注做好一个方向的事情。正如前文所说,我几乎同时发现了 Apache SkyWalking 项目和开源之夏的活动,正巧关于 SkyWalking 的开源之夏项目多达23个,所以我就同步开展了探索和申请准备。

开源之夏的过程中我对参与开源的认知是一个从0到1的过程。如果读者曾经有参与开源的经验,请回想自己第一次提出 PR 收到大佬反馈的那份紧张,PR 被合并的激动。

在 SkyWalking 社区,社区的大佬们会非常乐意帮助新贡献者的疑惑,在我提出新东西和构想的时候会得到中肯的建议和实质的指导,然后会有人鼓励你去尝试实现它。我也认识到了在异步沟通中交流的艺术,学到了很多东西。一个好的社区的魅力在于包容,让每一个应当得到帮助的人得到帮助,去除走偏了的需求。这需要人来协助维护,所以我依然选择留在开源的世界里。

参与开源社区对于在校生的帮助不可谓不大,拓宽自己的视野也许是其中最重要的一点。大部分同学其实在毕业的那一年都不知道自己到底学了些什么玩意,有什么用,我是谁,该去哪,仿佛学校学的东西都是过时的旧货。技术、理论实践的经历通常只能通过去公司实习等短暂的机会获取,知识的深度和广度都有待考量。然而,大量既有深度又有广度的成功开源项目就摆在那,用宽松的许可允许开发者随意探索,通过普通方式完全接触不到的大佬也很乐意回答你的问题。这种机会为什么要把握住?我相信完全不必赘述,但其实大部分在校生都没有意识到这点。

2021年开源之夏结项后不久的10月底,在成为 committer 前,我为 SkyWalking Python 探针项目提交了十余次功能和修改。但也许比代码贡献更重要的是:我坚持在讨论区和群里以答疑为练习,深入了解了社区不止于代码的方方面面,推动了开启 Discussions 功能等对社区发展有益的事情。一个成功的开源社区是一种社会技术系统 (Sociotechnical System),在我看来,任何只专注于技术或社会方向的割裂都会导致社区走向非最优的环境。总结来说,我认为成为 committer 的标准绝不应该止于在代码仓库练死劲,这个头衔代表着社区核心维护者已经信任一个贡献者而且知道 Ta 可以为开源社区担起一份责任。能站在开发者,用户和社区的角度审视项目发展,能做到这些的人成为 committer 不会是难事。

在2022年开源之夏申请期间我和几十位在校同学聊过参与开源的事情,让我感到诧异的是好像没几个人意识到了在做贡献之前需要先成为一个合格的用户。我认为参与任何有产出的项目之前(甚至不用是个软件项目),我们都应该把自己放在用户的角度去试一试这个产品,才可以筛选自己的真正兴趣,发现值得深入解决的问题,去掉不切实际的想法。没有软件系统是完美的,我相信很多人都通过这个阶段发现值得参与的点,结合社区大佬的指导,开始开源之旅会比想象中的轻松不少。

4、收获与寄语

开源之夏带给我的

坚持的动力

参与开源之夏对我最直接的影响是帮助我确定了研究生课题方向,在参与途中我深入了解到了云原生领域的很多正在兴起的技术,这让我在和导师的探讨中确定了值得探究的方向。至于就业选择,现在越来越多的企业要求申请人拥有参与和深入理解开源软件的经历,国内外很多以开源产品为核心的新创业公司也在蓬勃发展。在一个健壮的开源社区脚踏实地建立一定的技术和影响力,也许会让就业的选择面更广一些。

理想和现实并不冲突,但很难同时达成。我在平时会有很多突发的点子,但往往要实现他们并不是个简单的事情,参与开源给了我那个展示思考,获得支持,将理想转变成现实的平台。参与开源重要的价值在于认识到很多中小企业并没有那么多资源去开发一些复杂系统,例如把机器学习结合进可观测性平台需要工程和算法的紧密结合,这并不是每个公司都能委托开发者去探索的,把技术开源出来可以帮助他们更好的面对不公平的技术垄断,至少能满足企业和个人的学习需求。

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/5283003/blog/5549535