写点什么

短短 146 天就成为 Apache APISIX Committer,我是怎么做到的?

发布于: 刚刚
短短 146 天就成为 Apache APISIX Committer,我是怎么做到的?

每个人的一生中都会经历许许多多的第一次,或惊喜,或搞笑,或感动,或悲伤……


不过在我看来,无论经历过的是什么,这些第一次会构成你完整而丰富的一生,并帮助你看到这个世界更多的温暖和美好。等你老了,离开职场享受生活了,甚至躺在轮椅上无法行走的时候,你闭起双眼回忆起这些经历,它的珍贵就如一壶百年老酒,细细品味,才知道这才是佳酿。


2000 年初,我在书房里搞了一个通宵,第一次勉强用一段歪歪扭扭的 ASP 代码与数据库连接,并把 “hello world” 存进了数据库。


……


2021 年 4 月,我放弃了大厂的招纳,并舍弃了一些朋友的邀请,第一次迈入了开源领域的门槛。


2021 年 9 月,我成为了 Apache APISIX 有史以来第一个非代码贡献的 Committer。


开源究竟是什么

有句话我常挂在嘴边:“你的人生之所以精彩,是因为你永远猜不到结局,更猜不到在下一个阶段是谁成全了谁”。人这种生物,天生对未知的事物就容易产生好奇,但却又有些胆怯。


相信技术从业者们对 “开源” 二字一定不会陌生,但第一印象基本是 “开源?不就是免费吗?白嫖?”,或者什么基金会,什么社区,什么自由平等,反正看上去都神叨叨的,满嘴跑的都似乎是富有正义感的名词。


在这种刻板印象的催化下,导致有不少人深信开源代表着「正义与自由」,只要一提起什么 License 就会联想到 Oracle、微软等企业,而且还会跟巨额收款联系起来,所以很多人都认为「闭源是剥削与邪恶的化身」,但现实情况真是如此吗?



为了加深大家的理解,尤其是一些技术圈外的朋友,我特地结合时间轴在维基百科中搜索了一下。

开源的发展历程

60、70 年代时,整个开源软件并不像现在具有很高的流通性,大部分使用领域集中在军工单位,并大多采用项目制的方式进行。


直到 1976 年 2 月 3 日,比尔·盖茨给电脑爱好者们写了一封公开信,抱怨未经授权使用 Altair BASIC 的情况太普遍,导致新成立的微软公司回报甚微。这封信相当有名,被看作是软件通过商业授权获取收入的真正开端,解决了软件流通性的问题。



而 License 模式的核心是解决所有权问题,不管个人也好,企业也好,我通过自己的智慧或资源投入制造了一个软件,应如何将这个软件在市场上合理、合法的进行流通呢?获得许可证的人或单位,你只有使用权,不拥有所有权,而在这之前,无论你给谁做项目,项目所产出的软件所有权,都将归属这个项目,因为这是个合同。


说到这里,也许有人会问,那么许可证模式与开源模式所倡导的宗旨是不是背道而驰?


这类似《黑客帝国》中的场景,有黑就有白,有正就有反,在 Richard Stallman(GUN Emacs 之父)这帮人看来并不是这样,他们想的更加长远。他觉得人类的成果,不应该被任何一家机构或个人垄断,基于这个出发点,他最终建立了 GNU 和自由软件基金会。


到 1983 年,Richard Stallman 在 net.unix-wizards 新闻组上公开发起 GNU 计划,宣布创建一套完全自由的操作系统,并附带一份《GNU 宣言》。在该宣言中,Stallman 声称发起该计划的一个重要理由是要「重现当年软件界合作互助的团结精神」。


次年 1984 年 1 月,Richard Stallman 启动了 GNU 计划,由于 GNU 是公开源代码,为了防止不良厂商利用自由软件使其专有化,他创造了 Copyleft 授权办法,让所有的 GNU 程序遵循一种「Copyleft」原则,即可以拷贝、修改和出售,但必须遵守「源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码」的原则。


在随后的四十年间,开源与闭源两条线都按照自己的规则发展着。尤其是闭源软件,由于有 License 这种模式,对许多中小型软件公司的知识产权起到了保护作用,催化了其蓬勃发展的速度,其中最有代表性的就是微软。


因此,对于开源界而言,在很长一个阶段中,主要的对手就是微软。这个对抗,不是凭空想象出来的,微软在其领域投入的人力物力是我们想象不到的,他们对开源界是感到害怕的,并且制定出了一套完整的对抗战略,最有名的是 “F.U.D(fear, uncertainty, and doubt)战术”。


到今天为止,微软却悄悄地成为了全球对开源支持力度排名第一的公司,比如 .net 底层框架也已全面开源,最近又听说给某开源基金会捐献了 2000+ 的专利。


三国演义开头的那句话怎么说来着?天下大事,分久必合,合久必分,这不仅是软件工业的发展,也是当今开源与闭源之间交互的方式。

揭开开源面纱

9 月 8 日公布成为 Committer 当天,我把这个消息分享到了朋友圈。不一会就收到一些类似评论“啥是 Apache?”、“Committer 是干啥的?”。



借此机会,我想还是有必要来解答下 ASF(Apache 软件基金会),以及 “Committer 是个什么鬼” 的问题。

Apache 基金会

简单点说,Apache 软件基金会是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的 Apache 项目与子项目中,所发行的软件产品都遵循 Apache 许可证(Apache License)。


组织由两部分组成,一个叫理事会,一个叫项目管理委员会。


理事会就是管理与监督整个 Apache 软件基金会的商务与日常事务,并让它们能符合章程的规定下正常地运作,而项目管理委员会主要负责保证一个或者多个开源社区的活动都能运转良好。


Apache 理事会由 9 名 Member 组成,过去基本都是白人、男性、年长者(老白男),现在也开始变得多样化,黑人女性、黄皮肤年轻人也出现在了董事会中,比如来自中国的吴晟(Apache SkyWalking Founder)就是董事会其中的一员。



与企业不同,在 ASF 中所有的 Member 和理事会成员都是独立的,这是 Apache 基金会最核心、也是最重要的特征。一个 Member 只代表自己,不代表他所在的商业公司或者团队。


说白了,Member 的工作变化,完全不会影响他的权利和义务。

Community Over Code

说到这里,我特别要强调一下 Committer 也是强调独立个体的。


在 Apache 软件基金会中,只会根据你的贡献来评价一个贡献者是否可以成为 Committer,这些贡献可以是:代码、文档、布道等各个方面。也就是说,像我这种通过对 Apache APISIX 布道贡献,也是能够被选举为 Committer 的。





另外,在选举 Committer 或者 PMC 的时候,其实很多人基本都没有见过面,甚至连对方的年龄、肤色与身高都不知道,怎么样?是不是与企业内的一些 “潜规则”、“官大压官小” 相比有些不太一样?


如果你对 ASF 有少许了解,相信你一定听过 “Community Over Code” 这句话,也有朋友问过我是啥意思?具体体现在哪里?


以下引用来自 Apache APISIX PMC Chair 温铭在他自己公众号文章所罗列出的四项内容:


公开讨论


任何人都可以通过邮件列表,公开地参与 Apache 的任何项目。不管是版本发布还是项目毕业这种大事儿,所有人都可以参与投票,虽然只有 PMC 成员的投票才是有效的,但所有人的观点都会通过邮件列表,公开地表达出来。


通过贡献来赢得授权


与企业内的权力分级不同,Apache 基金会实行的是“精英”民主:贡献的越多,影响力就会越大。也就是说,任何人都能参与,但每个人的影响力和投票权是不同的。


基于共识的决策


在任何一个 Apache 项目中,你都必须进行公开和充分地讨论,这是达成共识的必要条件。在达成共识后,投票自然是水到渠成的事情。


什么?你想用权力操纵?不好意思,搞不明白这个问题,那么这个项目就不是真正意义上的社区项目,甚至是摔个大跟头。


独立性


如果做到前面三项约束,那么就可以保证没有公司可以控制 Apache 项目的走向。


用户头像

Github:https://github.com/apache/apisix 2021.06.02 加入

Apache APISIX 是一个云原生、高性能、可扩展的微服务 API 网关。它是基于 OpenResty 和 etcd 来实现,和传统 API 网关相比,Apache APISIX 具备动态路由和插件热加载,特别适合微服务体系下的 API 管理。

评论

发布
暂无评论
短短 146 天就成为 Apache APISIX Committer,我是怎么做到的?