走進(jìn)ASF系列 - 初識(shí)ASF組織架構(gòu)及治理
費(fèi)曼技巧(The Feynman Technique)
費(fèi)曼技巧是一種 “以教為學(xué)” 的學(xué)習(xí)方式,源于諾貝爾物理獎(jiǎng)獲得者,理查德·費(fèi)曼(Richard Feynman)。這個(gè)學(xué)習(xí)方法的秘訣是嘗試用最簡(jiǎn)單的語(yǔ)言說(shuō)清楚你要表達(dá)的內(nèi)容,哪怕是一個(gè)深?yuàn)W的科學(xué)理論,你也能用簡(jiǎn)單的表達(dá)方式讓5歲的孩子或者60歲的老人很容易的理解和熟記。由于我也是在上周(2020.04.03)剛剛收到的成為ASF Member的邀請(qǐng),所以《走進(jìn)ASF系列》文章與其說(shuō)是和大家分享,不如說(shuō)是和大家一起學(xué)習(xí)!
ASF 是什么?
我想“ ASF 是什么?”是一個(gè)最簡(jiǎn)單的問(wèn)題,也是一個(gè)最難回答的問(wèn)題。簡(jiǎn)單是因?yàn)槟憧梢砸匀魏我粋€(gè)角度去描述,就像盲人摸象。而困難是因?yàn)槟愫茈y用一句話就完整全面的定義“ ASF 是什么?”。所以面對(duì)這樣的問(wèn)題我的考慮是,先描述表象,再探究其細(xì)節(jié)。就像我們回答寶馬是什么,我們會(huì)說(shuō)“別摸我”,奧迪是什么?我們會(huì)說(shuō)“四個(gè)圈”。那么 ASF是什么?我想說(shuō),ASF是下面這個(gè)漂亮的羽毛 ;)
了解Logo也許是欣賞一個(gè)新事物最好的開(kāi)始。那么下一秒你將有一連串的問(wèn)題浮現(xiàn)出來(lái)?她多大了?干什么的?怎么運(yùn)作的?和我有什么關(guān)系?接下來(lái)我們慢慢道來(lái)…
與阿里同齡
Apache軟件基金會(huì)(ASF)是在美國(guó)注冊(cè)的503©3非營(yíng)利的公共慈善組織,與1999年成立。那么成立的最終目的是什么呢?ASF最核心的目的如下:
- 通過(guò)提供硬件、通訊工具以及業(yè)務(wù)基礎(chǔ)架構(gòu),為開(kāi)放式協(xié)作開(kāi)發(fā)軟件項(xiàng)目提供基礎(chǔ)。
 - 建立獨(dú)立法人實(shí)體,任何公司和個(gè)人可以向其進(jìn)行捐贈(zèng),并能夠確保這些捐贈(zèng)將用于公共利益。
 - 為個(gè)人志愿者提供避免針對(duì)基金會(huì)項(xiàng)目的法律訴訟的手段。
 - 保護(hù)應(yīng)用于其軟件產(chǎn)品的“Apache”品牌免受其他組織的濫用。
 
所以ASF是有著美好愿景和偉大使命的公益性組織。ASF和阿里巴巴一樣都成立于1999年,而且在利他方面可謂英雄所見(jiàn)略同,阿里巴巴以“讓天下沒(méi)有難做的生意”為使命, ASF則致力于開(kāi)源軟件生態(tài)的營(yíng)造,讓軟件技術(shù)能夠在全球共享,這是ASF無(wú)比耀眼的魅力所在!
逐本溯源
ASF的成立并非憑空出事,在ASF的前身其實(shí)是叫“Apache 小組”,這個(gè)小組當(dāng)時(shí)在維護(hù)由NCSA編寫的HTTPD Web服務(wù)器。從1995到1999年,由“Apache小組”所領(lǐng)導(dǎo)開(kāi)發(fā)的 Apache HTTPD web服務(wù)成為了市場(chǎng)的領(lǐng)導(dǎo)者,一直持續(xù)到現(xiàn)在,目前仍占據(jù)了市場(chǎng)65%的份額。當(dāng)年使用該服務(wù)的人越來(lái)越多,但是最初的開(kāi)發(fā)人員對(duì)該項(xiàng)目失去了興趣,并轉(zhuǎn)移到其他項(xiàng)目上,從而使用戶失去了支持。于是一個(gè)叫Brian Behlendorf的大牛在自己的計(jì)算機(jī)上創(chuàng)建了一個(gè)郵件列表,供這些用戶協(xié)作以修復(fù),維護(hù)和改進(jìn)該軟件。從1995年2月不到12位軟件工程師通過(guò)電子郵件共享代碼補(bǔ)丁開(kāi)始,到后面的有了Apache網(wǎng)站,網(wǎng)站上又托管了很多關(guān)聯(lián)項(xiàng)目(例如mod_ perl項(xiàng)目,PHP項(xiàng)目,Java Apache項(xiàng)目),這樣的情形面臨的問(wèn)題越來(lái)越多,比如,潛在的個(gè)人被法律攻擊等,進(jìn)而越來(lái)越需要一個(gè)更加協(xié)調(diào)和結(jié)構(gòu)化的組織來(lái)解決這些問(wèn)題。于是到1999年6月ASF便注冊(cè)成立了!:)
成長(zhǎng)的苦惱
隨著軟件產(chǎn)品的不斷成熟,用戶越來(lái)越多,反饋的問(wèn)題和軟件增強(qiáng)的建議也越來(lái)越多,同時(shí)參與進(jìn)行代碼修補(bǔ)的人也越來(lái)越多。問(wèn)題也隨即而來(lái),最初的幾位創(chuàng)始人根本沒(méi)有辦法處理所有的問(wèn)題,Review所有的代碼補(bǔ)丁,Merge所以的提交,那么怎么辦呢?當(dāng)時(shí)Apache成員認(rèn)為如果某位開(kāi)發(fā)者,已經(jīng)“贏得”了成為社區(qū)的一員的資格時(shí),他們就授予此開(kāi)發(fā)者對(duì)代碼倉(cāng)庫(kù)的直接訪問(wèn)權(quán)限,也就是目前我們說(shuō)的Committer,這樣不斷的增加團(tuán)隊(duì)的力量,也提高了團(tuán)隊(duì)開(kāi)發(fā)項(xiàng)目的能力,進(jìn)而更有效地維護(hù)和發(fā)展了團(tuán)隊(duì)。當(dāng)然這只是冰山一角,ASF的治理當(dāng)然不僅僅是Committer的發(fā)展了,下面章節(jié)我們進(jìn)行系統(tǒng)的介紹。
ASF治理
目前ASF擁有超過(guò)140多個(gè)跨技術(shù)范圍的項(xiàng)目,涉及350多個(gè)具體項(xiàng)目,7000+的代碼貢獻(xiàn)者,參與人員覆蓋了全球230多個(gè)國(guó)家,為保障其健康的發(fā)展必須有一套簡(jiǎn)單高效的組織架構(gòu)和治理手段。那么ASF的治理將涉及到ASF組織本身的治理和ASF對(duì)Apache網(wǎng)站所托管的項(xiàng)目的治理。
公司的治理
總的來(lái)看,ASF的治理相當(dāng)簡(jiǎn)單:由成員(Member)來(lái)選舉董事會(huì);董事會(huì)任命各種管理人員并創(chuàng)建PMCs;PMCs定期向董事會(huì)報(bào)告,大多數(shù)其他管理人員向總裁然匯報(bào),然后總裁向董事會(huì)報(bào)告。
1. 組織架構(gòu)
ASF公司治理首先要有一個(gè)完善的組織架構(gòu),和分工明確的角色職責(zé)。如下圖所示:
上面的組織架構(gòu)整體圍繞的“董事會(huì)”進(jìn)行角色構(gòu)建,董事會(huì)有主席(Chair)和副主席(Vice Char)。 公司設(shè)有總裁,副總裁,秘書(shū),財(cái)務(wù)總監(jiān),法律顧問(wèn)等職位。每種角色各肩其職。作為初識(shí)ASF的文章,我們簡(jiǎn)單了解如下宏觀的內(nèi)容即可:
- ASF 由董事會(huì)來(lái)管理,董事會(huì)由成員構(gòu)成。
 - 現(xiàn)有成員(Member)會(huì)定期提名和選舉新成員,每年提名并選舉9名董事加入董事會(huì)。
 - 董事會(huì)任命業(yè)務(wù)官員,并將特定政策或業(yè)務(wù)領(lǐng)域的責(zé)任分配給每位官員。例如,法律事務(wù)委員會(huì)副總裁負(fù)責(zé)為ASF和所有Apache項(xiàng)目設(shè)置法律政策,并與公司顧問(wèn)進(jìn)行合作。
 - 董事會(huì)任命執(zhí)行官,包括總裁,秘書(shū),財(cái)務(wù)總監(jiān)等,他們負(fù)責(zé)ASF的特定領(lǐng)域運(yùn)營(yíng)。
 - 大多數(shù)官員每月直接向總裁報(bào)告,而總裁則每月向董事會(huì)報(bào)告ASF的整體運(yùn)營(yíng)狀況。
 - 基礎(chǔ)設(shè)施副總裁向總裁匯報(bào),并對(duì)基礎(chǔ)設(shè)施團(tuán)隊(duì)的運(yùn)營(yíng)進(jìn)行宏觀監(jiān)督。在團(tuán)隊(duì)中,帶薪的基礎(chǔ)設(shè)施 管理者角色有助于管理日常操作,帶薪人員確定工作優(yōu)先級(jí),并維護(hù)所有Apache項(xiàng)目中使用的服務(wù)。
 
那么這些角色是如何產(chǎn)生的呢?ASF還需要一套選舉任命的機(jī)制來(lái)保證整個(gè)組織的健康運(yùn)行。
2. 選舉和任命
董事會(huì)負(fù)責(zé)創(chuàng)建并更新項(xiàng)目管理委員會(huì)( PMCs )。董事會(huì)只是批準(zhǔn)孵化器的合理構(gòu)建請(qǐng)求(畢業(yè)成為 TLPs )或來(lái)自 PMCs 自身(添加或刪除 PMC 成員)的請(qǐng)求。在每種情況下,向董事會(huì)建議進(jìn)行的變更都已經(jīng)由相關(guān)的 PMC 完成了投票。如下圖所示:
- 董事會(huì)(Board):董事會(huì)由9名懂事組成,負(fù)責(zé)管理和監(jiān)督ASF的各種事物。包括人員,資產(chǎn)(資金,知識(shí)產(chǎn)權(quán),商標(biāo)和支持項(xiàng)目所需要的基礎(chǔ)設(shè)施)以及為項(xiàng)目分配資源。
 - 項(xiàng)目管理委員會(huì)(PMC):項(xiàng)目管理委員會(huì)由董事會(huì)決議設(shè)立,負(fù)責(zé)具體一個(gè)項(xiàng)目的事物管理。每個(gè)PMC由至少一名ASF官員組成,并指定一名成員為主席。每個(gè)PMC中的主席就是ASF在各個(gè)項(xiàng)目中的眼睛和耳朵,對(duì)ASF至關(guān)重要。當(dāng)然PMC負(fù)責(zé)發(fā)展各自新的PMC成員和發(fā)展項(xiàng)目的Committer。
 - 各種VP:ASF有這種VP,他們大多數(shù)官員每月直接向總裁報(bào)告,而總裁則每月向董事會(huì)報(bào)告ASF的整體運(yùn)營(yíng)狀況。
 
也許這些內(nèi)容對(duì)于剛剛了解ASF或者剛剛加入ASF開(kāi)源建設(shè)的同學(xué)簡(jiǎn)單了解一下即可,因?yàn)樗坪蹙嚯x還很“遙遠(yuǎn)”。(加引號(hào)原因是,我認(rèn)為是 思想認(rèn)為 的遙遠(yuǎn),不是真的那么遠(yuǎn))。接下來(lái)我們看看和具體項(xiàng)目貢獻(xiàn)者密切相關(guān)的內(nèi)容 - ASF項(xiàng)目治理。
項(xiàng)目的治理
每個(gè)項(xiàng)目都由項(xiàng)目的PMC進(jìn)行獨(dú)立管理,PMC以Apache的方式,遵循由所有官員為所有項(xiàng)目設(shè)置的一些核心原則。如下圖所示:
上圖我以Apache Flink項(xiàng)目為例勾勒了項(xiàng)目治理的概要圖。每個(gè)PMC都由ASF董事會(huì)進(jìn)行管理,每個(gè)PMC都會(huì)負(fù)責(zé)制定自己項(xiàng)目的技術(shù)方向。
- PMC每季度直接向董事會(huì)報(bào)告一次。董事會(huì)對(duì)PMC進(jìn)行監(jiān)督,以確保PMC健康發(fā)展,順利的管理社區(qū),確保PMC遵守Apache的原則。項(xiàng)目的技術(shù)方向由PMC指定,董事會(huì)不對(duì)項(xiàng)目提供技術(shù)治理。
 - 每個(gè)PMC的主席都是該項(xiàng)目的副總裁,因此也是ASF的官員。主席的主要職責(zé)是確保項(xiàng)目報(bào)告全面,并提交到董事會(huì)。
 - PMC對(duì)軟件版本發(fā)布進(jìn)行投票。PMC進(jìn)行適當(dāng)?shù)陌l(fā)布治理,進(jìn)而確保了所有的源代碼版本發(fā)布都是ASF官方行為。
 - PMCs為項(xiàng)目提名并選舉新提交者(Committer)。PMCs還負(fù)責(zé)提名并投票新的PMC成員,然后PMCs向董事會(huì)匯報(bào)建議的變化。
 - Apache孵化器(Incubator)是一種特殊的(I)PMC:它的工作是指導(dǎo)新建立的Podling社區(qū),以幫助他們學(xué)習(xí)Apache Way。在每個(gè)Podling對(duì)他們的軟件發(fā)布進(jìn)行投票后,IPMC成員也對(duì)該P(yáng)odling的發(fā)布過(guò)程進(jìn)行監(jiān)督和投票,以確保Podling逐漸成長(zhǎng)為一個(gè)合格的Apache項(xiàng)目。
 - 根據(jù)政策,只有個(gè)人可以充當(dāng)會(huì)員,提交者(Committer)或PMC成員(Member)或管理人員。這是ASF和Apache項(xiàng)目保持其獨(dú)立性的一種方式。
 
同時(shí)每個(gè)項(xiàng)目都有不同的參與角色,比如:用戶(Users),貢獻(xiàn)者(Contributors),提交者(Committers),新的PMC Members等等。不同角色的職責(zé)如下:
- 用戶(Users) - 就是使用項(xiàng)目潤(rùn)君的的大眾,他們以錯(cuò)誤報(bào)告和功能建議的形式向開(kāi)發(fā)人員提供反饋進(jìn)而為項(xiàng)目做貢獻(xiàn)。
 - 貢獻(xiàn)者(Contributors) - 就是開(kāi)發(fā)人員,以寫代碼或?qū)懳臋n的形式為項(xiàng)目做貢獻(xiàn)。開(kāi)發(fā)人員可以多種方式共享社區(qū),比如參加者郵件列表討論、提交代碼補(bǔ)丁、提交文檔等等。
 - 提交者(Committers) - 提交者是一批特殊的貢獻(xiàn)者,他們是擁有代碼倉(cāng)庫(kù)寫操作權(quán)限的開(kāi)發(fā)者。
 - PMC 成員(Member) - 項(xiàng)目管理委員會(huì)(PMC)成員,是由在項(xiàng)目的開(kāi)發(fā)中表現(xiàn)突出的提交者(Committers)選舉出來(lái)的,他們擁有寫入代碼倉(cāng)庫(kù)的權(quán)限、擁有社區(qū)相關(guān)事務(wù)的投票權(quán)、以及有權(quán)提名新的PMC成員和Committer的權(quán)利和職責(zé)。
 
ASF 董事會(huì)現(xiàn)狀
今年ASF年度成員會(huì)議, 在3.31~4.2期間舉行, ASF 董事會(huì)選情相當(dāng)激烈,有16為ASF Member參與競(jìng)選。競(jìng)選結(jié)果是去年的九席董事?lián)Q了七位,二位董事 Craig Russell 和 Shane Curcuru 獲得了連任。 目前同時(shí)會(huì)成員如下:
- Shane Curcuru (連任董事)
 - Bertrand Delacretaz(原董事)
 - Roy Fielding(原董事)
 - Niclas Hedhman(新任董事)
 - Justin Mclean(新任董事)
 - Craig Russell (連任董事)
 - Sam Ruby(原董事)
 - Patricia Shanahan (新任董事)
 - Sander Striker (原董事)
 
2020 新晉ASF Member
上面的競(jìng)選和任命章節(jié)已經(jīng)介紹過(guò),ASF一年一度的成員會(huì)議中,不僅僅會(huì)選舉9名董事成員,也會(huì)提名和投票新的ASF Member 。
(此處省略。。。等待官宣)
恭喜他們(當(dāng)然也祝福一下我自己的幸運(yùn))!據(jù)最新統(tǒng)計(jì)(2020.04.06) ASF Member 全球有765名,華人有40名,其中在中國(guó)的有22人。
ASF 一張圖
對(duì)于初識(shí)的用戶來(lái)說(shuō),上面的內(nèi)容也許太多了,記住一個(gè)Logo容易,記住一張圖似乎比上面的文字要簡(jiǎn)單許多:)
ASF金字塔描述了不同角色的群體特征,越上面人群越小,但對(duì)ASF肩負(fù)的責(zé)任越大,越下面人群越大,但對(duì)ASF的責(zé)任越小,參與越容易! 記住 “ASF是什么?” 從 羽毛 Logo開(kāi)始,參與ASF貢獻(xiàn)從 用戶 開(kāi)始。
ASF 一句話
圖可以描述表象,文字可以表述內(nèi)涵,開(kāi)篇的羽毛代表了ASF,但怎么描述這個(gè)漂亮的羽毛呢?“ASF是一個(gè)與阿里巴巴同齡(成立于1999年),有完整的組織(董事會(huì))架構(gòu)管理,以軟件(140個(gè)領(lǐng)域)技術(shù)全球(覆蓋230個(gè)國(guó)家)共享為使命的公益組織”。
小結(jié)
本篇是《走進(jìn)ASF系列》的第一篇,我努力嘗試在我自己身上體驗(yàn)“費(fèi)曼技巧”,從概要介紹了什么ASF,進(jìn)而推進(jìn)介紹ASF組織架構(gòu),ASF公司治理和項(xiàng)目治理,意在讓 想要 或 剛剛 參與ASF貢獻(xiàn)的同學(xué)對(duì)ASF有一個(gè)初步認(rèn)知。最后介紹了目前ASF董事會(huì)成員和2020年新晉的中國(guó)ASF Member。同時(shí),為了方便大家記憶,以一張圖,一句話的方式收尾本篇內(nèi)容。
作者介紹
本人孫金城,淘寶花名“金竹”,阿里巴巴高級(jí)技術(shù)專家。2011年加入阿里,在2016年開(kāi)始ASF社區(qū)貢獻(xiàn),目前是 ASF Member, PMC member of @ApacheFlink and a Committer for @ApacheFlink, @ApacheBeam, @ApacheIoTDB。
【本文為51CTO專欄作者“金竹”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】



















 
 
 










 
 
 
 