張海寧:首個 CNCF 中國開源專案 Harbor 的修煉之道

騰源會發表於2022-11-24

「WeOpen Talk」是騰源會全新上線的「對話開源」內容專欄,每週為讀者呈現一期與尖峰開源人物的精彩對話內容。在「WeOpen Talk」欄目中,我們將深刻詮釋開源先鋒者們的開源精神、開源理念及其眼中的開源世界,深度挖掘開源領軍者們在實踐、參與開源過程中的有效方法論和最佳經驗。

一、前言

2020 年 6 月,CNCF(Cloud Native Computing Foundation,雲原生計算基金會)宣佈,企業級容器映象倉庫開源專案 Harbor 成為 CNCF 第 11 個畢業的專案。作為 CNCF 首個誕生在中國的開源專案,Harbor 目前在 Github 平臺已獲得近 1.7 萬個 Stars,以及 230 名開發者的貢獻和參與。

這個在孵化初期只有 4 位核心開發者的專案,是如何在開源後一步步精進和最佳化,以至獲得萬人青睞?Harbor 開源背後的運營,又有哪些獨到之處?

本期 WeOpen Talk 開源人物專欄,騰源會將對話 Harbor (企業級容器映象倉庫)創始人及維護者、騰源會導師張海寧,為大家分享 Harbor 在開源探索實踐中的心得和方法論。以下內容為張海寧的自述。

二、Harbor 的成功不只是「偶然」

Cloud Foundry  是雲原生領域一個「鼻祖」級的專案,也是業界首個開源 PaaS 平臺。我們從 2012 年開始運營 Cloud Foundry  中國開發者社群,從那時起,在行業內打下了良好的群眾基礎。那些活躍在 Cloud Foundry 社群的朋友,在各行各業從事雲原生領域的工作,和我們形成了良好的合作關係。

得益於在 Cloud Foundry 社群積累的經驗和口碑,2016 年,我們釋出開源專案 Harbor 後不久,就在行業中推廣開來。很多朋友非常喜歡 Harbor 專案,並口口相傳,Harbor 專案的使用者規模也越來越大。

從這個角度看, Harbor 能迅速在雲原生社群站穩腳跟,並得到大家認可,與之前打下的堅實基礎密不可分。


Harbor 專案的 GitHub 頁面

除此之外,我們對國內本土化的使用者群體也做了重點支援。像大家常用的容器和 Docker 工具,在當時基本都是全英文介面。Harbor 從第一個版本開始,就提供了中文的介面,收穫了大部分國內使用者的讚賞和喜愛,也助力了專案的發揚光大。

從某種意義上講,Harbor 在剛開源的時候或許是「運氣」比較好,恰好滿足了當時雲原生的需求,而且同時期類似的專案比較少,市場算是一個藍海。當時的國外社群有一兩個映象倉庫專案,在 Github 上有5、600個 Stars ,但得益於在國內受到使用者的歡迎,很快我們就後來居上了。

所以,Harbor 成為首個 CNCF 中國開源專案有一定的偶然性,除了它滿足了雲原生使用者的需求之外,也離不開我們之前在業內的積累,以及使用者的支援和認可。


2020 年 6 月,Harbor 開源專案從 CNCF 畢業

三、開源專案的成長需要足夠的「中立」與「開放」

當我們決定使用和參與一個開源專案時,首先考慮什麼?從我的經驗來看,最需要重點考查的就是這個專案是否由中立的社群來維護,而不是僅有一兩家公司在驅動和運作

專案的參與方少,意味著風險性較高,一旦主導方退出,或者不再維護專案,那麼使用者就會面臨諸多的問題。同時,還會著重評估專案是否有足夠多的參與方,和中立的運作機制,最後再決定參與這個社群或者使用這個軟體。

換句話說,社群的參與度和專案本身的中立性是開發者的一個考察因素。如果希望專案有更多的貢獻者和參與者,足夠的開放和中立是很重要的一個考量點

Harbor 早期在 VMware 中國研發中心進行孵化時,只有 4 位小夥伴。在加入基金會之前,Harbor 專案的運營並不是非常正規,規則也不太清晰。


Harbor 專案早期團隊成員

從 2018 年加入 CNCF 基金會後,我們學習到了一些更系統化、規則化和制度化的做法:比如定期舉辦社群會議,將專案發展的 Roadmap 公開在 Github 上提供給大家討論等。

專案鼓勵更多的社群成員投入到 Harbor 的開發過程中來,讓他們有渠道參與 Harbor 的共建。在開發每個 Harbor 的新版本前,我們會定期向社群使用者收集功能需求,並將所有功能列表在 Github 上共享出來,公開徵集意見和討論,透過集思廣益得到更多更好的反饋。

在我們對功能點的優先順序和可行性進行評估後,最終會輸出開發列表去指導實際的開發,這是社群合力的成果,也是希望儘可能讓更多的人參與進來。遵循這類原則,我們進行了一系列的改進,流程和制度都有了比較大的變化,也更適合整個社群來共同推動。

兩年後,Harbor 積累了大量的使用者,特別是 2020 年畢業時,知名度已經相當高了。每年都會有好幾家合作伙伴找到我們,基於  Harbor 開展各種合作。

在捐贈給 CNCF 基金會後,Harbor 成為一個由基金會管理的專案,不再是 VMware 主導和參與,而是由 Linux 基金會( CNCF 是 Linux 基金會下屬的基金會) 這樣的中立組織來驅動。這也使得更多的開發者和公司願意加入進來,吸引到了更廣大的使用者。

所以說,用開放的心態去接納更多的貢獻人員,是非常重要的思維。有些開源專案的維護人員比較保守,不接受任何外部的貢獻,沒有給社群成員參與和貢獻的機會,這是封閉的思維方式,如果專案只有自己在主導,那專案和社群只會式微漸止。

反觀,如果用開放包容的心態,讓更多人有機會參與進來,他們會更願意為專案做貢獻,從而推動整個專案的發展和迭代,我覺得這是開源專案的健康成長需要重點考慮的事情。


2018 年中國首屆 KubeCon 大會上 Harbor 團隊的主題演講

四、開源專案運轉的 3 個核心關鍵要素

讓一個開源專案運轉起來,並擁有長久的生命力,我認為有這幾個核心關鍵要素

第一,要解決使用者的某一類問題。專案的功能性和適用性,要有一定的廣度和需求匹配度。

第二,要建立一個能夠讓更多人參與進來的完善的機制。目前,Harbor 社群有很多小夥伴在積極地宣傳開源,也有一些小夥伴想參與並做出貢獻,為此我們組織了若干個工作小組,來負責 Harbor 的不同的方面。

例如,遠端複製工作小組、映象漏洞掃描工作小組、多架構小組等。每個小組均由社群成員組成,然後共同來推動專案的發展。當然,我們也會有 Maintainer 來組織和推動小組的工作。

第三,需要社群對專案持續地維護和推廣。任何有生命力的專案都離不開支撐它的社群。社群中主要需要這幾方面的人員:

第一類是軟體本身的開發人員,主要是 Maintainer 和 Contributor ;第二類是真正的使用者,軟體如果沒有使用者,就沒有生命力,使用者是專案維繫社群中的最重要的一類成員。使用者的需求、反饋和要求最終都會轉換成對軟體的認可,推動軟體功能實質的發展。

因此,社群其實是由 Maintainer 、開發人員和使用者來組成,這幾類人員有著不同的訴求,而運營社群其實就是要滿足各方的訴求,達到共贏的目的。


Harbor 社群線上會議

五、精彩 QA 集錦

Q1: 這幾年可以很明顯地看到雲原生類的開源專案層出不窮,從 K8s 到 Istio,再到Knative……據統計,CNCF 在 2020 年就接納了 35 個專案加入基金會,還有多個專案畢業或晉級。在這種增長下,您是如何看待雲原生開源這麼火熱的原因以及目前雲原生開源形成的格局與趨勢?

張海寧: 我們在 2012 年開發和推廣了開源 PaaS 雲平臺 Cloud Foundry ,是業內第一個 PaaS 的開源專案,雲原生 Cloud Native 就是從 Cloud Foundry 的那個時代慢慢成型的。

當時 Cloud Foundry  的專案主要是由 Pivotal 公司在主導運營。他們總結了雲原生的一些特徵,將雲原生、微服務等一些相關名詞確定了下來。後來大家都用這些概念作為在雲裡面跑應用或者開發應用時必須的一種手段,一種技術或者一種能力。

到今天,雲端計算的概念已經深入人心,可以說大部分的企業和使用者都在考慮怎樣在雲上跑他們的應用,雲的各類應用模式也已經比較成熟。雲原生之所以越來越火熱,是因為越來越多的人希望在雲上開發應用或者部署應用,從而催生了大家對雲原生技術的需求,希望能夠在雲平臺或雲環境裡將應用開發和運維得更好。

我覺得開源其實從雲原生這個角度上講,更多的是適應了另外一種需求,能夠幫助應用更快、更容易地推廣,幫助它能被更多的人去接受和採納,是一種比較友好的方式。之所以很多雲原生領域的專案都是開源的,是因為只有開源才能讓專案走得更遠、影響力更廣且更易被廣泛地接受,這是相輔相成的原因。

Q2: 您是如何看待目前開源的一個環境和所處的一個階段?您覺得有哪些機遇和挑戰?

張海寧: 目前國內在開源上的投入已經比早幾年要更多了。以前大家對「開源」的概念討論較多的是 IP 保護或者反盜版等一系列問題。透過這幾年的宣傳和佈道,開源文化已經獲得了越來越多使用者的認可,開源在一定程度上能夠幫助軟體實現自主可控、創新等一系列的要求。

我接觸過國外的開發人員和參與到開源社群的人員,能很明顯的感受到他們其實已經很習慣開源的文化了。例如,他們看到我們的軟體不好用,會主動地去反饋需求或者問題給我們,如果他們有能力修復的話,也會把修復的程式碼貢獻給我們。這可以說是「標準化」的開源社群的參與方式。

但是,國內使用者給我們的反饋並不是很明顯,有的人可能用完或者改進完了就自己留著了,藏著掖著沒有回饋回來給社群。所以別人碰到同樣的 bug 或者問題,沒辦法重用已修正過的程式碼,仍然需要重複的造輪子。在這個問題上國內仍然需要一些時間去教育或者推廣,來讓更多人去了解到這個模式,是一種雙向互動和共贏的過程,讓開源在國內能夠更加深入人心。

雖然對比國外我們仍然是有一定的差距,但是我能看到國內的開源大環境已經開始越來越向好,這是好的現象。但並不是每個公司和開發人員都有這樣的思維方式,還需要一些時間慢慢地去習慣和適應,使更多的人能夠認識到開源文化的實質。

我非常希望國內的高等教育大學裡能有開源的知識普及課程,能讓學生從學校裡面就能瞭解到這樣的文化,能夠參與到社群中,這是比較好的一種做法。社群有佈道師朋友在宣揚開源文化以及開源思路,這些都是很重要的。因為能夠去教育和去影響更多的人來參與到開源工作裡面去。如果從學校就能把這個思想理念建立起來,那就更好一些。因為大部分的工程師都是從學校裡走出來的,除了學習技術之外,如果能夠增設開源類的課程,給大家講解開源的思維和文化等等,能提高整個業界工程師的開源素質。

Q3: 對一些想要參與 Harbor 的一些「新手」小夥伴怎樣能夠更好的參與到社群中,你有哪些比較好的建議?

張海寧: 參與開源專案就是要跟專案的 Maintainer 以及社群成員去更多地去交流,達成對專案的共識,能在參與專案貢獻和開發的過程中使所增加的功能、修改的程式碼、社群的規則和要求與整個社群積極地對齊,能夠讓大家像一個整體去開發,而不是單兵作戰的狀態。


由 Harbor 維護者和貢獻者撰寫的《Harbor 權威指南》

目前 Harbor 已經有一套較為完善的文件給到開發者,去年我們組織專案的 Maintainer 和Contributor 撰寫了中文版的《Harbor權威指南》在國內的社群流傳和閱讀,包括怎麼去參與社群、怎麼參與開發,怎麼去建立開發環境,怎麼完成測試以及怎麼符合專案要求等一系列的描述。歡迎感興趣的朋友參考一下。■

採訪嘉賓介紹:

張海寧,現任 VMware 中國研發中心技術總監,中國首個原創 CNCF 開源專案——Harbor 雲原生映象倉庫創始人及維護者,聯邦學習 FATE 開源專案技術委員會 Board 成員,騰源會導師,騰訊雲最具價值專家 TVP,《Harbor 權威指南》、《區塊鏈技術指南》、《區塊鏈核心技術和應用》作者。

騰源會(WeOpen)是騰訊雲成立的匯聚開源專案、開源愛好者、開源領導者的開放社群,致力於幫助開源專案健康成長、開源愛好者能交流協助、開源領導者能發揮領袖價值,讓全球開源生態變得更加繁榮。

相關文章