開源商業化及云化之路該如何走?
原創作者:馬洪賓
編輯:徐杰承
【51CTO.com原創稿件】近年來,開源生態發展迅猛,不斷推動技術創新和產業發展,已經成為全球數字科技的關鍵。與此同時,從開源到開源商業化也成為了越來越多企業與個人貢獻者共同關注的話題。近日,Kyligence 創始成員、技術合伙人,Apache Kylin 項目管理委員會成員馬洪賓圍繞開源的時代背景,開源商業化及云產品化等話題,從商業與技術的不同角度進行了分享。
開源的時代背景
1、開源模式
提到開源,大家最先想到的是以 Linux、Glue 為代表的自由軟件的時代。那時,大家強調的是軟件的自由分發,背后是人類對自由的渴望。
但現如今,開源的現狀與曾經的自由軟件時代已經有所不同,很少有非常成功的開源項目由個人主導,比較成功的開源軟件、開源產品的背后都有一些公司在進行商業化運作。
如今,企業的運作模式更多的是業務的創新激發技術的創新,而技術的創新又進一步推動業務的創新。在這種模式下,不再是由個人的因素推導開源任務,而是這些公司出于自身業務驅動的需要,會源源不斷地把一些好的內部產品進行開源。目前,開源已經成為了一種軟件的傳播模式和開發協同模式。
2、利益考量
現在的開源更多是一種由商業化公司支撐、帶有商業化目的、帶有利益交換性質的行為。當一個產品開源之后,就會失去一部分的市場與利潤,但這其實是利益交換的一部分。作為社區用戶,你可以免費使用開源軟件,但你在使用的同時貢獻了你的時間、真實數據、真實場景,貢獻了自己機房里寶貴的計算資源,這些東西都哺育了社區進一步地發展,所以這是一種帶著利益交換性質的研發協同的模式。這就是所謂的開源在開發和協作方面的明顯作用。
3、商業驅動
如今,很多公司依靠開源項目為生,且在過去的 20 年中,這些靠開源產品為生的公司的總市值也在大幅增加。這其中離不開商業的驅動,投資圈對開源的項目以及開源的公司更是感興趣。從投資人的角度來看,他們希望開源項目能夠商業化并最后獲得利益。對此, A16Z 投行總結了成功的開源項目應具備的三大要素。
Project-Community Fit:一個開源項目,首先需要獲得開發者的認同,開源項目好,開發者就會在 GitHub 上點贊增加 star 數,他們也會貢獻代碼,提交很多的 PR(Pull Request)。一個優秀的開源項目,往往能夠在早期階段就累積相當多的開發者群體,這個群體的積累對開源項目尤其是開源商業化的成功是非常關鍵的基礎;
Product-Market Fit:光有好的開發者社區是不夠的,還需要做出一款很好的產品,讓那些根本沒有開發能力的人也會頻繁地、主動地下載這個產品,并且在日常工作中使用。如果一個項目的下載量基本處于穩定的上升狀態,這就表示這個項目的健康度非常好;
Value-Market Fit:對投資人來說,擁有一款大家都愛用的產品依然是不夠的,因為項目最后還是要能夠賺錢,這才能夠達到最終目的。因此開源項目到底是否能夠產生足夠多的市場價值,這個價值能否被市場的用戶接受,也是一項重要的考量標準。
???
圖片來源:ANDREESSEN HOROWITZ
開源的商業化
1、開源商業化的開始
接下來,我用 Kylin 項目的商業化為例,介紹開源商業化的開始和開源商業化會遇到的一些挑戰。
Apache Kylin 最早的定位是在大數據基礎方向,當時云計算并不是那么流行,所以 Kylin 主要的定位還是在以 Hadoop 為基礎的數據湖上構建的數據管理系統,這個數據管理系統有一個輕量的語義層,這個語義層是一個一致的維度和度量的模型,當分析師查詢數據時,看到的是一個個被梳理好的數據模型,每個模型有自己一致的維度和度量的定義,這對分析師來說非常友好。并且由于存在建立數據模型的步驟,使得 Kylin 能夠針對數據模型進行提前物化,這有助于提升查詢的性能和吞吐量。由于這些主要優勢,Kylin 很快獲得了社區的認同。不管是 GitHub Star 數量還是全球采用的數量,其實都是非常可觀的,并且處于不斷增長的趨勢。于是,在 2016 年,我們就出來專門成立了一家公司來做 Kylin 的商業化。
???
圖片來源:Apache Kylin
2、開源商業化的挑戰
前文提到了成功的開源項目應具備三大要素。對于一個商業化公司來說,可能最大的難點還是在 Value-Market Fit,就是需要創造一定的價值,讓市場接受這個價值,讓市場愿意花錢為這個價值買單。為了創造這種 Value-Market Fit,一般來說業界有三種不一樣的模式。
Support:一個開源項目基本百分之百開源,你可以隨意使用,但當遇到問題或者上線之前,就需要考慮是否購買商業化的服務,來確保上線后不出現問題。目前,這種模式不太主流,典型的代表只有 RedHat 一家。
Open Core:貢獻最核心的東西,并在開放的內核周圍開發周邊功能,例如監控、安全、審計等方面的能力,這個模式在 MongoDB 的例子上得到了最好的證實。
SaaS:也可以概括為 Cloud 模式。這一類典型的代表就是像 DataBricks 這樣的公司,它是靠一個云上的 DataBricks 的托管服務來賺取利潤。這種模式也是現在比較受業界和資本追捧的一種模式。
以 Kylin 為例,我們首先嘗試的是 Open Core 的模式,但很快就發現 Open Core 模式是存在一些問題的。這里的 Core 必然是一個被高度隔離、被高度抽象的能力。Kylin 的主要能力是能夠在萬億級數據上提供亞秒級的查詢響應,助力所有規模的企業顯著提升大數據分析效率,可以說 Kylin 解決大數據查詢的性能問題。這其實有一定門檻,一般技術公司可能沒法達到實現這樣的效果。但業界始終還是會有很多廠商有能力去追趕甚至作出超越。與此同時,就算把 Core 做的非常有競爭力,但仍會存在著開源和內部商業化計劃的沖突。任何一個在 Open Core 上的重大能力的升級,都會存在爭議,這個東西是否應該開源,如果開源的話,它可能會影響內部的商業化推進;如果不開源的話,高度抽象的 Open Core 在外部世界會面臨很大的競爭壓力,如果不持續地提升競爭能力,這個 Open Core 在業界的領先地位就會受到挑戰。所以這是一個非常矛盾的事情。
???
圖片來源:ANDREESSEN HOROWITZ
3、云的時代
剛才提到的 MongoDB 在上市之后,也很快發現了 Open Core 模式的弊端,所以它很快也布局了一個云化產品,把新的增長希望放到 SaaS 或者是云模式方面。在這個模式下,不用糾結哪些開源哪些未開源,反正都是放在云上,它給大家帶來的更多價值就是一種相當于無托管的運維服務。很多云上的用戶,為了節省開發成本,提升開發效率,是愿意花錢去購買這些在云上已經部署好的服務,這種服務往往也帶來了比較高的 SLA(Service-Level Agreement)。
我們可以看到從 Support 模式到 Open Core 模式再到云產品化的模式,似乎是一個被業界實踐后總結的必經之路。最終,所有做開源商業化的公司都會聚焦在云產品化或者 SaaS 化的模式。所以當這個方向成為主流方向時,大家就都會往云產品化方面去投資。未來一定是云的時代,所以 Kyligence 在 2016、2017 年的時候就已經成立了云產品的團隊,并且持續地在云產品化方面進行投資。當然,這個過程也是非常有挑戰的。
???
圖片來源:ANDREESSEN HOROWITZ
云產品化挑戰
1、底層邏輯適配
首先,云產品化過程中需要進行底層邏輯的轉換與適配。早期 Kyligence 在接觸 Hadoop 時,有一個非常優秀的項目叫 YARN, YARN 的定位是 Data Operating System,本質跟 OS 是一樣的。當時,基本上所有的大數據生態組件都是依托在 YARN 的 Operating System 之上。因此大家都要服從 YARN 的 OS 的底層邏輯。
而新一代的潮流是 K8S 的朝向。與 YARN 一樣,基于 K8S 也能夠部署很多的 application,比如 Flink、Spark 之類。很有意思的是,Spark 也完成了一個從 YARN Operating System 到 K8S 的變化,完成了容器化工作。當然,它不僅僅是容器化工作,也涉及到彈性的擴縮容等方面。
因此,當從 YARN 的操作系統的底層邏輯轉變到 Cloud OS 的底層邏輯的時候,我們需要處理很多問題,比方說在云原生時代,CI/CD、構件發布測試、回滾這些事情如何完成。云原生的 Profiling 跟本地化實現的方式都不一樣,基本都是一種在 K8S 框架下開發的新玩法,當然這些生態也都非常成熟。
如果你用了云和 K8S,就一定要非常關注資源的申請和回收,如何及時地進行資源的擴縮容,以及云原生的測試方法論,比如像云上的混沌測試也是非常火,在云上測試的方法可能還會進一步升級。接下來還有一點,尤其是面向分析類或者數據類的產品,需要非常關注數據的存儲和計算分離的架構,因為之前在本地機房、以及 YARN OS 的模式下,數據和計算基本上是可以認為存在比較強的本地性,但是在云上這個假設并不成立,所以這個會造成非常大的 Fundamental 架構上的重新設計。
???
圖片來源:網絡搜索
2、成本控制
云產品化的另一個考量點,就是云上的成本控制。在云上所有技術、所有方案的成本是可視化的,所以當用戶評價產品好壞或總體擁有成本高低時,是非常容易得到這個數據的。任何一個想要在云上立足的產品,都需要關注云上成本的表現。為了控制在云上的成本,你需要做到以下幾點。
第一,軟件或者產品需要對負載有感知能力。當負載大的時候,擴展出更多節點來支撐壓力。當負載降下來的時候,盡快降低資源,以防止實例的浪費。
第二,存儲和計算要分離,否則很難完成資源的擴縮容,一旦存儲和計算耦合,縮容就意味著數據要重新分布,這是非常麻煩的,也會非常緩慢。
第三,智能地使用云上的折扣實例。云上會有很多的打折實例,這些實例如果不充分利用的話,相當于每次付 100% 的價格,在成本上是會有劣勢的。
第四,最大化地挖掘硬件的潛力,例如 CPU,你能榨干它肯定是要完全的榨干它,不然的話別人用一個 CPU 能搞定的事情,你要用兩個 CPU,那你的成本就是人家的兩倍。
第五,物化查詢結果,利用一些閑置的甚至是折扣的實例資源,提前做好計算方面的工作,然后把結果物化。這樣當線上的壓力到來之時,可以利用這些物化的結果快速且低成本的得到結果。這個方向也是一個非常重要而且非常有意思的方向。
???
圖片來源:Kyligence
Kyligence 的商業化算是走得非常前面,今年公司也提出了智能數據云戰略,幫助云上企業實現自動化的數據服務和管理,通過節省人力和物力極大降低整體 TCO(總持有成本)。從我們接觸到的客戶和用戶來看,他們不僅希望有開源的能力,在某些需求下也希望有企業級的能力,包括像安全、穩定性、一些高級的特性。從開源技術到企業級產品,服務用戶群體雖然不盡相同,但其實又互為統一,變化的是如何讓用戶能夠從項目中獲得價值,這其實極具挑戰。
會議推薦
一個成功的開源項目,離不開商業和社區的共同支持。除了開源商業化戰略的制定與執行外,開源社區生態的運營與治理同樣是影響開源項目發展的重要因素。在 2022 年 4 月 9 日的 WOT 全球技術創新大會中,我們特別設立了“開源運營與治理”專題。屆時,數位擁有豐富經驗的開源領域專家,將圍繞開源的運營與治理,基于開源項目的創業等話題分享其真知灼見。
???
???
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】