開源軟體的商業策略

前言

開源軟體,或者說開放原始碼,最早是由 Richard Stallman 的 Free Software Foundation 所提出。這個概念最初源於他想自己修復辦公室印表機的 bug,卻苦於無法取得程式碼。他因此主張,所謂的自由軟體應允許使用者不限任何目的,皆可自由修改及分發。

這似乎非常的理想主義,讓人覺得這可能不過是一群生活在烏托邦的人的夢想。然而實際上現在軟體世界的基石有一大半都是由開源軟體所建構而成,就算是再封閉的公司也不可避免地使用到開源軟體。因此,基於開源軟體的商業公司也因此應運而生,這讓人不禁好奇開放為什麼有時候是好的策略。

目前服務的公司主要是圍繞著開源軟體,發展一系列的商業模式,因此我開始對商業公司怎麼利用開源來打造商業模式很有興趣。接下來我會分別介紹開放原始碼的好處是什麼,公司可以怎麼賺錢,以及會遇到一些挑戰,最後列出一些成功案例。

對公司來說為何要開源

開源跟我們的直覺不符,為什麼能賺錢的東西要免費提供呢?其實比起開源精神,大家看中的還是開源能帶來的各種附加價值。以下列出幾點:

廣告

開源本身就有一種吸引力,因為免費,就會吸引人們使用,進而達到匯聚目光的效果。這就跟賣場裡會有些食品提供試吃一樣的道理,人們會覺得既然免費就先試試看,如果好用的話再考慮購買。

盡管看上去好像是虧錢,但對企業來說,使用者的使用習慣非常重要。一旦人們習慣使用某項東西,在沒有重大因素的情況下是不會輕易更換的,企業可以藉此在這個市場取得先行優勢。這與許多企業早期燒錢搶佔市場的策略如出一轍,無論是 Uber 或 Airbnb,都是先賠本將市場做大,之後再考量營利。

還有另一個因素是攪亂市場,如果現在的市場已經被幾個巨頭瓜分了,新進者要抗衡的辦法就是用更有價格優勢的產品來吸引人們的目光,這才可能翻轉現有的市場。像是 Visual Studio Code 能席捲整個 IDE 市場的其中一個優勢就是他免費且開源,不管是 Sublime、Source Insight、還是 SlickEdit 等傳統做 IDE 的廠商都很難與之抗衡。

吸引開發者,建立生態系

開源的另一個好處就是會吸引開發者加入。因為程式碼都公開,所以開發者可能會自己動手,不管是修復 bug 或者是開發新功能,這對專案維護者來說也是樂見其成的事情。雖然依照我過去參與過的開源專案經驗,大部分的人都是使用者為主,不過他們所詢問的問題也是很好的回饋,可以釐清專案的改進方向。

對於一個專案來說最好的與社群合作方式是形塑生態系。大多數開發者使用他人專案的目的都是為了打造自己想要的東西,而如果專案本身的性質是鼓勵讓人重複利用他人成果的框架,那將會是一股龐大的力量。

讓我們以世界最大的機器人開源框架 ROS 為例:由於機器人是一個非常複雜的系統,最初這個框架設計的目的就是希望人們能重複使用他人打造的輪子。透過使用同樣的 API、同樣的通訊方式,讓彼此的輪子可以組合起來。隨著開發者的增加,這個生態系也日益繁榮,任何可以想像的輪子都找得到,這就形成網路效應,更加能吸引新的開發者。

嚴格來說,ROS 的框架在效能上並非是最佳,但因為有最龐大的生態系,人們為了最快打造自己的機器人,還是會選擇使用 ROS。就算其他公司想打造類似的框架,也不得不連接到 ROS 來重複利用這些豐富的套件,例如 NVIDIA 的機器人框架 issac 就有提供 ROS 橋接的功能。

總而言之,生態系能夠為產品打造很深的護城河,而開源往往就是建立生態系的必要條件。

業界標準

有一句流傳業界的話說:二流的企業做產品,一流的企業定標準。對於商業來說,掌握標準的話語也就意味著有許多獲利的潛在機會,因此在制定標準的組織上,都可以看到各家企業彼此的攻防。

然而,很多新出現的技術一開始並沒有一個專門的組織訂定標準。很多時候是當一個專案所有人都使用,它就會變成事實上的標準。

就以容器技術來說,一開始並不是有任何組織先出來定義標準,然後才開始有人開發實作。最早是 Docker 先開源這項技術,技術社群熱烈反應後,才開始成立 OCI (Open Container Initiative) 來定義相關規範,可以說 Docker 就等同於容器技術的代名詞。

當然也有些人則是反向操作,直接買下受歡迎的技術或是其開發者,然後再把自己的生意和該技術相結合。例如 Vercel 為了確保最新的 React 技術能被用在自己的開源軟體 Next.js 上,挖了幾個 React 的核心成員,某種程度上也引導了 React 的發展方向。

其實開源就是要創造先行者優勢。因為開放,人們願意使用,而一旦使用者基數有一定程度,其標準就有意義。

獲得信任

信任在商業上其實是非常有價值的,唯有對一個產品有信任,使用者才可能去使用。一般來說,信任也都需要長時間經營,但對軟體世界則不一樣,最快讓人獲得信任的方式就是公開自己的程式碼,讓所有人直接檢視。

利用開源來取得信任在很多領域上都很有效果,特別是區塊鏈方面。對於區塊鏈技術來說,要吸引使用者參與成為共識層的一員,必須先讓參與者確保共識的邏輯並沒有任何後門或風險漏洞,否則沒有人願意加入這個生態系。不論是比特幣、以太坊等等公鏈來說,開源是最基本的操作,甚至連上面的演算法邏輯要修改也都必須通過社群的一致共識才行。

另外一種情境則是跟地緣政治有關,對於中國來說,其軟體相較其他國家更不受信任,因此如果要增加使用量,就需要透過開源來取信於他人。就以其在 AI 領域最成功的 DeepSeek 來說,他正是使用開源的策略才能在全球範圍吸引更多使用者採用、擴增市占率,為之後商業策略進行布局。

吸引人才

對於剛畢業充滿著熱血的學生來說,和理想掛鉤的開源軟體充滿著吸引力。想想自己開發的程式可以公開讓人看見和被使用,以及和全世界一流的開發者交流合作,這對想做一番大事業的人來說非常誘人。

對於想吸收這類熱情人才的公司來說,開源就成了最佳的利器,能夠驅動開發者們的內在動力。比起追求高薪高福利,他們可能更重視的是自己的 GitHub 帳號上可以有更多貢獻記錄和有更高的星數,就像是開源界的網紅一樣。

建立好適合的平台,優秀的人才自然就會匯聚而來,打造出對世界具有影響力的軟體。

開源的賺錢方法

看到這邊,你可能會有個疑問:我知道開源很好沒錯,但是他們不是免費提供嗎?這樣要怎麼賺錢養活團隊呢?

其實在真正的商業世界,賺錢並不一定要靠軟體本身,更多的是其附加價值。下面是一些可能的開源商業模式:

  1. 提供服務或諮詢:

    有很多軟體儘管開源,對於企業來說穩定比起便宜更加重要,最重要的是出事了有人可以負責。如果單純使用開源的產品,一旦遇上了奇怪的問題,就得靠自己處理,就算回報上游也不一定會馬上回應。如果有購買付費服務的話,上游就有義務要優先解決客戶遇到的問題,這樣的確定性在商業環境中是非常有價值的。

  2. 客製化

    開源的軟體有時候功能並不符合需求,往往都需要做些修改才行。為了兼顧品質和效率,企業寧可請原作者直接修改而不是讓自己的工程師花時間去摸索。更有趣的是,有時客戶甚至會要求將客製化功能也一併開源,因為這樣未來軟體若有新版本,便無需再次付費升級客製化版本。

  3. 雲端託管

    這也是蠻多開源軟體的商業模式,特別是跟通訊協定、資料庫有關的開源軟體,通常都是架設在雲端上面。對用戶來說,既然都要付錢買雲服務,使用原創團隊所架設雲服務更加方便且可信任。不過我們後續也會討論到一些大型雲服務商和開源公司之間的利益衝突。

  4. 付費功能

    有些開源軟體並不是所有功能都開源,一些進階功能或是協助開發的工具往往是要付費才能取得。以 DDS 或是 Zenoh 這類用在車內通訊的協定來說,客戶很重視通訊協定有沒有通過車用的安全認證,像是 ASIL-D,所以軟體公司會另外修改開源軟體,釋出通過安規的版本來販賣。可以想成開源版本只是方便讓人評估試用,以吸引使用者,真正的商業機會在於產業的進階需求上面。

  5. 雙重授權

    對於某些軟體廠商來說,他們希望自己的軟體符合開源精神,但又不希望商業用戶不付費搭便車,往往會採取雙重授權的模式。作法通常是對於軟體採取強硬的授權,例如 GPL 或是 AGPL,透過感染性讓用戶必需要開源全部的軟體,而這正是商業用戶無法接受的。這時他們就不得不去購買商業授權,以避免任何可能的法律風險。

    MySQL 就是這樣的案例,如果把 MySQL 這個受歡迎的資料庫包入自己的程式就有被 GPL 感染的風險,所以付費取得商業授權可能是更加穩妥的做法。

  6. 軟體只是附加

    有些軟體開源並非是要靠軟體來賺錢,更多是為了增加使用者,透過影響力在其他部分獲利。常見的方式是搭配硬體來販售,畢竟無論是什麼樣的軟體都需要硬體來支援,當然這裡提到的硬體必須具備一定特殊性,否則便會被一般通用型電腦所取代。以最著名的例子 Raspberry Pi 來說,他的特色就是輕薄短小,又可以搭載一般的 Linux 系統,很適合讓學生拿來做各種專題。

    除了硬體外,有些則是為了信任和公開性而必須開源,就像是區塊鏈這個領域。一般來說區塊鏈的相關計畫都不是靠軟體本身來獲利,而是利用發幣、NFT 等等形式來獲得資金。區塊鏈的本質就是要獲得共識,以確保其不可竄改性;而共識的前提,便是必須絕對開放。因此,大部分公鏈都必須公開相關程式碼。

  7. 成立第三方機構

    最後一種則是比較特別。大部分的公司都需要依賴已經成為基礎設施的軟體,像是 Linux 這類底層軟體,這時候大家一起共同開發會是比較合理的選擇。所以很多著名的專案都會成立獨立的基金會,讓商業公司們可以投資人力和金錢,而成果則是開源讓大家共享。對商業公司來說,越是被大家使用的軟體,越有投資的價值,因為它們才有機會可以主導軟體規格的發展。除了最著名的 Linux Foundation 以外,日本的自駕車公司 TierIV 也將自己的自駕軟體 Autoware 貢獻給 Autoware Foundation,成為目前全世界最大的開源自駕車框架。

從商業角度來說,前兩種方法基本上不太能夠放量,完全依賴工程師的人力,但是後幾種方法就比較有規模化的機會了。隨著使用者的增加,同樣數量的工程師可以服務更多人,因此更加有利可圖。

開源的商業化挑戰

前面我們都在探討開源的好處以及方法,然而這並不代表只要開源就萬事大吉,相反地,開源對商業經營上的難度可能比起閉源還要高。可以看看現在大多數的軟體公司都不是以開源為生就知道了。

主要的挑戰來自於如下兩點:

  1. 如何讓公司穩定營利

    這也是開源商業化最主要的挑戰。使用開源的策略增加曝光並沒有問題,但是如何把吸引到使用者轉化成潛在的付費用戶,就必須要有巧妙的設計。其中最重要的就是要給使用者付費的理由,換句話說,你多提供了什麼價值。這個價值可以是額外的保固、特別的服務、又或是客製的功能等等。若是價值越高,免費客戶就越可能轉換成付費客戶。

    然而,對於大多數公司來說,不只是要營利,公司的成長性更加重要。開源軟體公司的營收成長需要考慮兩個方面:增加使用者基數以及轉換成付費用戶的轉換率。就如同金字塔一樣,使用者的基數大也就是金字塔的底部增加,上層的付費用戶就增加。又或者我們也可以提升金字塔的斜率,代表著轉換成付費用戶比率增加,營收也會相應成長。

    如何增加付費用戶

    當然這兩者的取捨也是門學問,如果過度講求轉換率(例如很多功能放在商業版),也會影響到使用者的基數,特別是開源世界通常對這種過度的商業策略十分反感,有可能社群會乾脆直接分岔 (fork),自己打造另一個專案來打對臺。

    舉個例子,雲端基礎設施公司 Joyent 透過聘用 Node.js 的創始人 Ryan Dahl 接管了 Node.js 的控制權。後來因為 Joyent 對於控制 Node.js 的一些爭議,例如發佈速度慢、對社群反應不積極,部分開發者另起爐灶建立了 io.js。這最終促成了 Node.js Foundation 的成立,Joyent 把控制權出讓給基金會。

    由此可知,開源並非治百病,如何平衡商業策略和社群觀感是非常重要的議題。

  2. 避免搭便車或是競爭者

    另外的問題就是一旦程式碼都公開,要如何確保不會有競爭者直接利用這些開源成果與自己做商業的競爭。

    大多數情況下,人們仍會優先使用原創者的專案,鮮少有分叉出去的專案能勝過原創。這主要歸因於先發優勢難以取代:一旦匯聚了一群使用者和開發者,便越容易吸引更多人加入,進而確保原創者對專案規格的主導控制權。

    然而到了雲端時代,情況就有所不同了。很多跟雲有關的專案最終還是得運行在雲端環境上,而雲端的 PaaS 服務基本上被三大家壟斷 (AWS、Azure、GCP),意味著如果這些雲服務商直接將這些專案整合進去他們的服務,原創者的利益就會受到威脅。對使用者而言,儘管他們願意相信原創者的技術品質,但雲服務商提供的功能實在太過方便,加之無論如何都仍需在雲端環境運行,因此不如直接購買一站式服務。

    原創者,例如 Redis 或是 MongoDB,為了應對這個問題,使出了雙重授權的方式來避免雲服務商與自己的商業競爭,卻也被認為這樣不符合開源精神。而且雲服務商還會打著開源大旗的名號分岔專案,讓社群開發者的資源流失。目前為止這利益衝突還沒有什麼比較好的解決方法,只能看看未來這些原創者能不能找出另外的營利之道了。

靠開源成功的案例

想要評斷一種模式能不能成功,我們可以看觀察市場上採取這種模式的玩家的狀況,這樣就能知道最佳情況下,開源公司可以成長到什麼程度。

以下整理各家開源軟體公司的營業額,他們最大的規模為何:

公司名稱 財年 營收(美元) 開源項目
Databricks 2025 38 億 Apache Sparks
MongoDB 2025 20.25 億 MongoDB
Elastic 2025 13 億 Elasticsearch
Confluent 2024 9.64 億 Apache Kafka
GitLab 2025 7.59 億 GitLab
HashiCorp 2025 6.8 億 Terraform 等等

由上可知,純靠開源最多只能成為中等企業規模,更多時候是巨型公司跳下來做開源,不論是 Meta 的 React、Microsoft 的 VScode、Google 的 Android、Kubernetes 等等。大公司不缺現金,要養活做開源的團隊並不困難,他們只在乎是否能在產業中佔到好的地位,就像是 Google 的 Chrome 控制了人們上網的入口,增加更多廣告機會一樣。因此,另外一種開源公司的出路則是讓大公司買下,就像是 IBM 希望佈局雲端業務以及商業 Linux 需求進而收購了 Redhat。

結語

開源最一開始是種共享精神,相信群眾的智慧可以讓軟體不斷進步,事實上一些人們依賴的高品質軟體確實是來自於這種開源精神下的成果,最著名的大概就是應用廣泛的各個 GNU 專案以及 Linux 作業系統。

然而,並非所有專案都可以完全依賴貢獻者無償的熱情,還是有些領域需要商業公司在不違背開源精神下來補足。商業總有種驅動力,希望可以利潤最大化,確保公司的存續,但如果做過頭又有可能傷害到共享的精神。這時候,如何協調兩種不一樣的價值觀就是需要克服的問題。

我們前面提到的例子,大多數都是在核心軟體開放的情況下,提供商業上有價值的服務,例如諮詢、認證或是雲端服務等等。如此一來,既可以確保開源這種人類共同協作的開放作法,又可以透過人們願意付費的商業模式來維持公司營運。

當然,這種平衡並非不能被打破。以前面提到的雲端服務商和雲端軟體的利益相衝為例,就是這種平衡模式的侷限性。直到如今為止,還沒有什麼真正好的解法。

對於個人開發者來說,開源是種理想、是種熱情,能夠與世界一流的人交流協作,打造有影響力的產品。然而對於公司來說,開源本質上只是一種商業手段,透過這個手段創造營收維持存續,可以對股東負責。

因此,只有在精心設計的開源框架和商業模式下,才能讓個人開發者得到滿足、公司獲得營收、整體開源社群也能獲益,創造多贏的局面。