您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

分析CockroachDB是怎樣圍繞開(kāi)源軟件構(gòu)建業(yè)務(wù)

大小:0.7 MB 人氣: 2017-09-28 需要積分:3

  文章講述CockroachDB是如何圍繞開(kāi)源軟件構(gòu)建業(yè)務(wù),并建立自身的盈利模式。

  Cockroach產(chǎn)生于對(duì)可用開(kāi)源數(shù)據(jù)庫(kù)和云DBaaS服務(wù)的失望,但它從來(lái)不被認(rèn)為是開(kāi)源軟件。

  2014年底,在GitHub社區(qū)的鼓勵(lì)和一些有遠(yuǎn)見(jiàn)的風(fēng)險(xiǎn)投資家的咨詢下,我們到了做決定的時(shí)候:是否應(yīng)該成立一家公司來(lái)加速CockroachDB的發(fā)展?一方面,雇傭一支優(yōu)秀的團(tuán)隊(duì)會(huì)讓你更快地開(kāi)發(fā)出一款可行的產(chǎn)品。另一方面,我們的目標(biāo)不再僅僅是構(gòu)建下一個(gè)偉大的開(kāi)源數(shù)據(jù)庫(kù)。

  我們面臨著如何圍繞開(kāi)源軟件構(gòu)建業(yè)務(wù)的難題。

  圍繞開(kāi)源軟件構(gòu)建業(yè)務(wù)

  自從RedHat開(kāi)辟了第一條道路以來(lái),開(kāi)源軟件商業(yè)模式一直在不斷發(fā)展。很少有人能成功地借用RedHat以支持和服務(wù)為中心的原始模型。事實(shí)上,大多數(shù)投資者都認(rèn)為早期的開(kāi)源商業(yè)模式是一個(gè)失敗的命題。這里有兩種常見(jiàn)的OSS商業(yè)模式可供選擇:

  核心開(kāi)放。這通常涉及一個(gè)功能強(qiáng)大的核心產(chǎn)品,它是免費(fèi)和開(kāi)源的,通常使用APL、MIT或GPL授權(quán)。圍繞核心部分提供一組專有軟件,以添加或擴(kuò)展其功能。這些專有的附加組件通常與支持和服務(wù)捆綁在一起,以商業(yè)軟件的形式出售。

  使用開(kāi)源軟件的云托管服務(wù)。通常,這也涉及到私有軟件(例如多租戶、計(jì)費(fèi)、服務(wù)指示板),但是最終產(chǎn)品是作為服務(wù)而不是軟件銷售的。

  這兩種模式正被許多公司成功地推行。Cloudera、Elastic和Confluent是我喜歡的三個(gè)案例,它們都有不同的模型,并且在不同的階段將開(kāi)源產(chǎn)品轉(zhuǎn)化為成功的業(yè)務(wù)。

  警示故事

  一些OSS公司為付費(fèi)功能設(shè)置的門檻太低,使得核心的OSS產(chǎn)品感覺(jué)“舉步維艱”。在2017年,任何擁有核心功能的產(chǎn)品在不需要商業(yè)許可的情況下無(wú)法擴(kuò)大規(guī)模,可能就是門檻設(shè)得太低了。也有一些公司在早期未能提供足夠的專有價(jià)值,而開(kāi)放核心正迅速成為一種標(biāo)準(zhǔn)的基礎(chǔ)設(shè)施。那些在核心產(chǎn)品中看到價(jià)值的,以及愿意為改進(jìn)產(chǎn)品而付費(fèi)的大公司,除了建立自己的自定義擴(kuò)展外,沒(méi)有別的選擇。

  有一些優(yōu)秀的開(kāi)源軟件公司由于缺乏收入而停止開(kāi)發(fā)它們的產(chǎn)品。最近一些,包括RethinkDB。以前,那些在默認(rèn)情況下可以進(jìn)入開(kāi)放核心產(chǎn)品的公司,逐漸在生存的利益上更有眼光(參考Paul Dix’s InfluxDB 文章)。

  這是一種微妙的平衡。為開(kāi)源軟件構(gòu)建付費(fèi)的“企業(yè)”特性可能會(huì)讓人感覺(jué)骯臟。付費(fèi)功能削弱了開(kāi)源的吸引力,并可能導(dǎo)致社區(qū)的不安。另一方面,龐大的云服務(wù)提供商在不尋找開(kāi)源生態(tài)系統(tǒng)的情況下重新包裝開(kāi)源軟件的做法,或者是1000億美元的跨國(guó)公司放棄了陷入困境的OSS公司的支持許可,這些都令人感到沮喪。如果你真的想要圍繞開(kāi)源軟件建立一個(gè)公司,你必須走一條狹窄的道路,盡早引入付費(fèi)功能,會(huì)有縮短使用的風(fēng)險(xiǎn)。如果引入付費(fèi)功能太晚,有可能鼓勵(lì)經(jīng)濟(jì)搭便車的人。在任何一個(gè)方向上偏離太遠(yuǎn),你的努力最終只會(huì)持續(xù)作為無(wú)報(bào)酬的開(kāi)源貢獻(xiàn)。

  那么,CockroachDB是如何賺錢的呢?

  我相信,最終我們將同時(shí)擁有云托管模型和核心開(kāi)放模型。對(duì)DBaaS的需求正在迅速發(fā)展,我們只寫(xiě)好了第一章(劇透提醒:AWS正在勝出)。但在不久的將來(lái),我們的產(chǎn)品將與那些打算在公共或私有云中運(yùn)行數(shù)據(jù)庫(kù)的公司更好地結(jié)合在一起。換句話說(shuō),我們追求的是核心開(kāi)放模式,盡管其中有一些有趣的Cockroach實(shí)驗(yàn)室的特點(diǎn)。

  首先是許可的問(wèn)題。許多采用核心開(kāi)放模型的公司都將其專有特性作為封閉的源擴(kuò)展來(lái)實(shí)現(xiàn)。另一些則發(fā)布了兩個(gè)或更多的產(chǎn)品,其中包括包含封閉源代碼的企業(yè)版本,并作為已編譯的二進(jìn)制文件分發(fā)。這些模型存在明顯的缺陷。它們很難升級(jí)到最新版本,它們經(jīng)常涉及多個(gè)開(kāi)發(fā)分支,這些分支地管理令人沮喪,并且它們消除了新特性所涉及的開(kāi)源的好處:外部開(kāi)發(fā)人員不能調(diào)試或定制產(chǎn)品的專有部分。

  CockroachDB社區(qū)許可證(CCL)

  我們將以不同的方式提供付費(fèi)的企業(yè)特性。目前,我們的GitHub上的所有內(nèi)容都是按照Apache許可證2(APL)的條款進(jìn)行授權(quán)的。我們所介紹的企業(yè)特性將包含在一個(gè)新的許可證所包含的源文件中,稱為CockroachDB社區(qū)許可證(CCL)。源代碼仍然是可用的,但是因?yàn)樗话ㄗ杂傻脑俜峙?,所以它不是根?jù)定義而開(kāi)源的。其目的是確保企業(yè)特性的商業(yè)使用,在評(píng)估周期之外,是付費(fèi)的。這些特性不會(huì)在默認(rèn)情況下出現(xiàn),將在文檔、代碼和幫助消息中清晰地標(biāo)記出來(lái),并且只能通過(guò)操作員或開(kāi)發(fā)人員的選擇來(lái)啟用。我們發(fā)布的二進(jìn)制文件將包含這些特性,但不能在FLOSS許可下進(jìn)行分發(fā)。然而,也可以使用“純”FLOSS分發(fā)版,對(duì)于那些需要分發(fā)版來(lái)說(shuō)企業(yè)特性是不存在的。

  因?yàn)樵创a可以用于所有由CCL許可所覆蓋的特性,所以我們希望其他人能夠從我們構(gòu)建的東西中學(xué)習(xí),并且有一天可以構(gòu)建更好的產(chǎn)品。我們希望我們的客戶能夠定制軟件以適應(yīng)他們自己的需求。

  我們將如何決定由CCL許可所覆蓋的特性?

  這是一個(gè)很難回答的問(wèn)題,也是平衡法的關(guān)鍵。我們已經(jīng)將選擇的結(jié)果歸結(jié)為一個(gè)石蕊測(cè)試:創(chuàng)業(yè)成功所需的特性是APL,并且是開(kāi)放核心的一部分;只對(duì)已經(jīng)成功的公司主要有用的特性是CCL,并且是企業(yè)產(chǎn)品的一部分。每一個(gè)新特性的許可,我們將根據(jù)我們的直覺(jué)和社區(qū)反饋來(lái)決定。

  然而,因?yàn)檫@樣的決定是主觀的,它們會(huì)隨著時(shí)間的推移而發(fā)展。將企業(yè)功能從CCL遷移到APL是很簡(jiǎn)單的,我們希望這是對(duì)任何特性的一種需求,而這些特性最終都是來(lái)自于創(chuàng)業(yè)公司的高需求。

  為了在2017年取得成功,一家初創(chuàng)公司需要從數(shù)據(jù)庫(kù)中獲得什么?

  這也是激發(fā)CockroachDB設(shè)計(jì)的特點(diǎn):

  跨數(shù)據(jù)中心的部署和一致的復(fù)制以克服失敗的災(zāi)難(例如,停機(jī)和丟失或不一致的數(shù)據(jù))。

  水平的可伸縮性和云本地設(shè)計(jì),以保證數(shù)據(jù)架構(gòu)的未來(lái)。

  具有分布式ACID事務(wù)的SQL API,以及用于開(kāi)發(fā)人員生產(chǎn)的查詢執(zhí)行。

  雖然上面的一些特性在其他數(shù)據(jù)庫(kù)中被認(rèn)為是企業(yè)特性,但是我們相信它們是構(gòu)建產(chǎn)品和服務(wù)的一個(gè)通用的基礎(chǔ),并且在APL中仍然是免費(fèi)的。畢竟,這些特性也代表了CockroachDB這款產(chǎn)品。

  我們計(jì)劃在2017年推出兩項(xiàng)此類產(chǎn)品。

  第一種是完全分布式的、擁有增量的能力,可以快速、一致地備份和恢復(fù)使用可配置存儲(chǔ)庫(kù)(例如S3或GCS)的大型數(shù)據(jù)庫(kù)。其中相同的功能,但非分布式的,將免費(fèi)提供給所有用戶。

  第二種是地理分區(qū)——一種對(duì)數(shù)據(jù)復(fù)制方式和位置進(jìn)行行級(jí)控制機(jī)制的數(shù)據(jù)庫(kù)。地理分區(qū)允許一個(gè)單一的、邏輯的數(shù)據(jù)庫(kù)為地理上不同的客戶提供低延遲的訪問(wèn),并允許遵從數(shù)據(jù)主權(quán)需求。

  構(gòu)建CockroachDB已經(jīng)兩年多了,我們現(xiàn)在已經(jīng)接近1.0版本。我們認(rèn)識(shí)到使用這些功能構(gòu)建一個(gè)新的數(shù)據(jù)庫(kù)所固有的挑戰(zhàn),并且我們正在努力確保能夠繼續(xù)開(kāi)發(fā)CockroachDB數(shù)據(jù)庫(kù),只要有更好的產(chǎn)品可以在下一個(gè)版本中發(fā)布。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?