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