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

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

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 项目的走向。

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

  1. 中国首位 K8s ingress-nginx reviewer 同时提名成为 Apache APISIX committer

    近日,来自支流科技的工程师张晋涛被添加为 Kubernetes ingress-nginx 项目的 reviewer,这也是首位来自中国的 Kubernetes Ingress Controller ...

  2. 从新手村出来,我在 Apache APISIX 社区发出了第一个 PR

    "当我看到那个 issue 后,就有种强烈的想要参与到社区的冲动.看了社区的新手指南后,我像从新手村出来的勇者,准备打怪." ​ -- Apache APISIX committe ...

  3. 如何与 Dapr 集成打造 Apache APISIX 网关控制器

    本质上,Apache APISIX 控制器将配置相同标准 Dapr annotations 以注入 daprd sidecar.通过公开这个 sidecar,将允许外部应用程序与集群中启用 Dapr ...

  4. 开源之夏来啦,欢迎报名 Apache APISIX 项目!

    活动介绍 开源之夏(全称:开源软件供应链点亮计划--暑期 2021)是由中国科学院软件研究所与 OpenEuler 社区共同主办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护 ...

  5. 借力亚马逊云科技实现 Apache APISIX 的生态探索与产品成长

    关于 Apache APISIX Apache APISIX 于 2019 年被两位创始人捐赠给 Apache 软件基金会孵化器,并于第二年7月从孵化器毕业,成为 Apache 顶级项目.APISIX ...

  6. Apache APISIX 温铭:运营开源社区、基础软件创业-拒绝自嗨、聚焦和快速发布

    点击上方"开源社"关注我们 | 作者:温铭 | 转载自:技术琐话 | 编辑:王玥敏 | 设计:刘颖洁 | 责编:Corrie 开源社引言 开源归根结底是一种人类的文化,而全球化背景 ...

  7. Kong APIGW — v.s. Apache APISIX

    目录 文章目录 目录 Kong v.s. Apache APISIX Kong v.s. Apache APISIX Apache APISIX 和 Kong 都是开源的微服务 API 网关,那么在这 ...

  8. 国产微服务网关Apache APISIX安装

    一.需求环境 1.openresty 版本大于 1.15.8.1 2.etcd  -- yum安装即可 3.luarocks  --源码安装 4.nodejs 版本大于10 5.Apache APIS ...

  9. 网关 Apache APISIX 在 360 基础运维平台项目中的实践

    女主宣言 今天小编为大家分享一篇关于Apache APISIX的文章,文章从开发者的角度讲述了 Apache APISIX 网关在 360 基础运维平台的落地实践,希望能对大家有所帮助. PS:丰富的 ...

最新文章

  1. Distilling the Knowledge in a Neural Network 论文笔记蒸馏
  2. python计算最大回撤_Python进阶量化交易场外篇3——最大回撤评价策略风险
  3. css应用网页设计,CSS技术在网页设计中的运用
  4. 程序员如何优雅地使用 Mac?
  5. 营销 客户旅程模板_我如何在国外找到开发人员的工作:我从营销到技术的旅程...
  6. pyhton链式赋值在可变类型/不可变类型上的区别以及其本质
  7. vs2017编译网狐荣耀服务端的心得
  8. jquery城市选择案例
  9. cnn风格迁移_愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
  10. java long 1 000_Java-基本数据类型
  11. iphone配置实用工具连接手机后卡住不能动
  12. access-control-allow-origin php,php header(Access-Control-Allow-Origin: *) 无效
  13. select 设置不可用,提交表单时能传值
  14. android下拉水波纹,RecyclerView实现水波纹点击效果
  15. IO流---Reader和Writer
  16. 反思学习,做更好的自己
  17. 使用路由器实现(非常)基本的家庭网络家庭安全
  18. 用C语言编写简单的通讯录(大一课程作业)
  19. 深度学习的开胃菜——常用的机器学习知识梳理
  20. Excel中两表数据核对方法

热门文章

  1. 泛90后,需要怎样的社交产品?
  2. zeotero+oneDrive在两台设备pdf等附加文件无法同步的问题
  3. 给知更鸟主题首页加上日期和问候语
  4. Linux惊群效应详解
  5. pyechart 输出图片
  6. python读取csv求平均数_利用Python读取CSV文件并计算某一列的均值和方差
  7. 方舟服务器租贷网站,方舟租云服务器
  8. 和平精英经典模式胜率不大,看了这篇博文,相信你会有所收获
  9. 助力财务管理转型升级——宁夏烟草智能财务共享中心建设
  10. leetcode刷题笔记-数组-滑动窗口