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