【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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:132442
用户头像

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

关注

评论

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

Linux学习之Ubuntu 20中OpenResty的nginx目录里内容和配置文件

百度搜索:蓝易云

nginx Linux ubuntu openresty LuaJIT

Microsoft Remote Desktop Beta for Mac(微软远程连接工具)v10.9.6 (2189)激活版

影影绰绰一往直前

Sentieon | 每周文献-Benchmark and Method Study-第十八期

INSVAST

基因数据分析

Sentieon | 每周文献-Multi-omics-第二十期

INSVAST

基因数据分析

Sentieon | 每周文献-Tumor Sequencing-第二十五期

INSVAST

基因测序 基因数据分析

实时交互数字人,可对接语言大模型!

青否数字人

数字人

Vim如何清空文件

百度搜索:蓝易云

vim 云计算 Linux 运维 云服务器

CMake调用第三方库的两种方法

百度搜索:蓝易云

云计算 Linux 运维 云服务器 cmake

Kong Gateway Enterprise 3.6 实现飞跃式发展

Gingxing

Gateway kong API网关 消息网关

Sentieon | 每周文献-Population Sequencing-第二十四期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Gene Editing-第二十八期

INSVAST

基因测序 基因数据分析

Magic Disk Cleaner for Mac(磁盘垃圾清理工具)v2.6.2激活版

影影绰绰一往直前

Ghost Buster Pro for mac(苹果电脑内存清理专家)v2.5.1激活版

影影绰绰一往直前

架构误区系列20:不当的聚合

agnostic

架构设计 服务设计

Sentieon | 每周文献-Liquid Biopsy-第二十一期

INSVAST

基因数据分析

快手商品详情数据接口解析和封装

tbapi

快手 快手商品详情数据接口

Golang动态高效JSON解析技巧

俞凡

golang

如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)

sysin

macos boot esxi

数字永生SaaS系统源码独立部署!

青否数字人

数字人

Pixologic ZBrush 2024 for Mac(三维数字雕刻软件)v2024.0.2中文激活版

影影绰绰一往直前

Sentieon | 每周文献-Population Sequencing-第二十三期

INSVAST

基因数据分析

Sentieon | 每周文献-Agrigenomics-第二十六期

INSVAST

基因测序 基因数据分析

Cinema 4D 2024 for mac(c4d 2024)v2024.3.1中文激活版

影影绰绰一往直前

Golang高级微调技术

俞凡

golang

Sentieon | 每周文献-Benchmark and Method Study-第十九期

INSVAST

基因数据分析

OmniZip - Universal Extractor Pro for Mac(全能解压缩工具)v2.1.6激活版

影影绰绰一往直前

Sentieon | 每周文献-Clinical Trial-第二十二期

INSVAST

基因数据分析

Sentieon | 每周文献-Epidemiology-第二十七期

INSVAST

基因测序 基因数据分析

数字人源码交付,一次购买终身使用!

青否数字人

开发一款与咪咕视频类似的体育直播平台,需要投入多少费用呢?

软件开发-梦幻运营部

App Tamer for Mac(CPU优化电池管理工具)v2.8.3激活版

影影绰绰一往直前

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