開源引路人:我的Apache Mentor之路

開源引路人:我的Apache Mentor之路

視頻 | 二叉樹團隊

姜寧,華為開源能力中心技術專家,目前在華為負責 ServiceComb 開源項目。前紅帽軟件首席軟件工程師,在企業級開源中間件開發方面有十餘年經驗,有豐富的 Java 開發和使用經驗,函數式編程愛好者。從 2006 年開始一直從事 Apache 開源中間件項目的開發工作,先後參與 Apache CXF,Apache Camel,以及 Apache ServiceMix 的開發。對微服務架構,WebServices,Enterprise Integration Pattern,SOA, OSGi 均有比較深入的研究。

2000 年,本科畢業的姜寧來到當時還很荒蕪的西二旗,去華為大廈面試,後來因為念研究生就沒有選擇去華為。2005 年,在西二旗的海納軟件(IONA)工作的姜寧開始接觸開源項目。那時西二旗剛剛開始發展,政府也支持軟件園的建設,這裡聚集了很多科技公司,其中不少是衝著前三年租辦公區免租金來的。IONA 沒有熬過頭三年,但是開源背景把姜寧帶到了紅帽,在頂級開源公司工作了幾年。2017 年,姜寧又回到西二旗,進入了華為。

感覺是繞了一個圈。西二旗現在聚集了很多核心軟件公司,也有了硅谷的氛圍,這可能就是軟件互聯網行業發展的一個趨勢吧,相信你們以後應該也會有很多跟西二旗接觸的機會。


開源引路人:我的Apache Mentor之路


姜寧參與開源的經歷跟大家不太一樣,是直接走的公司流程。2006 年時,IONA 有個項目要開源,姜寧就輕鬆成為了一個初始 committer,開始接觸 Apache 軟件基金會(ASF)。08 年時在 Apache Camel 項目中,姜寧被選舉成為 committer, 開源之路開始走順了。後來又參與了很多 Apache 項目,開始 mentor 別人,直到有一天收到 ASF 的信,邀請姜寧成為 Apache member。

我填完(申請表)之後很高興,這相當於是 Apache 對我的一個認同。

採訪過程中當姜寧說到這裡的時候,我們仍然能從他眼裡的神采感受到他的喜悅。

開源引路人:我的Apache Mentor之路


姜寧說,其實開源是一個圈子。社區、基金會有自己做事的方法和流程。參與開源社區,不斷地認識不同項目的負責人,瞭解開源社區的運作,才算融入了開源的圈子。而沒有進入開源圈子的人,很難靠自己把一個項目培養起來。

早些年的時候 ASF 裡面國內的 member 比較少,參與孵化的項目也不多。作為中國人,姜寧很願意幫助來自中國的項目在 ASF 裡成長孵化。

所以後來華為就找到我,因為華為有一個微服務的項目想進入 Apache。剛開始的時候這個項目還沒有起名字,後來我們給它起了一個名字叫 ServiceComb。service 就是服務嘛,comb 有蜂巢的意思,意味著微服務就是由很多很小的東西拼在一起的。


開源引路人:我的Apache Mentor之路


從一個初始 committer 到項目 maintainer 再到 mentor,在開源社區多年的經歷和多種角色的變換,讓姜寧感覺到開源社區很像武俠小說裡的江湖氛圍:mentor 協助項目孵化,把項目歸類,跟項目和基金會的董事層溝通,這個過程就像武林中立一個山頭帶一群人成長;GitHub 上大家通過 pull request 交流則像大俠之間相互切磋武藝。而在社區裡大家都是主動、自願地展示自己的能力,正如漫威電影裡的臺詞一樣,“with great power comes great responsibility",這一點也很像武林大俠的俠義精神。所以在開源社區中,“人際關係很重要,人與人之間的交互很有江湖氛圍。”

從 committer 到 member,再到 mentor,其實也是一個不斷成長的過程。

一個開源項目的 maintainer 需要審核項目貢獻者在 GitHub 上提的 pull request,和貢獻者進行溝通並培養社區裡的開發人員。而作為 mentor,就像是“師傅”一樣的引領者角色,要教會不會玩開源的人怎麼進入開源圈子。

開源引路人:我的Apache Mentor之路


AFS 提倡 community over code (社區大於代碼)。從這個層面來說,能把圈子維護好,比寫一手好的代碼更重要。開源社區中除了需要會寫代碼的開發者,還需要社區佈道人員,對外宣講人員,寫文檔的人員,以及前端美工設計人員。

所有對推動項目進步有價值的人都可以成為 committer。

從 21 年前“開源軟件”這個詞第一次出現,關於開源與商業公司之間競爭的討論一直沒有停過。

在姜寧看來,開源這個事情,其實就是一個非零和(共贏)遊戲,這也是 Apache 一直在強調的一點。

一個公司,它把自己核心的東西拿出來了之後,真的會失去這些東西嗎?所有的公司在給予的同時,其實會收穫更多。

姜寧的這個理解來源於《降臨》這部電影。電影講述了 12 個神秘飛船降臨在地球上所發生的故事。電影中,12 國分別破譯了外星人的語言片段,但是這些片段被列強據為己有,彼此不溝通。而要獲得外星人的真實意圖,必須將 12 個片段拼接到一起才能最終破譯。這裡面的隱喻用在開源與商業公司之間的競爭非常恰當:開源社區中不是“你之得即我之失”這樣一種簡單的關係,而是通過成果共享和努力解決共同的困難來實現多贏的結果。比如谷歌最開始做 Kubernetes 時,把自己的核心技術開放出來,吸引了很多公司,甚至是競爭關係的公司參加進來,後來 Kubernetes 慢慢變成一個撬動世界的槓桿,促進了整個雲計算行業的發展。

對於開源項目來說,大家針對共同的問題會想盡一切辦法,動用一切資源來解決問題,最後可能真的能成就一項改變世界的技術。

如果要用一個詞來表達自己對開源的印象和感悟的話,姜寧會選擇“分享”這個詞。

開源其實很大程度上其實是建立在分享以及協作的基礎之上的。


開源引路人:我的Apache Mentor之路


姜寧有一次無意間翻到十幾年前參與開源項目時的一件 T 恤,還是忍不住感概自己這麼多年從開源社區中的收穫。姜寧說,在開源社區中大家最容易收穫的就是無償的幫助。因為在這裡信息都是開源開放的,每一個人都可以學習和成長,獲得他人的幫助,也能儘自己的能力幫助別人。

ASF 有個很重要的理念:For the public good,也就是從整個人類的角度,或者是為了公眾的利益來做開源這件事情。從這個角度來說,個人或者公司的利益就已經很渺小了,所以大家可以跨越公司利益一起去做協同合作。所以 Apache 是一個相對來說比較草根一點的組織,它不會屈服於商業,也就很難被上市公司控制。這也是它能夠不斷髮展壯大的最主要的原因:大家都能相信他的公信力。

另外,for the public good 其實更多程度上是 for the users' good,就是給更多的用戶帶來福祉的一個事業。這樣的話其實也會帶來一個好處:它可以讓不同的商業公司能夠站在一起,為了一個更大的一個目標去去交流、溝通和協作。所以姜寧覺得很多時候一些種族、戰爭方面的事情,如果放大到全人類的角度上來說,其實都是能迎刃而解的。



分享到:


相關文章: