天天看點

打造卓越開源項目的12條原則

(目錄)

本文整理自51CTO開源基礎軟體學習季直播公開課《打造卓越開源項目12條原則》,更多細節,可點選連結跳轉檢視。

因為專注開源領域十餘年,參與建設過ClickHouse、Dolphin,SeaTunnel等社群,現在是Apache基金會Member,也是Apache孵化器導師,是以常常在私下或公開場合被問及:從您的角度來看,究竟什麼樣的開源項目更有可能成功?如何把一個開源項目做好?近期,針對過往積累的開源相關碎片化知識進行梳理,歸納總結了打造卓越開源項目的12條原則,本次直播分享給大家。

一、全球開源潮流的分析

在分享打造卓越開源項目的12條原則之前,我們通過三張節選自OpenLogic 2022全球開源報告的三個圖表,來看看全球開源潮流是怎樣的。

如上二圖,可以從中看到一些明顯趨勢及使用者使用開源軟體需要面臨的挑戰:

  1. 在過去 12 個月中,77% 的受訪者在其組織中增加了對開源軟體的使用,36.5% 的受訪者表示他們的使用量顯着增加。
  2. 79% 的受訪者贊助(sponsor) 開源組織。
  3. 使用開源軟體的第一個原因是獲得創新,進而将降低成本排在第二位。更新檔的安全性和可用性也排名靠前。
  4. 采用開源軟體的第一大障礙是缺乏測試、使用、內建和支援的内部技能。
  5. 所有行業的開源軟體的第一大支援挑戰是人員經驗和熟練程度。
  6. 使用率總體增幅最高的是開源 DevOps 工具。雲原生 CI/CD 工具的采用率顯着提高。
  7. 最令人向往的新技術是容器和 Kubernetes。目前隻有 18% 的受訪者使用 Kubernetes,39% 有雲戰略,29% 有容器化戰略。
  8. 在所有組織規模中最高的是,41% 的小型組織擁有開源戰略。
  9. 銀行、保險和金融服務行業的 Innersource 項目數量最多。
  10. 隻有 13% 的組織擁有熟悉開源許可的法律團隊。

    整個OpenLogic 2022全球開源報告内容有很多,大家能夠從中了解到全球諸多開源化的趨勢,更多詳情可點選檢視: [2022國際開源趨勢如何——速讀《2021全球開源趨勢報告》]

二、打造卓越開源項目的12條原則

對海外開源潮流有一定了解之後,我們來看看打造一個卓越的開源項目所需要的12條原則。這些原則是基于過往的經驗積累,針對開源初期規劃、開源産品、開源項目推廣、開源項目可持續發展這四方面進行深入探究,歸納總結而成,下面我們逐一延展開來。

開源初期規劃之初心

開源成功的機率非常小,整個過程遇到的挑戰繁多,明确初心尤為重要。在計劃做開源項目之前,一定要做好無人問津的準備,當堅持不下去的時候,初心便是動力。

我認為,開源是一種先進的項目開發工具,可以促使某個項目在全球範圍裡,不用重複造輪子,并且凝聚全球頂級智慧,去集中研究打造這個項目。

是以,我覺得做開源的初心就是把這些全球領先的智慧聚集起來,并且讓更多的人知道,是特别有成就感的事情。我們做開源的初心可以不一樣,但是一定要有,在後面遇到到坎坷與挑戰,才能秉承初心,咬牙堅持下去。

開源初期規劃之協定

開源初期做規劃的時候,協定是重中之重,用什麼樣的開源協定去開源,需要慎重取舍。開源協定可以了解為和客戶之間的合同,種類不同開源項目,它們的協定也會存在差異。

打造卓越開源項目的12條原則

如上圖所示,協定大緻分為兩個角度,一種是當别人使了你的開源代碼,并做了修改,是不是要開源?另一種是當别人使用你的服務/類庫,是不是要開源?選擇哪種協定,最終的結果截然不同,是以一開始就要慎重思量。

開源初期規劃之周期

ClickHouse社群到中國至今,已有六個年頭,事實證明前期是需要一段時間積累,這個周期大緻需要一年半到兩年時間。例如ClickHouse社群,從零到五百使用者花費一年多時間,後期随着使用者增長,才會聚集很多能力參差不齊的各種使用者,找到适合的場景,最終像滾雪球一樣,越滾越大,使用者會如潮水一樣湧進來。

還有技術的疊代周期,縱觀過去一些知名開源項目的增長趨勢,如下圖所示:

打造卓越開源項目的12條原則

通過這組資料,我們發現,每隔五年就會有一個新的開源項目問世,如果技術沒有把握好,五年左右就會被其他項目所替代。核心理念、産品理念、核心技術、核心團隊直接決定你的開源項目能否一直遙遙領先領先,也直接影響對應的社群是否能經久不衰。

開源産品之定位

在開源初期規劃時候,我們明确初心、選好協定、确定周期,接下來就要開始打造開源産品了,這裡也有三個原則,分别是定位、調性與團隊。

産品定位必須明确,明确知道解決了哪些問題或痛點,解決的究竟是僞需求還是真實存在。不要自我感覺良好,但沒使用者,社群終究也不會做起來。在這裡,需要用一句話描述你開源項目是什麼,然後能夠清楚明了的知道産品的賽道,解決的問題,産品的邊界。隻有痛點明确,邊界清晰才有利于開源項目的擴充,如果什麼都涉及的開源項目,基本上均以失敗告終。

開源産品之調性

開源産品的調性是你的開源項目在解決實際問題時,主打的使用者感覺價值是什麼?通俗來說,就是你這個開源項目究竟是做什麼的。如果一開始就叫嚣這“我是下一代XXXXX,我要颠覆YYYYYYY”,凡事這樣的開源項目,很難做好,因為沒有自身的産品調性與價值主張。開源,需要的是全人類的創新,而不是在“内卷”。

産品需要有自己的調性,我們要像“火鍋”一樣做開源。為什麼要像火鍋呢?大家想起你這個産品,就能想到它是什麼?當我們一說吃火鍋,就馬上想到熱氣騰騰的鍋子,麻醬,各種肉,蔬菜,放到一起好吃且簡單易做。同時,具備強大的有号召力,一說大家都想參與進去。你的産品,也要做的和火鍋一樣,有自己的調性,特色,以及号召力。

開源産品之團隊

開源産品的團隊如何組建很有講究,比如在技術大牛與屌絲衆創之間,對于整個團隊而言,後者要比前者合适,因為技術大牛精力很有限,萬一短時間内有事情要忙,項目也就隻能擱淺。你的開源項目一定是有特别多的人參與,大部分人都在勤懇的做貢獻,并真正融入到項目中去,才會有活力。團隊對開源的了解力,團隊的韌性,也是能否做好開源産品很關鍵的兩個因素。

開源的創新主要來源于發動的是群策群力的力量,像使用者的回報、社群的開發者、社群外的專家等,而不是1-2個技術大牛就可以。開源,中進階的社群使用者和貢獻者往往會大于1-2個技術大牛,否則社群會不穩定。

開源項目推廣之借勢

開源産品敲定之後,我們來看看如何做推廣與營運,這裡也是有三大原則,分别是:借勢、自傳播、影響力。

要如何借勢? 這裡我們以ClickHouse與SeaTunnel這兩個社群的興起為例。現在,ClickHouse在國内比在海外火爆,那是因為在當年推廣過程中,借了當時興起的“使用者行為分析”的勢。在這種*客增長的趨勢下,ClickHouse恰好适合與這個場景相契合。

而SeaTunnel之是以可以進入Apache孵化器,是因為SeaTunnel在早期是借了ClickHouse的勢,因為ClickHouse是個計算引擎,但ClickHouse有個弊端,就是在灌數的過程中經常會出錯,SeaTunnel恰好可以解決這個問題,延續到現在,形成了Bulk load模式,灌數到ClickHouse中極其友善。

借勢往往比造勢簡單的多,一般情況下,也可以借基金會的勢。無論Apache基金會,CNCF基金會,以及各類的開放原子基金會。

那麼這些基金會有哪些“勢”呢?大緻總結如下幾點:

  1. 第三方的保護中立:産權中立,貢獻中立,品牌中立,協定确認
  2. 基金會内的生态:Apache基金會 vs 大資料、AI CNCF vs 雲原生;
  3. 基金會内的導師:有經驗的領路人,出問題時候的KOL
  4. 更是多個項目之間會聯合Meetup,互相支援,互相發現和幫助。

開源項目推廣之自傳播

優秀的項目是自傳播出來的,而不是通過市場PR,因為自傳播的機率在某個小圈子裡是爆炸性的,在這裡有重要的三個點:産品的口碑,人的口碑,社群的口碑。

産品的口碑,是你的産品究竟是不是真的好用,是否友善,在調性,在解決問題上是否有自己的特性,是否實用。

人的口碑,是産品背後的支援者,是否靠譜,所在的圈子裡口碑是否尚佳,也包括核心團隊、項目PMC項目管理團隊的所有人員口碑也很重要。

社群的口碑,Community over Code,社群勝于代碼,社群的氛圍是開放的,還是封閉的,能夠容納不同意見的社群,還是獨裁專政、就幾個大佬在說話?社群的口碑好壞直接影響開源項目最終的成果。

開源項目推廣之影響力

影響力這裡也是三方面,分别是人、使用者和社群。

一般情況下,深耕某個領域的專家做項目開源,相對更容易成功,因為他具備足夠的影響力,能夠觸達更多的使用者,找到充足的資源,促使他所負責的項目在初期就發展很快。

有相關領域專家的影響力還遠遠不夠,使用者水準也很關鍵,使用者如果大多是來自大廠或有一定知名度,TA們影響力聚合起來就能達到出奇的效果。

社群是否加入基金會,社群裡面的大咖與使用者級别是怎樣的,都直接決定社群的影響力。社群做的不好,不開放,沒人氣,不夠活躍,到最後再好的代碼都會付之東流。

開源項目可持續發展之閉環邏輯

開源項目想要持續發展,不能光靠開發者為愛發光,還是需要更多專職開發者,光靠愛好者貢獻絕對不行,畢竟大家還是要養家糊口的。

對于開源項目能否可持續發展,你的軟體保證體系、商業公司生态、以及商業模型都是決定性因素,這中間的閉環邏輯要想明白。

開源項目可持續發展之商業化

商業化對于開源項目可持續發展來說是必要環節,現在開源在全球範圍裡,開源項目的商業化邏輯可行性已經過驗證,答案是肯定的。一般商業化基本上遵從四大模式,分别是

Open-Core 開放核心

Professional Services專業服務

Hosting 托管服與Marketplaces 市場

。當然,在實際實施過程中,公司往往會混合多種模式。

時至今日,對于成功的開源公司來說,最常見的模式是開放核心産品,且将與托管、服務作為第二和第三收入來源。如果這種組合對你的産品來說是有效的,那麼它可能是一個不錯的選擇,不過它需要你考慮如何在商業産品和開源産品之間做出明确區分。

當然,在某些情況下,這些模型可能都不适用,你可能需要為自己産品找到獨特的商業模式。除了找到一個能夠讓公司規模發展的模式外,關鍵在于所選擇的模式要與産品的特性相吻合。同樣,創業者和整個社群的目标和願景也很重要。

開源項目可持續發展之社群

可持續發展的開源項目,你會發現人員、工作都是可變的,但是社群是永存的。想要可持續發展,社群不能去依賴某一個人或某幾個人,也不能依賴某一個公司,一定是得能夠此起彼伏的讓社群更有持續的生命活力。

綜上所述,是打造卓越開源項目的12條原則的概述,在分享接近尾聲之時,以SeaTunnel、ClickHouse、DolphinScheduler等為經典案例,對這些原則進行了驗證,更多細緻内容請點選觀看直播公開課回放:《打造卓越開源項目12條原則》