歡迎您光臨本站 登入註冊首頁

Apache 軟體基金會是如何運作的

←手機掃碼閱讀     admin @ 2020-03-24 , reply:0

本文將會以概述的形式為讀者提供 Apache 軟體基金會的一切內容,相信一定是您一直以來都存有疑問,但還沒有來得及細問的內容。涵蓋:member 與 committer 的區別、誰決定什麼事、選舉是如何進行的、基礎設施又是如何工作的、董事會又是什麼、什麼是PMC、孵化器背後的哲學思想又是什麼、以及ASF是如何處理多年以來新項目和貢獻者的驚人增長所帶來的挑戰。本文將帶你走近 Apache 軟體基金會的幕後,一探其背後的運作機理。

作者:適兕

原文出處:https://www.apache.org/foundation/how-it-works.html

轉載自 ALC Beijing 公眾號

Apache 軟體基金會是什麼?

Apache 軟體基金會 是美國註冊的503©3 的非營利的公共慈善組織,於1999年成立,目的主要有:

1.通過提供硬體、溝通工具以及業務基礎架構,從而為開放式協作開發軟體項目提供後盾。

2.創立獨立的法律實體,這樣就可以接受個人或公司的贊助,並能夠確保這些資源將用於公共利益。

3.為個人志願者提供避免針對基金會項目的法律訴訟。

4.保護「apache」的品牌,適用於其軟體產品,免遭其他組織濫用。

敬告讀者,以下內容將會是乾巴巴枯燥的事實說明,但是相信很多人對於Apache還是保持好奇的,這一切是如何發生的呢?它的細節究竟是怎麼回事? 不過不要著急,讓我們先來回味一小段歷史。

Apache 軟體基金會簡史

基金會是在1999年創立的,當時只有幾個人,他們給自己起了個名稱叫做:「Apache 小組」,之所以這麼叫,是因為若干年前他們為了維護和支持當年由NCSA所開發的 HTTPD web 服務。

當年的情形是這樣的,HTTPD web服務軟體是以自由的方式向大家提供的,不僅包括源代碼,還包含一份允許人們自由的修改並進行二次發行的許可協議,但是隨著時間的流逝,當年的開發者漸漸的轉移了興趣,開始去忙其他事情了,結果導致的局面就是項目有用戶,但是沒有人支持。

這時開始有一些用戶交換彼此對軟體的修復(稱之為」補丁」),以及如何修復問題和改進代碼的信息,這時,Brian Behlendorf 就在自己的機器上創建了一個郵件列表,從而讓大家可以協作去修復bug、維護和改進 HTTPD web服務。

之所以選擇 「Apache」 這樣一個名稱,主要是對美國原住民一個部落的尊敬,Apache部落以其在戰爭策略方面的卓越技能和無盡的耐力而聞名於世。不過很有意思的是,它也是一個雙關語,」a patchy web server」 即一個修修補補的web服務,但是,說實話,這並不是大家的初衷。就這樣,過了沒有多久,這些開發和維護Apache軟體的人們就自稱為」Apache 小組」了。

從1995到1999年,Apache HTTPD web服務,這個由「Apache小組」所領導開發的web伺服器軟體成為了市場的領導者,一直持續到現在,即使是現在也佔據了市場65%的份額。

但是,世界從未停止發展,隨著網路規模的增長,相應的經濟利益也得到了發展,Apache 開始託管一些新的相關的項目(如mod_perl項目、php項目、java項目等),越來越需要一個更加連貫和有組織的組織來防範潛在的法律攻擊。於是,Apache 軟體基金會應勢而生。

精英主義

Apache web 伺服器,並不像和其它的在開源許可協議下開發的軟體一樣,它最初並非是由某位「英雄」(諸如Linux內核、Perl或Python語言)獨立發起的,而是由幾個擁有共同想法、彼此了解的人,通過交換信息、修修補補、不斷接受各方建議而創建的。

隨著小組開始開發他們自己的軟體版本,拋棄了原來的 NCSA 的版本,越來越多的人被吸引並開始提供幫助,首先通過發送很少的補丁或建議,或者在郵件列表中回複電子郵件,後來則可以提供更重要的貢獻。

當小組認為某位開發者,已經「贏得」了成為社區的一員的資格時,他們就授予此開發者對代碼倉庫的直接訪問許可權,這樣不斷的增加團隊的力量,也提高了團隊開發項目的能力,進而更有效地維護和發展了團隊。

我們把這個基本原則稱為「精英主義」:從字面上看,這是政府的主要優勢或常見稱呼。

值得注意的是,這個模式發展的非常好,沒有產生太多的摩擦,這是因為和其它的方式不同,在這裡權力並沒有集中和變得保守,在 Apache 團隊中,新人被視為希望提供幫助的志願者,而不是那些想竊取職位的人。

因為沒有那些讓人迷惑的資源(金錢、能量、時間),所以Apache團隊非常希望有新來的人能夠幫忙,他們只是篩選他們認為足夠完成這項任務的人,並匹配與他人合作所需的友好態度,特別是在有分歧的時候。

在接下來,我們來看看ASF的組織架構,接著我們再來梳理一下角色。

基金會的組織架構

隨著Apache Web Server的市場份額和流行度開始逐步增長,由於其技術優勢和項目背後的社區的開放性,人們開始圍繞 Apache web server 創建了一些周邊的項目。由於他們本身受到了一直以來的社區文化影響,這些周邊的項目也採用了相同的社區管理模式。

所以,在創建ASF時,雖然有幾個各自獨立的社區,每個社區都關注web服務的不同的問題,但是這些社區都一致同意:同時在溝通和流程上,建立一個共同的目標,遵循同樣一套文化法則。

這些獨立的社區被稱為「項目」,雖然相似,但每個社區都表現出很小的差異,這使得它們變得特別。

為了減少摩擦,並鼓勵多樣性的發展,ASF並沒有選擇單一的強迫性的所謂的高級文化,所以在Apache的世界里,每個項目都是自己的中央決策機構。每個項目都是自己軟體開發的權威,並在設計自己的技術章程和自己的治理規則方面有很大的自由度。

就這樣走過很多年,原生的Apache小組的文化影響力非常之深且廣,以至於現在的各社區之間依然具有極高的相似度。

基金會由以下實體進行管理:

  • 基金會由董事會來管理,董事會由成員構成。

  • 項目管理委員會(PMC)管理具體的項目,他們由提交者構成。(請注意,每個成員根據定義也是提交者)

  • 由董事會任命的公司的各種主管人員在基金會的特定領域(法律,品牌,籌款等)制定政策。

1 董事會(Board)

董事會負責根據基礎章程管理和監督公司的業務和事務。這包括管理基金會的資產(資金,知識產權,商標和支持項目所需要的基礎設施)以及為項目分配資源。

但是,有關Apache項目的內容和方向的技術決策權被分配給各個項目管理委員會。

董事會目前由九名成員組成,由基金會成員選出。細則沒有規定董事會應該具備的高管人數,但從歷史上看,這是第一次的董事會的人數,從未改變。董事會每年都會進行選舉。

董事會頁面提供了更多信息,如現任董事名單、會議日程和過去的會議記錄。

2 項目管理委員會(PMC)

項目管理委員會由董事會決議設立,負責一個或多個社區的積極管理,這也由董事會決議確定。

每個PMC由至少一名ASF官員組成,他們將被指定為主席,並可能包括一個或多個ASF的其他成員。

PMC的主席由董事會和ASF的管理人員(VP)來任命,主席對董事會負主要責任,並有權制定PMC負責的社區日常管理的規則和程序,包括PMC本身的組成。進一步的討論,請移步為什麼主席均是管理人員。

ASF章程定義了PMC和主席的使命,通過過去的郵件列表的信息可以獲得進一步的澄清:這裡和這裡。

從基金會的角度來看PMC的作用是監督。PMC的主要作用不是撰寫代碼,也不是審核代碼,而是要確保所有的法律問題得到解決、程序是被遵循的、每個發布的版本都是完全社區化的。這是我們訴訟保護機制的關鍵所在。

其次,PMC的作用是促進整個社區長期和健康的發展,並確保獲得一定的平衡,以及獲得同行們的好評,並能夠讓協作進行下去。在ASF內部,我們所擔心的是社區被少數人所把控或操控,因為這樣對於社區的長期發展來講是,無論從健壯性還是穩定性都是有害的,不論是從代碼的角度,還是社區本身的結構來講。

我們堅信角色的作用,你在ASF里的角色,是由你自己的個人來決定的,且是由ASF的同伴所授予的,它與你的工作或現任僱主或公司無關。

ASF 對於 PMC 是有著很高的標準的。作為一名PMC,尤其是PMC主席的話,其實就是ASF董事會的「眼睛」和「耳朵」,所以依賴並信任這個角色所提供的法律監督。

董事會有權隨時通過決議終止PMC。

在Apache 開發者信息頁面有更多關於PMC工作的情況,當然你也可以瀏覽目前Apache所有的頂級項目。

3 管理人員

Apache 軟體基金會的管理人員 負責監督基金會的日常事務,管理人員由董事會選舉產生。

角色

在每個 Apache 項目的社區中,精英制意味著需要區分不同的角色:

用戶

用戶 就是使用 Apache 軟體的大眾。他們通過以錯誤報告和功能建議的形式向開發人員提供反饋,從而為 Apache 項目做出貢獻。用戶還可以通過在郵件列表中幫助其他用戶來為項目作出貢獻。

開發者

開發人員 就相對的很好理解,就是以寫代碼或寫文檔的形式為項目做貢獻的人們,他們有更加多樣的參與項目的形式,如積極的在開發者郵件列表中、進行討論、提交代碼補丁、提交文檔、建議、乃至批評。開發人員通常也被稱之為 貢獻者

提交者

提交者 是指擁有代碼倉庫寫操作許可權的開發者,而且他們也簽署了貢獻者許可協議(CLA)文件,他們擁有以apache.org為後綴的郵箱地址,他們在提交補丁的時候,不需要依賴其他人,實際上他們可以為項目做一些較小的短期決定。項目管理委員會成員(PMC)可以同意(其實是默認)並批准某些開發者為提交者,可以是永久性的,當然PMC也可以拒絕某開發者成為提交者。這裡請注意一點:是PMC做出決定,而不是某個獨立的成員。

項目管理委員會成員

PMC 成員是由在項目的開發中表現突出的開發者或提交者選舉出來的優勝者,他們擁有寫入代碼倉庫的許可權、以apache.org為後綴的郵箱地址、擁有社區相關事務的投票權、以及有權提出積極的用戶參與提交。PMC 是作為其項目走向的唯一的實體,再沒有其他團體可以參與。特彆強調的是,PMC必須對其項目軟體產品的正式發布進行投票。

項目管理委員會主席

項目管理委員會(PMC)的主席由董事會從PMC成員中任命。PMC 是整個項目的控制和領導的實體。而主席的作用就是充當董事會和項目之間溝通的橋樑,當然,作為項目管理委員會主席還有其它的一些特定的職責。

ASF 成員

ASF 成員 是由現在的成員所提名,然後根據對基金會的推進和演化來進行選舉而定。ASF 的成員關注的是Apache 軟體基金會本身,這通常通過項目相關和跨項目活動的根源來證明。從法律上講,成員是基金會的「股東」,也是業主之一。他們有權選舉董事會,成為董事會選舉的候選人,並提出成為會員的提議者。他們也有權提出一個新的孵化項目(我們稍後會看到這意味著什麼)。ASF 成員通過郵件列表和年度會議來進行日常的工作協調。

項目管理和協作

Apache 的項目是基於共識的協作流程來進行管理的。Apache 是沒有層級結構的,當然了,不同的貢獻者群體在組織中擁有不同的權利和責任。

由於指定的項目管理委員會有權制定自己的自治規則,因此對於項目管理委員會如何運行項目及其所在社區沒有單一的願景。

同時,雖然存在一些差異,但所有項目都有一些相似之處:

溝通

溝通是通過郵件列表來完成的。這也就意味著,所有的「虛擬會議室」都是非同步進行的,而基於此是因為當開發者們分佈於世界各地時,就顯得格外的重要。(而對於Apache的各個項目來講,來自全球各地是常見的情況)

有一些項目還額外的使用,可以同步進行溝通的工具,(如IRC或其它的一些即時聊天工具),使用語音溝通的方式非常罕見,這通常是因為成本和語言上的障礙(言語比書面文本更難理解)。

一般來說,非同步的溝通更重要,因為它可以創建歸檔(用於搜索和查閱),並且更加重要的是非同步的通信方式符合社區志願者的本性。

文檔

每個項目都有其自己所負責的項目站點,更多信息可訪問ASF 基礎設施——那裡有提交導師、開發者、PMC等相關的信息。

決策

項目通常是自我進行管理的,即由志願者來驅動去做一些工作。這就是通常所說的」do-ocrac」模式,意即自己選擇任務自己來完成,沒有人分配也沒有人監督。它通常運轉良好!

當需要協調的時候,最終的決定採用的是較懶惰的共識法:一些沒有反對票的正面投票就足夠了。

投票的形式有下面三種:

  • +1 —— 表示同意的投票

  • 0 —— 表示棄權,沒有意見

  • -1 —— 表示反對

當投反對票的時候,要明確提出替代方案,以及投反對票的詳細解釋。社區然後試圖就解決問題的備選提案達成共識。在絕大多數情況下,此方式可以解決導致投票反對的擔憂。

此過程我們稱之為:「達成共識」,而且我們認為這是一個讓社區健康運轉的重要標誌。

原則(哲學思想)

雖然沒有明確的官方認可或指定的,但是以下六條原則是基金會背後的哲學的核心理念。這也就是被眾人所稱頌的」Apache之道」:

  • 協作來進行軟體開發
  • 商業友好的標準許可證
  • 要保持一貫的生產高質量的軟體
  • 尊重、誠實、以技術會友
  • 忠實執行標準
  • 安全性作為強制性功能

所有的 ASF 的項目都遵循這六條原則,同樣,Apache 的項目需要獨立治理,儘可能遠離不合適的商業影響。

運營

Apache 所有的項目均是由志願者組成的,沒有人(哪怕是Apache成員或管理員)是由基金會付出報酬的,或許有一些提交者是由獲得報酬來進行貢獻的,但是那不是Apache軟體基金會所付的。付報酬的一方是那些使用Apache軟體的企業,希望軟體能夠更加的健壯,從而進行一定的改進。

鄭重提示:Apache 是承擔了一些服務,如賬戶、新聞、媒體關係以及基礎設施管理等。

ASF 的個人組成原則

所有的ASF的參與成員:董事會席位、管理人員、提交者、以及成員,統統都是獨立的個人,這是ASF的一個優勢,隸屬關係不會影響個人貢獻。

除非他們另有具體說明,任何他們在郵件列表中提及的事情都由他們自己來完成。這完全是個人的獨立觀點,代表ta個人,而不是作為發給ta薪水的公司的代表,甚至也不能是 ASF 董事的觀點。

其實,所有的ASF成員都有各自的角色:特別是理事會,管理人員和PMC主席。他們有時需要談論一個政策問題,所以為了避免表達個人意見,他們會說他們正在以他們的特殊身份說話。但是,大多數情況下這不是必要的,因為個人意見通常很有效。

有些人通過在他們的電子郵件中使用特殊頁腳來聲明自己的角色,也有一些人則是將他們的陳述用特別的引號括起來,也有一些人使用以apache.org後綴的郵件地址,儘管他們可以使用個人的郵箱,最後一種方法並不被提倡,因為有很多人擁有apache.org後綴的郵箱。

關於保密和公開討論之間的平衡

我們儘可能在公開場合進行儘可能多的討論,這鼓勵開放,提供公共記錄,並激勵更廣泛的社區。

但是有時候內部私人郵件列表是必要的,未經名單明確許可,您絕不能在公開場合泄露這些信息。也不要在私人和公共清單之間複製電子郵件(不需要抄送)。這樣的事件將超出對電子郵件禮節的正常需求,並且會丟失信任。它可能會產生嚴重的後果,造成不必要的混淆和不明智的討論。

私人名單通常只用於與個人有關的事務(如新提交人的投票)以及需要保密的法律事務。

基金會項目孵化

為了新的項目能夠順利的創建,ASF 專門設立了孵化器這樣一個工程,用來負責幫助新項目能夠順利的加入 ASF。

由於精英規則在 ASF 是自底向上的運轉著,對於這樣的治理方式的長期穩定是至關重要的,在項目的起步階段時所參與的貢獻者是必須明白這一點的,同樣,ASF對其項目期望的合作和開放態度具有相同的哲學態度。

孵化器的職責包括如下內容:

  • 過濾關於創建新項目或子項目的意向書

  • 幫助創建項目及其所需的基礎設施

  • 監督和指導孵化的社區,已讓他們實現開放的優秀文化氛圍

  • 評估孵化項目的成熟度,或者將其提升為官方項目/子項目的狀態,反之若結論是失敗的,則通過退役來解決。

必須指出的是,孵化器(就像董事會)不會根據技術問題執行過濾。這是因為基金會尊重和建議各種技術方法。它並不擔心創新,甚至會允許在功能上重疊的項目之間進行內部的相互競爭。

孵化器是基於那些成為成功的精英群體的可能性來過濾項目的,項目孵化的最基本的需求是:

  • 一個可用代碼倉庫 —— 多年以來,也是經歷了各種失敗之後,基金會漸漸的開始明白了一件事:如果沒有一個初始可用的代碼倉庫,想要啟動一個社區基本上非常困難的。 其實這個道理很簡單,那就是你連代碼倉庫都沒有,開發人員想要了解你都無從下手,另外,僅僅依靠談論想法,那麼摩擦一定多得不得了,會在早期就將社區的氛圍給破壞掉。

  • 有意的將包含有版權的軟體和知識產權捐贈給基金會 —— 這為基金會獲得不可撤銷的和永久的權利來重新分配和處理代碼提供了條件,而毋須擔心被其本身或其用戶鎖定。

  • ASF成員或官員所支持 —— 此人將擔任主要的導師,為項目提供指導,幫助處理日常的細節,以及與孵化器 PMC 保持聯繫。

決定項目的孵化期的長短主要是看:

  • 該項目能夠增加其貢獻者的多樣性

  • 能夠很好的按照基金會制定的精英規則運轉

這一切看起來實現起來並沒有那麼的難,但是請一定要記住,在全部都是志願者,並且有著苛刻晉陞條件的環境中,吸引新的貢獻者可不是那麼容易的事情。

貢獻者的多樣性非常之重要,主要由下面兩條原因:

  • 它為項目的開發提供了長期穩定性:事實上,那些來自同一家公司或組織的開發者同時一起離開項目的幾率,要遠遠大於各個個體分散在不同的公司或組織的。

  • 它提供了更多的技術願景:這可以更好地保證遵守環境約束以及滿足用戶的需求,進而更有效地把握軟體的實際使用情況。

基金會其它事項

與孵化器一樣,基金會還另外有幾個跨基金會的項目,舉例來說,ASF 並沒有實際的辦公場所或大樓,它是一個虛擬的實體,僅僅存在於互聯網,而讓著一切能夠正常運行的基礎設施均是由基礎設施團隊來運維和管理的。

這些跨基金會的項目的詳細描述,請移步基金會頁面。

ASF 也託管著整個基金會的郵件列表,同樣了解更多詳情,請移步郵件列表頁面。

奮鬥仍在繼續......

Apache 軟體基金會已經運營了21年了,事實證明,Apache 軟體基金會代表了在組織結構和靈活性之間找到平衡的開放性組織的最佳實踐之一。我們從200位貢獻者持續增長到7000以上,而且這個數字還在持續的增長,我們創建了多個在其相應市場上處於領先地位的軟體產品,我們也在開放性和經濟可行性之間找到了很好的平衡點,而目前我們贏得了大家的尊重和認可,他們包括某個獨立的個人,也包括某些大型的跨國公司,我們也希望能夠為未來的企業、政府、教育和其他軟體基金會提供靈感。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/114318/how-the-asf-works
Apache 軟體基金會是如何運作的已經有21次圍觀

http://coctec.com/news/soft/show-post-228147.html