HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

网络攻防学习笔记 Day138

穿过生命散发芬芳

无线网络安全 9月日更

微服务到底是什么?spring cloud在国内中小型公司能用起来吗?

Java架构师迁哥

【MySQL技术专题】这也许是你的知识盲区->[主从架构]的多种同步模式

洛神灬殇

主从同步 高可用架构 MySQL 数据库 9月日更

一妹子揭露美团面试中一些不愉快的事情(Java岗)

Java架构师迁哥

膜拜!“Java葵花宝典”脉脉一周狂转50w次,Github访问量破百万

Java架构师迁哥

知乎上线1小时,5w浏览量被下架的JVM全解笔记,内容太强大

Java架构师迁哥

如何看待写作这件事

QualityFocus

个人成长 写作 写作感悟

学生管理系统架构设计方案

Nico

在线JSON转flow工具

入门小站

工具

超24W字,2021最新一线大厂Java高级架构师面试题总结,共计480页

Java架构师迁哥

阿里内部不外传的50万字Java面试手册,首次开放,一天遭狂转10w次

Java架构师迁哥

阿里开源的面试全面解析,为什么会在Github一周标星63K?

Java架构师迁哥

JVM类加载器学习笔记

风翱

JVM 9月日更

学生管理系统架构设计

guangbao

阿里P8近十年的开发经验总结,卖168元,你觉得贵吗?

Java架构师迁哥

低代码平台J2PaaS即将发布开源版

J2PaaS低代码平台

低代码 开发工具 无代码

学生管理系统详细架构设计

毛先生

学生管理系统详细架构设计文档

消失的子弹

大数据 云原生 CMS

33岁公司倒闭,被迫走上大龄Java程序员求职之路

Java架构师迁哥

Github上星标85k的,图解操作系统、网络、计算机 PDF,竟是阿里的?

Java架构师迁哥

双非渣本后端,三个月逆袭字节,入职那天“泪目”了

Java架构师迁哥

双非渣本后端,三个月逆袭字节,入职那天“泪目”了

Java架构师迁哥

linux之rename命令

入门小站

Linux

覆盖80%以上Java性能调优场景,三年开发经验以下慎入

Java架构师迁哥

Github上标星80k的笔记就是diao,一个月帮我斩获8家大厂offer

Java架构师迁哥

算法有救了!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java架构师迁哥

pymssql

IT蜗壳-Tango

9月日更

白手起家之分布式搜索ES

卢卡多多

9月日更

天猫“618”亿级高并发设计实战手册,限时分享

Java架构师迁哥

架构实战营第三次作业

Geek_d18264

架构实战营

汽车行业的进化秘诀,竟在这座智慧出行乐园中……

白洞计划

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