從數(shù)據(jù)庫(kù)開(kāi)源商業(yè)版本差異談起
?數(shù)據(jù)庫(kù),作為基礎(chǔ)軟件產(chǎn)品,其研發(fā)資源及成熟應(yīng)用,需要較大投入和較長(zhǎng)周期。開(kāi)源作為一種新的軟件開(kāi)發(fā)協(xié)作模式,可大大加速這一過(guò)程。從上世紀(jì)九十年代,以 MySQL 和 PostgreSQL 為代表的開(kāi)源數(shù)據(jù)庫(kù)興起;到近些年來(lái)國(guó)內(nèi)數(shù)據(jù)庫(kù)也紛紛走向開(kāi)源道路。的確,開(kāi)源能為企業(yè)及產(chǎn)品帶來(lái)很大的收益,如加快研發(fā)周期、加速產(chǎn)品成熟、促進(jìn)生態(tài)建設(shè)等。當(dāng)然,出于商業(yè)化訴求,企業(yè)也紛紛摸索在開(kāi)源條件下的商業(yè)模式,大部分企業(yè)在開(kāi)源的同時(shí)也提供了商業(yè)版本。作為最終用戶,是選擇社區(qū)開(kāi)源版本還是商業(yè)閉源版本,是個(gè)值得思考的問(wèn)題。本文收集數(shù)據(jù)庫(kù)領(lǐng)域幾家代表性企業(yè)開(kāi)源(社區(qū))版本與商業(yè)(企業(yè))版本產(chǎn)品功能及差異,并對(duì)這一差異背后的原因加以思考。本文部分資料來(lái)自阿里云、甲骨文、PingCAP、OceanBase 公司朋友提供,特表示感謝。
1. 常見(jiàn)數(shù)據(jù)庫(kù)開(kāi)源商業(yè)差異
1).MySQL
MySQL 作為最為流行的一款開(kāi)源數(shù)據(jù)庫(kù),其社區(qū)版是完全免費(fèi)的;企業(yè)版則需要支付許可證費(fèi)用且提供了更強(qiáng)功能。針對(duì)社區(qū)版本,功能大家已經(jīng)比較熟悉了,下面重點(diǎn)說(shuō)明下企業(yè)版的增強(qiáng)功能。總體來(lái)說(shuō),MySQL 企業(yè)版的功能比社區(qū)版更豐富,而且有更高的安全性、可管理性及配套服務(wù)等。其具體增強(qiáng)功能如下:

2).TiDB
TiDB 是 PingCAP 公司自主設(shè)計(jì)、研發(fā)的開(kāi)源分布式關(guān)系型數(shù)據(jù)庫(kù),是一款同時(shí)支持在線事務(wù)處理與在線分析處理 (HTAP) 的融合型分布式數(shù)據(jù)庫(kù)產(chǎn)品,具備水平擴(kuò)容或者縮容、金融級(jí)高可用、實(shí)時(shí) HTAP、云原生的分布式數(shù)據(jù)庫(kù)、兼容 MySQL 5.7 協(xié)議和 MySQL 生態(tài)等重要特性,支持在本地和云上部署。其產(chǎn)品在誕生之初,就秉承開(kāi)源理念,其核心多款開(kāi)源項(xiàng)目合計(jì) Star 數(shù)突破50K。其企業(yè)版和社區(qū)版產(chǎn)品差異如下:

3).OceanBase
OceanBase 一款開(kāi)源分布式 HTAP 數(shù)據(jù)庫(kù)管理系統(tǒng),具有原生分布式架構(gòu),支持金融級(jí)高可用、透明水平擴(kuò)展、分布式事務(wù)、多租戶和語(yǔ)法兼容等企業(yè)級(jí)特性。自2021年6月開(kāi)源以來(lái),秉承內(nèi)核完全開(kāi)放的原則,已開(kāi)源超 300 萬(wàn)行代碼。其希望通過(guò)開(kāi)源讓更多的上下游廠商、伙伴和開(kāi)發(fā)者參與進(jìn)來(lái)了解和使用產(chǎn)品,使產(chǎn)品發(fā)展的更快、更好、更普及,旨在共同將OceanBase打造成全球最具競(jìng)爭(zhēng)力的分布式數(shù)據(jù)庫(kù)。其提供企業(yè)版和社區(qū)版兩種形態(tài):
- OceanBase 數(shù)據(jù)庫(kù)企業(yè)版:OceanBase 企業(yè)版是一款完全自研的企業(yè)級(jí)原生分布式數(shù)據(jù)庫(kù),在普通硬件上實(shí)現(xiàn)金融級(jí)高可用,首創(chuàng)“三地五中心”城市級(jí)故障自動(dòng)無(wú)損容災(zāi)新標(biāo)準(zhǔn),刷新 TPC-C 標(biāo)準(zhǔn)測(cè)試,單集群規(guī)模超過(guò) 1500 節(jié)點(diǎn),具有云原生、強(qiáng)一致性、高度兼容 Oracle/MySQL 等特性。
- ?OceanBase 數(shù)據(jù)庫(kù)社區(qū)版:兼容 MySQL 的單機(jī)分布式一體化數(shù)據(jù)庫(kù),具有原生分布式架構(gòu),支持金融級(jí)高可用、透明水平擴(kuò)展、分布式事務(wù)、多租戶和語(yǔ)法兼容等企業(yè)級(jí)特性。OceanBase 社區(qū)版數(shù)據(jù)庫(kù)內(nèi)核開(kāi)源,與 MySQL 兼容,對(duì)接虛擬化和大數(shù)據(jù)技術(shù)及產(chǎn)品,支持多種圖形化的開(kāi)發(fā)工具、運(yùn)維監(jiān)控工具和數(shù)據(jù)遷移工具;同時(shí)社區(qū)版提供開(kāi)放的接口和豐富的生態(tài)能力,支持企業(yè)或個(gè)人更好的實(shí)現(xiàn)定制化業(yè)務(wù)需求。

4).PolarDB-X
阿里云,近些年來(lái)非常重視開(kāi)源生態(tài)建設(shè)。在數(shù)據(jù)庫(kù)領(lǐng)域開(kāi)源了多款產(chǎn)品,以 PolarDB-X 產(chǎn)品為例,是在2021年的云棲大會(huì)正式開(kāi)源。其負(fù)責(zé)人表示“我們將阿里最核心的云原生數(shù)據(jù)庫(kù)技術(shù)進(jìn)行開(kāi)源,希望開(kāi)發(fā)者和客戶通過(guò)開(kāi)源版本快速使用阿里云數(shù)據(jù)庫(kù)產(chǎn)品技術(shù),并參與到技術(shù)產(chǎn)品的迭代過(guò)程中來(lái),共建云原生分布式數(shù)據(jù)庫(kù)生態(tài)。”P(pán)olarDB-X是由阿里自主研發(fā)的原生MySQL分布式數(shù)據(jù)庫(kù),兼容MySQL協(xié)議與客戶端,具備自動(dòng)負(fù)載均衡、高可用、HTAP混合負(fù)載、支持分布式事務(wù)、全局二級(jí)索引等重要特性,專(zhuān)注解決超高并發(fā)吞吐、海量數(shù)據(jù)存儲(chǔ)、大表瓶頸等數(shù)據(jù)庫(kù)瓶頸難題,歷經(jīng)各屆天貓雙11及全行業(yè)客戶業(yè)務(wù)的考驗(yàn)。從范圍上看,PolarDB-X 開(kāi)源較為徹底,開(kāi)發(fā)的新功能在經(jīng)過(guò)三個(gè)月的線上試用后,就會(huì)合入到開(kāi)源分支中。除了阿里系其他生態(tài)工具類(lèi)產(chǎn)品外,其自身功能全部實(shí)現(xiàn)了開(kāi)源。其主要功能包括:

2. 數(shù)據(jù)庫(kù)商業(yè)化功能思考
從上面幾款數(shù)據(jù)庫(kù)產(chǎn)品可見(jiàn),開(kāi)源產(chǎn)品與商業(yè)產(chǎn)品在大體功能上相差不大,重點(diǎn)是在部分企業(yè)級(jí)功能和服務(wù)上面。這其中主要包括幾個(gè)方面:
1).安全
安全功能,是企業(yè)選擇一款產(chǎn)品的重點(diǎn)考慮要素之一,特別是數(shù)據(jù)庫(kù)這種承載數(shù)據(jù),擔(dān)負(fù)企業(yè)核心業(yè)務(wù)的基礎(chǔ)平臺(tái)。關(guān)于安全還可細(xì)分為三類(lèi)功能:一是訪問(wèn)行為類(lèi),如審計(jì)、白名單、防火墻;二是數(shù)據(jù)存儲(chǔ)展示類(lèi),如加密、脫敏、簽名;三是安全擴(kuò)展類(lèi),如對(duì)接第三方安全系統(tǒng)。上述三類(lèi)功能,重點(diǎn)是解決數(shù)據(jù)庫(kù)平穩(wěn)運(yùn)行、數(shù)據(jù)合規(guī)使用及管理便利性問(wèn)題。企業(yè)版可以很好地滿足此類(lèi)需求,如用戶使用社區(qū)版本則需通過(guò)外購(gòu)第三方或自研的方式解決。
2).運(yùn)維
運(yùn)維能力,是企業(yè)能否用好產(chǎn)品的關(guān)鍵因素之一。好的產(chǎn)品,還需要好的運(yùn)維支撐能力來(lái)輔助。企業(yè)版軟件在這部分功能上主要是提供可視化、便捷的運(yùn)維方式為主,包括常見(jiàn)的安裝部署、備份恢復(fù)、監(jiān)控告警、異常診斷、性能優(yōu)化等。重點(diǎn)是解決數(shù)據(jù)庫(kù)的運(yùn)維效能問(wèn)題。這部分相對(duì)難度不大,如用戶使用社區(qū)版本可通過(guò)自研方式去解決;而且對(duì)于中大型企業(yè)來(lái)說(shuō),往往都有一套成熟運(yùn)維體系,即使企業(yè)版提供也許融入自有體系中,因而相對(duì)不是很剛需。
3).生態(tài)
生態(tài)功能,主要是指企業(yè)的上下游及關(guān)聯(lián)方使用好此產(chǎn)品所需要的功能。這其中可細(xì)分為幾種情況:一是開(kāi)發(fā)者生態(tài),提供好的設(shè)計(jì)、開(kāi)發(fā)平臺(tái)供開(kāi)發(fā)者使用,方便開(kāi)發(fā)者快速上手;二是數(shù)據(jù)生態(tài),即數(shù)據(jù)如何流入、流出此平臺(tái),企業(yè)內(nèi)往往不止一種數(shù)據(jù)庫(kù),需要數(shù)據(jù)在多平臺(tái)間流動(dòng);三是兼容生態(tài),即為了充分享受其他產(chǎn)品的生態(tài)能力二提供的兼容性功能,如協(xié)議、語(yǔ)法、工具等方面的兼容。上述功能是重點(diǎn)解決企業(yè)使用數(shù)據(jù)庫(kù)開(kāi)發(fā)好系統(tǒng)的問(wèn)題。這部分相對(duì)難度較大,但有些功能屬于非剛需。特別在兼容性上做的很好的產(chǎn)品,通常可利用原有生態(tài)上的部分能力,可解決一定問(wèn)題。
4).服務(wù)
只有好的產(chǎn)品,沒(méi)有好的服務(wù),是無(wú)法保證能夠使用好的。特別是對(duì)于承載企業(yè)關(guān)鍵業(yè)務(wù)的數(shù)據(jù)庫(kù),是不允許出現(xiàn)任何閃失的。這也是很多用戶考慮購(gòu)買(mǎi)企業(yè)版,希望能得到的“兜底”服務(wù)效果。企業(yè)版提供的服務(wù),不僅在范圍上、時(shí)效性、預(yù)防類(lèi)等多方面比社區(qū)版本更有保障,而且有公司能夠擔(dān)責(zé)對(duì)用戶也是一種解脫。當(dāng)然現(xiàn)在也有一種"開(kāi)源商業(yè)服務(wù)"的形式,即提供對(duì)開(kāi)源產(chǎn)品的商業(yè)服務(wù),能在一定程度上解決企業(yè)使用開(kāi)源的問(wèn)題。這種情況,則需重點(diǎn)考慮服務(wù)企業(yè)的資質(zhì)能力(特別在此開(kāi)源項(xiàng)目上)。?




























