【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Apache 软件基金会总裁:Docker 是善意的独裁者

  • 2015-04-10
  • 本文字数:2276 字

    阅读完需:约 7 分钟

Ross Gardler 是 Apache 软件基金会现任总裁,在开源技术领域拥有丰富的经验,长期致力于开源技术的推广和开源社区的治理工作。Ross Gardler 是开源项目的积极贡献者,指导了大批开发者融入开源社区理解并遵从开源社区规则。在开源社组织的一次媒体见面会中,InfoQ 有幸采访到了 Ross Gardler 先生,听他阐释了 Apache 的社区治理之道。本文根据采访内容整理而成。

没有领导者,但有驱动者

Apache 曾经调研过 200 个大型开源项目,结果发现排名前九的开源项目不管是从参与人数还是活跃度上,都是十倍于其它一百多个开源项目的,并且这几个成功的项目都是由非盈利组织治理的,而非某个厂商。随着开源项目的发展以及参与人数的增加,开源项目的社区治理就变得非常重要,所以 Apache 社区的理念一直是社区重于代码。要治理好一个社区,需要两个方面的东西,一个是法律框架,一个是治理模型。在 Apache 中,法律框架其实就是指开源许可证,许可证非常重要,它能够很好地保护代码贡献者的利益和权力。但是开源许可证只能够提供一个合法的法律框架,并不能持续推动开源项目的发展。治理模型是由一些规章流程以及文化组成的,Apache 会制定一些最为常用且最优化的社区流程,以为社区未来长期的发展找到一个最优化的发展方法或道路。流程是必须的,但是 Apache 也明白社区应该是以人为本而不是以流程为核心,所以他们并没有所谓的领导者来对社区的参与者发号施令,却有驱动者、激励者,来帮助社区的每一个人找到自己所需要的东西,从而满足需求。

不通过投票的机制来决策

在 Apache 社区中,决策是通过统一共识来决定的,而非投票机制。虽然达成共识是一个非常耗时和耗精力的过程(需要反复听取意见并讨论,也可能是争论),但 Apache 还是坚持这样做,因为他们认为投票会导致分裂。这样的做法称为“默认共识”,也就是默认大家都是为了社区共同的利益来做某一行代码的修改,而对于谁对谁错,就让代码去说话。

那么 Apache 是如何实现开源社区代码的沟通讨论呢?一个软件并不能满足所有用户的需求,所以社区可能会基于同一套开源代码,并根据自己的个性化需求开发不同的软件。但是随着衍生软件的不断更新,它们之间的共同代码可能就会越来越少,为了避免过于分化,Apache 会采用一定的措施让它们进行代码融合。假设在社区中有两种方案,第一种方案有更高的效率,但是第二种方案提供了更高的灵活性。就选择第一种方案还是第二种方案,无休止的争论可能只是浪费时间,这个时候让代码说话最合适。随着两种方案的演进,胜负自然会有,然后 Apache 再出力干涉,设法把它们融合起来。但也并不总是这样,有的时候两种方案可能永远无法再融合,这种情况也是可以接受的,也正体现了社区的多元化。

Apache 项目的组织架构

Apache 软件基金会和项目的运作是分开的,基金会主要是为项目的运行提供保障,比如法律帮助、代码托管。而各个开源项目都是独立运转的,在技术细节上他们有完全的自主权。一个典型的 Apache 开源项目,通常都有四个角色,或者四类人:第一类人就是用户。用户表达自己的需求,想要要什么功能,并提供一些反馈。第二类人就是贡献者,他们会根据实际情况来贡献代码,并解答用户的一些问题。当贡献者参与项目足够长的时间,并充分了解项目之后,他就会升级为 Committer,Committer 和贡献者是不一样的。贡献者所贡献的代码是补丁,但是要应用这个补丁,就必须经过 Committer 的同意。最后一个角色,叫项目管委会。项目每一个参与者都有表达意见的通道,但是当争论不休的时候,项目管委会就会出面做出最后的决定。

如果项目管委会被认为是违背了 Apache 之道,比如违背了大部分的项目参与方的意见,擅自作主,Apache 就可以把这个决策再升级到软件基金董事会,让董事会来做最后的裁决。

开源项目中的二八定律

纵观 Apache 下的开源项目,二八定律也是成立的:80% 的代码都是来自 20% 的贡献者。反过来也是这样,20% 的工作都是由 80% 的人来做的。在西方的开源社区中,基本上是 20% 的人做了 80% 的工作,并且这 20% 的人都是被雇佣来做这些事情的。而那些做了 20% 工作的 80% 的人,他们都是利用自己的周末、闲暇的时间来做的。

Docker 社区有善意的“独裁者”

从治理方式上来说,Docker 和 Apache 之道是不一样的,如果是在 Apache 的开源项目社区中出现争议,最终可以由 Apache 软件基金董事会来统一做最后的裁决。但如果是 Docker,他会有一个叫做善意的独裁者的角色,也就意味着你提了很多的建议,但是如果这个“独裁者”觉得不行,他一个人就可以做决定。当然他会听取社区的意见,所以应该把他叫善意的“独裁者”。这是二者最大的区别。

总体来看,在具体的执行过程中,Docker 和 Apache 的开源项目本质上是一样的,都是要促成共识。当然在极少见的情况下,如果发生了争议,Docker 可以独裁,但 Apache 不能。

如何促进开源在中国的发展

从 Apache 基金会的发展曲线中可以看到,西方的开源项目在一开始的很多年其实并没有大的突破,一直都是铺垫期,而中国现在正处在这一铺垫期。中国可以学习国外的经验从而缩短铺垫期,争取尽快进入发展期。另外,在西方的开源项目发展初期,就有爱好者参与推动它的发展,随着时间的推移,这样的人就会越来越多,大家的意识也就会改变。目前中国就缺少这样的人或者组织。

在西方的开源历史上有三个大的里程碑,第一个里程碑是开源的 MySQL 数据库;第二个里程碑是第一个达到了数十亿美金身价的开源公司 Red Hat;第三个里程碑是最近的一家基于开源的成功的创业公司 MongoDB。而在中国,很少有这样的可以借鉴的成功案例,中国需要有这样的公司或者开源项目来教育市场和用户。

2015-04-10 00:132446
用户头像

发布了 219 篇内容, 共 135.1 次阅读, 收获喜欢 190 次。

关注

评论

发布
暂无评论
发现更多内容

测试人生 | 二线城市年薪30W+,疫情之下涨薪超过100%,是怎么做到的?

霍格沃兹测试开发学社

免安装免配置环境的免费 ios 调试工具 sib 来啦

霍格沃兹测试开发学社

技术分享 | 接口测试中,请求超时该怎么办?

霍格沃兹测试开发学社

技术分享 | 接口自动化测试中,如何做断言验证?

霍格沃兹测试开发学社

技术分享 | Jenkins 节点该如何管理?

霍格沃兹测试开发学社

技术分享 | Jenkins中,如何管理用户及其相对应权限?

霍格沃兹测试开发学社

Qt | 线程 QThread

YOLO.

c++ qt 10月月更

Zadig 完成 100% 开源:开启软件交付 3.0 时代

霍格沃兹测试开发学社

技术分享 | 接口自动化测试中,文件上传该如何测试?

霍格沃兹测试开发学社

技术分享 | 接口自动化测试如何进行认证?

霍格沃兹测试开发学社

技术分享 | Jenkins job 机制该如何使用?

霍格沃兹测试开发学社

React-hooks面试考察知识点汇总

beifeng1996

React

Java数组详解

共饮一杯无

Java 数组 10月月更

专访北大荆琦:产业前沿进课堂,通过产学合作培养开源贡献者

Lily

Java中的重载和重写的区别

共饮一杯无

Java 10月月更 重载重写

SAP UI5 OData谣言粉碎机:极短时间内发送两个 Odata request,前一个会自动被 cancel 掉吗

Jerry Wang

JavaScript 前端开发 SAP UI5 ui5 10月月更

技术分享 | 接口自动化中如何完成接口加密与解密?

霍格沃兹测试开发学社

Qt | 实现动态创建多个Tab页,页中动态创建多个子部件

YOLO.

qt 10月月更 C++

通过linux-PAM实现禁止root用户登陆的方法

京东科技开发者

数据库 Linux 公有云 云主机 linux-PAM

编程语言中 null 引用的十亿美元错误趣谈

Jerry Wang

Java JavaScript SAP abap 10月月更

技术分享 | 如何使用代理配置快速定位接口测试脚本问题?

霍格沃兹测试开发学社

技术分享 | Jenkins 如何参数化job ?

霍格沃兹测试开发学社

20221013

留白的艺术

Docker load 大镜像(17G) 报错no space left on device

琦彦

Docker 10月月更 Base Device Size

技术分享 | 接口自动化如何处理 Form 请求?

霍格沃兹测试开发学社

区块链游戏dapp系统开发游戏链改模式定制

开发微hkkf5566

技术分享 | 接口自动化实战演练及测试考察点

霍格沃兹测试开发学社

西安交大谢涛:云上做实验,让计算机教学实现质的飞跃

Lily

技术分享 | 接口自动化测试,如何实现多套环境的自动化测试?

霍格沃兹测试开发学社

技术分享 | Jenkins 持续集成体系介绍

霍格沃兹测试开发学社

Grafana:灵活的配置

琦彦

配置 Grafana 10月月更

Apache软件基金会总裁:Docker是善意的独裁者_开源_小盖_InfoQ精选文章