開源引路人:我的Apache Mentor之路
從 Apache 基金會 maintainer 到 mentor,13 年開源經歷的心路歷程。
姜寧,華為開源能力中心技術專家,目前在華為負責 ServiceComb 開源專案。前紅帽軟體首席軟體工程師,在企業級開源中介軟體開發方面有十餘年經驗,有豐富的 Java 開發和使用經驗,函數語言程式設計愛好者。從 2006 年開始一直從事 Apache 開源中介軟體專案的開發工作,先後參與 Apache CXF,Apache Camel,以及 Apache ServiceMix 的開發。對微服務架構,WebServices,Enterprise Integration Pattern,SOA, OSGi 均有比較深入的研究。
2000 年,本科畢業的姜寧來到當時還很荒蕪的西二旗,去華為大廈面試,後來因為念研究生就沒有選擇去華為。2005 年,在西二旗的海納軟體(IONA)工作的姜寧開始接觸開源專案。那時西二旗剛剛開始發展,政府也支援軟體園的建設,這裡聚集了很多科技公司,其中不少是衝著前三年租辦公區免租金來的。IONA 沒有熬過頭三年,但是開源背景把姜寧帶到了紅帽,在頂級開源公司工作了幾年。2017 年,姜寧又回到西二旗,進入了華為。
感覺是繞了一個圈。西二旗現在聚集了很多核心軟體公司,也有了矽谷的氛圍,這可能就是軟體網際網路行業發展的一個趨勢吧,相信你們以後應該也會有很多跟西二旗接觸的機會。
姜寧參與開源的經歷跟大家不太一樣,是直接走的公司流程。2006 年時,IONA 有個專案要開源,姜寧就輕鬆成為了一個初始 committer,開始接觸 Apache 軟體基金會(ASF)。08 年時在 Apache Camel 專案中,姜寧被選舉成為 committer, 開源之路開始走順了。後來又參與了很多 Apache 專案,開始 mentor 別人,直到有一天收到 ASF 的信,邀請姜寧成為 Apache member。
我填完(申請表)之後很高興,這相當於是 Apache 對我的一個認同。
採訪過程中當姜寧說到這裡的時候,我們仍然能從他眼裡的神采感受到他的喜悅。
姜寧說,其實開源是一個圈子。社群、基金會有自己做事的方法和流程。參與開源社群,不斷地認識不同專案的負責人,瞭解開源社群的運作,才算融入了開源的圈子。而沒有進入開源圈子的人,很難靠自己把一個專案培養起來。
早些年的時候 ASF 裡面國內的 member 比較少,參與孵化的專案也不多。作為中國人,姜寧很願意幫助來自中國的專案在 ASF 裡成長孵化。
所以後來華為就找到我,因為華為有一個微服務的專案想進入 Apache。剛開始的時候這個專案還沒有起名字,後來我們給它起了一個名字叫 ServiceComb。service 就是服務嘛,comb 有蜂巢的意思,意味著微服務就是由很多很小的東西拼在一起的。
從一個初始 committer 到專案 maintainer 再到 mentor,在開源社群多年的經歷和多種角色的變換,讓姜寧感覺到開源社群很像武俠小說裡的江湖氛圍:mentor 協助專案孵化,把專案歸類,跟專案和基金會的董事層溝通,這個過程就像武林中立一個山頭帶一群人成長;GitHub 上大家通過 pull request 交流則像大俠之間相互切磋武藝。而在社群裡大家都是主動、自願地展示自己的能力,正如漫威電影裡的臺詞一樣,“with great power comes great responsibility\u0026quot;,這一點也很像武林大俠的俠義精神。所以在開源社群中,“人際關係很重要,人與人之間的互動很有江湖氛圍。”
從 committer 到 member,再到 mentor,其實也是一個不斷成長的過程。
一個開源專案的 maintainer 需要稽核專案貢獻者在 GitHub 上提的 pull request,和貢獻者進行溝通並培養社群裡的開發人員。而作為 mentor,就像是“師傅”一樣的引領者角色,要教會不會玩開源的人怎麼進入開源圈子。
AFS 提倡 community over code (社群大於程式碼)。從這個層面來說,能把圈子維護好,比寫一手好的程式碼更重要。開源社群中除了需要會寫程式碼的開發者,還需要社群佈道人員,對外宣講人員,寫文件的人員,以及前端美工設計人員。
所有對推動專案進步有價值的人都可以成為 committer。
從 21 年前“開源軟體”這個詞第一次出現,關於開源與商業公司之間競爭的討論一直沒有停過。
在姜寧看來,開源這個事情,其實就是一個非零和(共贏)遊戲,這也是 Apache 一直在強調的一點。
一個公司,它把自己核心的東西拿出來了之後,真的會失去這些東西嗎?所有的公司在給予的同時,其實會收穫更多。
姜寧的這個理解來源於《降臨》這部電影。電影講述了 12 個神祕飛船降臨在地球上所發生的故事。電影中,12 國分別破譯了外星人的語言片段,但是這些片段被列強據為己有,彼此不溝通。而要獲得外星人的真實意圖,必須將 12 個片段拼接到一起才能最終破譯。這裡面的隱喻用在開源與商業公司之間的競爭非常恰當:開源社群中不是“你之得即我之失”這樣一種簡單的關係,而是通過成果共享和努力解決共同的困難來實現多贏的結果。比如谷歌最開始做 Kubernetes 時,把自己的核心技術開放出來,吸引了很多公司,甚至是競爭關係的公司參加進來,後來 Kubernetes 慢慢變成一個撬動世界的槓桿,促進了整個雲端計算行業的發展。
對於開源專案來說,大家針對共同的問題會想盡一切辦法,動用一切資源來解決問題,最後可能真的能成就一項改變世界的技術。
如果要用一個詞來表達自己對開源的印象和感悟的話,姜寧會選擇“分享”這個詞。
開源其實很大程度上其實是建立在分享以及協作的基礎之上的。
姜寧有一次無意間翻到十幾年前參與開源專案時的一件 T 恤,還是忍不住感概自己這麼多年從開源社群中的收穫。姜寧說,在開源社群中大家最容易收穫的就是無償的幫助。因為在這裡資訊都是開源開放的,每一個人都可以學習和成長,獲得他人的幫助,也能儘自己的能力幫助別人。
ASF 有個很重要的理念:For the public good,也就是從整個人類的角度,或者是為了公眾的利益來做開源這件事情。從這個角度來說,個人或者公司的利益就已經很渺小了,所以大家可以跨越公司利益一起去做協同合作。所以 Apache 是一個相對來說比較草根一點的組織,它不會屈服於商業,也就很難被上市公司控制。這也是它能夠不斷髮展壯大的最主要的原因:大家都能相信他的公信力。
另外,for the public good 其實更多程度上是 for the users’ good,就是給更多的使用者帶來福祉的一個事業。這樣的話其實也會帶來一個好處:它可以讓不同的商業公司能夠站在一起,為了一個更大的一個目標去去交流、溝通和協作。所以姜寧覺得很多時候一些種族、戰爭方面的事情,如果放大到全人類的角度上來說,其實都是能迎刃而解的。
相關文章
- Apache畢業賀禮—Apache ShardingSphere跌宕起伏的開源之路Apache
- 我的開源GIS解決方案之路
- 開源Apache KafkaApacheKafka
- Apache DolphinScheduler PMC:我在社群裡如何玩轉開源?Apache
- 微軟.NET Framework的開源之路微軟Framework
- 墨天輪沙龍 | 清華喬嘉林:Apache IoTDB,源於清華,建設開源生態之路Apache
- Apache RocketMQ 的 Service Mesh 開源之旅ApacheMQ
- 開啟我的程式設計之路程式設計
- Apache開源相關元件Apache元件
- Weex UI 半年開源之路UI
- 10個強大的Apache開源模組Apache
- 我的css之路CSS
- 我的Oracle之路Oracle
- 踢掉 FB+PL:Apache 的開源激進宣言?Apache
- GitHub:我開源我自己;CEO:不存在的Github
- 我的前端之路(上)前端
- 1、我的PHP之路PHP
- 我的前端之路(中)前端
- 我和我的DBA之路
- 我的開源 GitBook: Python 之旅GitPython
- 開源成就了現在的我
- 我是怎麼做開源的
- 相信開源的力量:Nebula Graph 採用 Apache 2.0 作為其開源協議Apache協議
- 路人開發對測試人員的看法
- Yahoo開源的Apache Kafka管理工具:Kafka ManagerApacheKafka
- 東方金科基於開源的開發平臺建設之路
- 我的 Java 轉 Go 之路JavaGo
- 聊聊我的 Java 自學之路Java
- 我的程式設計之路程式設計
- 我的Linux 之路(轉)Linux
- 【開源】我和 JAP(JA Plus) 的故事
- 【開源之路】溫蒂、一次簡單的嘗試
- 微軟在 Apache 下開源 ASP.NET MVC微軟ApacheASP.NETMVC
- 參與 Apache 頂級開源專案的 N 種方式,Apache Dubbo Samples SIG 成立!Apache
- Apache的Thrift引發的編譯思考Apache編譯
- 整合LAMP品牌 開源軟體崛起之路(轉)LAMP
- TF中文社群之下,國內雲網路的開源之路
- 國產資料庫的開源生態之路 | 直播預告資料庫