乐趣区

关于apisix:从新手村出来我在-Apache-APISIX-社区发出了第一个-PR

“当我看到那个 issue 后,就有种强烈的想要参加到社区的激动。看了社区的老手指南后,我像从新手村进去的勇者,筹备打怪。”—— Apache APISIX committer 屠正松

历时 282 天,屠正松(GitHub ID:tzssangglass)从开源社区的小白成长为了 Apache APISIX 的 committer。

屠正松因深度参加 Apache APISIX 的开发,在社区中奉献很多,2021 年 7 月 22 日被推选为 Apache APISIX committer。

在一个平淡的下午,咱们和正松连线聊了聊。因为疫情关系,寓居在南京的他曾经多日未外出。在没有和他聊天之前,我没有想到,胡子拉碴的他,居然走过了这么波折的路。

大学,我的大学

“我大学的时候学的是通信工程,每天最开心的事就是踢球。当初有时候会想,如果能带着当初的记忆回到大学时光就好了。”

正松在大学期间外面其实没怎么接触过编程,他当年其实有 C 语言的编程课,然而因为忙着踢球,挂科了。可是,他挂科之后的补考也没过,导致重修。最难堪的是,他重修也没过,起初怎么办呢?毕业之前还有毕业清考。这可不能再挂了,于是正松就去图书馆去借了一本 C 语言的书来看。

“我过后心想,C 语言真的这么难吗?”正松说。

而后他就始终看始终看,看着看着就忽然发现编程如同有那么点意思,他看懂了!最初他在毕业前顺利通过了考试。在毕业之后,找到了一份做程序员的工作。

“我原本都筹备毕业回家找个厂下班了”,他半开玩笑地说。

彼时,他可能不会想到现在的他会成为数个出名开源我的项目的 developer,参加一些撑持着千万级并发流量的基础设施的开发。

出象牙塔记

“在工业界,实在的业务场景和学校里学的很不一样的。”

正松的第一份工作就任于一家做穿戴设施的守业公司,从事智能手环的研发工作。正松和他的前共事们须要通过解决从智能手环上的获取的各种传感器数据,来实现对用户的心率、运动量、血压等的监测。

“工作蛮好玩的,因为在工业界,实在的业务场景和学校里学的很不一样的,很多货色都得从头开始学”,正松说。

有一天上班之后,这家公司的老板娘忽然发了一条信息,说公司的员工临时休假,什么时候下班等告诉。

正松过后就感觉不对劲,怎么好好的上着班,忽然就休假了?而后他立马关上招聘软件,开始找新的工作。起初才晓得,公司的老板跟供应商有合同纠纷,公司短暂停摆了。

而后,正松便到另外一家公司从事后端业务开发的工作,学习业界标准、进一步增进技术。过了快一年,因为正松比拟喜爱 Nginx、OpenResty、Netty 这类简洁和高性能的技术,他进入一家大公司的开发团队,从事中间件相干开发工作。

“在这家大公司,我做的离业务略微远那么一点点,更偏差技术一些。“正松说。

正松接触 Apache APISIX 的工夫是 2020 年 9 月份,那时候,他所在的团队应用的是 Kong,然而过后 Kong 无奈齐全满足他们的需要,于是他们便从新做网关的技术选型,试图寻找更好的计划。正松负责本次技术选型的负责人,于是他关注到了 Apache 基金会的顶级我的项目 Apache APISIX,进而接触了 Apache APISIX 的社区。

彼时的他,曾经毕业三年多了。

出新手村

“ 我能够给 Apache 基金会的顶级我的项目提交代码了!作为一个技术工作者,这是一种技术上的自信。”

正松在开源社区的第一个 PR 是一个 enhancement(性能加强)类型的 PR,这个 PR 让 Apache APISIX 反对了多端口监听。

  • issue:https://github.com/apache/api…
  • PR:https://github.com/apache/api…

这个性能是正松公司须要的,在 issue 区也早有人提到,然而不知为何始终无人认领。之前,正松正好对这方面的常识有所理解,于是他想:”我能够给 Apache APISIX 提个 PR 来 fix 这个问题。“所以他在 issue 里被动要求把这个问题指派给他。

他说:“过后我有一种强烈的参加社区的激动,而后我看了一下 Apache APISIX 社区的老手指南,而后就像拿着武器从新手村进去一样,兴致冲冲的筹备参加。”

抉择了这个 issue 之后,正松开始在 GitHub 下面开始跟社区的搭档探讨细节上的问题,像是配置端口的 style、实现的思路等。在探讨完之后,他开始入手实现。每天晚上上班之后去翻看 Apache APISIX 的代码,测试相干用例。在经验了三四个早晨的奋斗后,测试第一次跑通了!

过后正松心田十分的兴奋,马上依照那个老手指南的疏导把 PR 提上去了。而后承受 Code Review 的意见,进一步批改代码。终于,在 10 月 18 号,PR 顺利地 merge 进了仓库。

“过后我十分的冲动,感觉本人终于实质性地参加到开源社区外面去了。我能够给 Apache 基金会的顶级我的项目提交代码了!作为一个技术工作者,这是一种技术上的自信。”

这是正松在开源世界的第一个 PR。

在社区印象粗浅的事

“ 因为 etcd 有 MaxCallRecvMsgSize 的限度, 就从 etcd 的源头去解决, 这是最优雅, 也是最适宜的。”

当咱们问到,正松在社区印象最粗浅的事件是什么的时候,正松想了想说,可能是一个和 bug 无关的问题:etcd 的 MaxCallRecvMsgSize 限度。

正松已经被 etcd 限度返回体大小的问题折磨过,社区内也屡次反映、探讨过这个问题,但在 Apache APISIX 上无论怎么解决都不是很优雅。

直到往年 4 月份,干流科技的一位小伙伴给 etcd 提交了 PR,最终解决了这个问题。正松据说这个音讯时,感到十分的震撼,过后他没有想过这个事件会以这样的形式去解决。然而当初来看的话,这个办法的确是最适宜的。

“因为 etcd 有 MaxCallRecvMsgSize 的限度,就从 etcd 的源头去解决,这是最优雅,也是最适宜的。这是很棒的跨社区单干的示例”,正松说。

Sir, this way

“大家分工合作不同,然而都是在为开源做奉献。”

正松说,他刚开始参加社区的时候,把过后能看到的 APISIX 文档大部分都过了一遍。所以过后在所在公司工作的时候,共事问他问题,他尽管并不是很分明,然而他分明我的项目的文档散布状况,间接把文档找出来看一下,就大略晓得是什么问题了。他认为看文档是相熟我的项目的一个适合的形式。

Apache APISIX 的我的项目官网上,有欠缺的包含如何提 PR 的老手指南。如果想参加社区的话,能够先把官网和 Github 上的次要的文档都看一下,对我的项目有根本的理解,也分明我的项目的文档散布状况,前面再按需索引文档。

如果想在代码方面做奉献,或者参加设计的话,一些 Ngnix 或者 OpenResty 方面的常识的储备是必要的。包含看他们官网的文档及和代码,学习他们对于相干 feature 的实现等。

正松说:“我感觉这一步是无奈跳过的。”

当然,你能够以使用者的身份,去参加到社区里。比如说你感觉文档有问题,或者说你依照文档去实际的时候,发现并不是那样,你也能够去提一些 issue 指出这些问题。

大家分工合作不同,然而都是在为开源做奉献。

社区欢送所有人

“但这样做更好”

正松说,大家都在开源社区,首先要留神的就是要恪守社区的一些规矩,和社区的小伙伴平等交换。

交换时要留神的点能够分成两种。

第一种是,如果你遇到了一些问题,那你应该尽量精确地形容问题,提供可复现的用例。这个其实是最受欢迎的,或者说最能进步沟通效率的一个形式。如果你能把一个问题形容的很清晰,那大家答复问题的效率天然会十分高。

第二种是,如果是提出想法,解决问题等,在动手做之前,对于有歧义的点,须要在公开的场合,比方 issue,邮件列表等下面探讨,在社区内达成统一,获得共识之后,再开始做。

对于 Apache Way

“共识也会更新,它是社区推动我的项目后退的一种力量。”

正松了解的 Apache Way,是社区大于代码。

他认为,社区实质上是人与人之间的单干,大家分工合作,各司其职。然而在单干和各司其职之前,大家是须要造成一些共识。

共识是一点点积攒起来的。社区参与者们抛出一个个问题,社区内会探讨,辩驳,验证,直至最初解决这些问题。在这个过程中,共识在社区内缓缓造成,共识可能是标准,也可能是边界,或者其余的模式。共识也会更新,它是社区推动我的项目后退的一种力量。这个过程带有一些理想主义色调。

社区的共识其实比你做代码奉献更重要,因为有了共识之后,前面去回溯某一个改变的点的时候,会更加清晰,晓得这个改变的起源和过后的视角。

最初

最初在关麦之前,咱们请正松给咱们举荐一些货色。正松想了想,说:“我举荐了一部德国电影,跟社会工程学相干的《我是谁:没有相对平安的零碎》,和一本书,孔飞力老师的《叫魂:1768 年中国妖术大恐慌》。心愿大家在繁忙的工作中,也不要忘了空虚本人的精力生存。“

这就是这次的采访啦!下回,咱们会采访哪位社区的小伙伴呢?快来 Apache APISIX 社区瞧一瞧吧!没准,下一位 committer 就是你!

对于 Apache APISIX

Apache APISIX 是一个动静、实时、高性能的开源 API 网关,提供负载平衡、动静上游、灰度公布、服务熔断、身份认证、可观测性等丰盛的流量治理性能。Apache APISIX 能够帮忙企业疾速、平安的解决 API 和微服务流量,包含网关、Kubernetes Ingress 和服务网格等。

寰球已有数百家企业应用 Apache APISIX 解决要害业务流量,涵盖金融、互联网、制作、批发、运营商等等,比方美国航空航天局(NASA)、欧盟的数字工厂、中国航信、中国移动、腾讯、华为、微博、网易、贝壳找房、360、泰康、奈雪的茶等。

200 余位贡献者,一起缔造了 Apache APISIX 这个世界上最沉闷的开源网关我的项目。聪慧的开发者们!快来退出这个沉闷而多样化的社区,一起来给这个世界带来更多美妙的货色吧!

  • Apache APISIX GitHub:https://github.com/apache/apisix
  • Apache APISIX 官网:https://apisix.apache.org/
  • Apache APISIX 文档:https://apisix.apache.org/zh/…
退出移动版