鄭婷宇/ OCF Lab

開源軟體透明、允許所有人分享及修改的特性,發揮群體智慧,造就高品質的軟體開發與維護。然而,多數開源軟體對非技術使用者的門檻較高,不利於推廣。隨著開源相關的授權條款逐漸放寬,以及網路普及而帶動發展的雲端服務,開源軟體因此發展出三種常見的商業模式:「支援與服務(Support and Service)」、「軟體即服務(Software as a Service,簡稱 SaaS)」及「核心開源(open core)」。三種商業模式沒有好壞之分,端看企業最適合的經營方式為何。然而,「核心開源(open core)」在台灣卻少有人討論及應用。因此,本文介紹「核心開源」模式,並搭配國內外著名案例,希望能供臺灣借鑑、引發更多討論。

圖一、三種開源軟體的商業模式比較
資料整理與製圖:鄭婷宇
圖片素材來源:Consult free icon &  Cloud Service free icon on FLATICON

Open Core 是什麼?哪裡好?

Andrew Lampitt 在 2008 年提出 Open Core,意指商業公司提供軟體核心的開源碼,再就企業客戶所需的特定功能開發專屬外掛程式(proprietary plug-in)販賣;或是提供功能有限的版本作為開源軟體,再開發具備額外功能的商業版本販賣。Open Core 將軟體大致區分為社群可參與維護的開源專案,以及另行開發的專屬外掛程式(proprietary plug-in),此雙重特性較適合那些能在核心軟體之外,進一步找出對企業用戶非常有價值的外掛程式或額外功能的公司。常見的 Open Core 商業產品包括整合功能、提供更高強度的資安等。 

Open Core 兼容「開源社群開發」與「商業開發」兩種模式的優點:

  1. 廣納天下好手的開源社群可望彌補商業公司有限的人力所帶來的侷限,提升開發與除錯的品質。
  2. 以往因使用門檻高而難以散播到非技術人員的開源軟體,在商業公司擴大使用人數的盈利動機下,可透過改善使用者體驗將開源軟體推廣給更多人。

兩相結合之下,不僅幫助公司更迅速地獲得更多使用者回饋,使用者也可在使用開源版本時確認是否符合需求,以此決定需不需要添購商業產品,避免購買後發現不好用,或是被單一閉源廠商綁架、失去選擇權的風險。

在 Open Core 模式中,開源社群與商業開發相輔相成:公司獲利所促成的商業創新,不僅有助於提升使用體驗,也能吸引更多人加入開源社群;隨著開源社群壯大,公司也可望透過接觸到更多使用者而販售更多商業產品,開源與商業促進彼此成長,形成一個正向循環。

圖二、Open Core 對公司與使用者的優點
資料整理與製圖:鄭婷宇
圖片素材來源:Building free icon &  Officer free icon on FLATICON

如何應用 Open Core

開源社群的貢獻、開源專案的使用量及產品的銷售收益是決定 Open Core 公司成功與否的三大要件。為了維持三大要件順利運作,公司需要留意開源社群與商業開發之間的互動與平衡。

Open Core 公司為了維護方便,通常將核心部分的開源專案及專屬外掛程式產品放在同一個代碼庫(repository)維護,畢竟若要維護兩套程式,成本自然較高,且容易產生更新補丁(patch)不一致而加深兩版本差異的情形。若因此導致專屬外掛程式無法應用於開源專案,公司將喪失透過開源專案接觸潛在客戶的銷售管道。

如果不得已得將社群專案與公司產品分為兩個代碼庫維護,最好能在一開始建立共通的 API,確保開源專案在升級組件後,仍可使用專屬外掛程式。公司也須留意社群與專屬版本開發者兩方的資訊流通,若兩者間的開發方向漸行漸遠,不僅會增加維護成本,若兩者的差異疏離到專屬外掛程式再也無法應用於開源核心,或是兩者成為截然不同的程式,商業公司容易被詬病不是真心想促進開源生態,甚至被批評遠離開源的核心精神。

Open Core 實例:Elastic 與 HackMD

使用 Open Core 模式的開源商業公司不計其數,本篇擇著名的國外案例:分散式搜尋系統 Elastic 及國內案例:線上協作編輯器 HackMD 介紹,提供讀者實例參考。

Elastic 是一家開發分散式搜尋系統的開源軟體商業公司,該公司將開源的軟體核心與以及非開源的擴充套件 X-Pack 放在同一個公開的代碼庫裡,提供給所有使用者一致的軟體版本。由於所有程式碼都放在同一處維護,使用者不僅能看到自己使用的程式碼,還可自由運用及修改開源的軟體核心,若需要用到收費的擴充套件,還可免去從社群版轉換到商用版的磨合成本;對 Elastic 而言,使用者針對商用擴充套件提出的修改建議能幫助公司了解使用者需求,加速產品最佳化的進程。

HackMD 是臺灣人開發的一款線上協作編輯器,跟 Elastic 的 Open Core 模式不太相同。公司將開源專案 CodiMD 分支(fork)出商用產品 HackMD,兩者皆具備基本的線上協作功能,但商用版有更多支援協作互動與團隊編輯的加強功能。目前開源版編輯器由社群維護,公司團隊亦有持續參與維護,除了幫助開源專案持續優化,也能藉此了解使用者需求,幫助改善商用版的使用體驗。不過由於 HackMD 與 CodiMD 並沒有共用一致的程式碼核心,需要分兩個版本維護,比起 Elastic 僅需維護一個核心的做法而言,成本較高。

Open Core 在臺灣的討論雖然還不多,但在國外已有許多開源軟體套用此模式成立商業公司

與交流經驗。在「支援與服務」及「軟體即服務」之外,開源軟體還有第三種商業模式可以選擇。 

參考資料:


本文章授權條款採 創用 CC BY (姓名標示) 4.0

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.