國(guó)產(chǎn)數(shù)據(jù)庫(kù)“開源套殼”是否可???
當(dāng)前位置:點(diǎn)晴教程→閑情逸致
→『 微信好文 』
導(dǎo)讀 本文墨天輪社區(qū)特約作者 芬達(dá)(芬達(dá)的數(shù)據(jù)庫(kù)學(xué)習(xí)筆記公眾號(hào)作者) 獨(dú)家稿件,內(nèi)容原創(chuàng),僅代表作者個(gè)人觀點(diǎn),歡迎大家交流、討論。 背 景 之前看過(guò)白鱔老師的《國(guó)產(chǎn)數(shù)據(jù)庫(kù)擁抱開源沒毛病》一文,勾起了我對(duì)數(shù)據(jù)庫(kù)開源、商業(yè)化這塊的思考,此前也聽到過(guò)不少“XX 數(shù)據(jù)庫(kù)是根據(jù) PG/MySQL 改的”之類的話語(yǔ),那么所謂“自主”數(shù)據(jù)庫(kù)和“套殼”數(shù)據(jù)庫(kù)有什么區(qū)別呢?他們各自的優(yōu)缺點(diǎn)是什么、又會(huì)如何發(fā)展?本文是我的觀點(diǎn)。 先說(shuō)一下閉源套殼 在數(shù)據(jù)庫(kù)領(lǐng)域沒有人會(huì)使用商業(yè)的閉源產(chǎn)品做套殼產(chǎn)品或服務(wù),然后售賣,因?yàn)檫@違法。但就在十幾年前,在操作系統(tǒng)領(lǐng)域,存在這種情況。番茄花園是 2000 年左右火起來(lái)的盜版 Windows,它是基于微軟的閉源 Windows 系統(tǒng)進(jìn)行破解、修改并添加了一些額外功能,如激活、優(yōu)化等。盡管番茄花園 Windows 版本在外觀和使用體驗(yàn)上與正版 Windows 非常相似,但其侵犯了微軟的知識(shí)產(chǎn)權(quán)。在 2009 年,微軟起訴了番茄花園,并獲得了勝訴。此后,番茄花園的官方網(wǎng)站被關(guān)閉,創(chuàng)始人入獄,其盜版 Windows 操作系統(tǒng)的傳播也受到了打壓。 數(shù)據(jù)庫(kù)領(lǐng)域沒有閉源套殼的例子,但存在閉源改造的例子,也就是先把別人的閉源產(chǎn)品的源碼花重金買下來(lái),在這基礎(chǔ)上發(fā)展國(guó)產(chǎn)數(shù)據(jù)庫(kù),以下是例子: 聊聊完全自主可控的國(guó)產(chǎn)數(shù)據(jù)庫(kù) 我給這四款數(shù)據(jù)庫(kù)畫了個(gè)關(guān)系圖: 其中,達(dá)夢(mèng)是閉源的,其他三款產(chǎn)品都是開源的,可見開源更受歡迎,擁抱開源沒毛病。脫胎于互聯(lián)網(wǎng)業(yè)務(wù)的 TiDB、OceanBase,為了和國(guó)際接軌,選擇在美國(guó)的 github 上開源,而脫胎于傳統(tǒng)行業(yè)的 openGauss,選擇在國(guó)內(nèi)的 gitee 上開源。 不基于“開源套殼”的國(guó)產(chǎn)數(shù)據(jù)庫(kù)登頂國(guó)產(chǎn)數(shù)據(jù)庫(kù)排行榜 top 4,是否意味著“自主”數(shù)據(jù)庫(kù)是更優(yōu)的選擇呢?其實(shí)不然,請(qǐng)先等“開源套殼”數(shù)據(jù)庫(kù)們登場(chǎng)后,再回來(lái)討論。 國(guó)際上的“開源套殼”數(shù)據(jù)庫(kù)案例 首先我要解釋一下,在國(guó)際上“開源套殼”意味著什么,其實(shí)就是分支的意思,舉個(gè)我們熟悉的例子,我們知道開源數(shù)據(jù)庫(kù) MySQL 是有兩大分支的,其關(guān)系如下圖, 這兩個(gè)分支是 —— Percona 和 MariaDB。 根據(jù) GPLv2 協(xié)議的特點(diǎn),Percona 和 MariaDB 他們可以自由地修改 GPL 許可的 MySQL 源代碼,并在遵循相同許可證的前提下分發(fā)了修改后的版本,所以他們套殼后會(huì)繼續(xù)開源。遵循了 GPL 許可條款的情況下,他們可以將 Percona 和 MariaDB 用于商業(yè)和非商業(yè)用途。 其中,MariaDB 在分發(fā)了開源的社區(qū)版產(chǎn)品的同時(shí),還分發(fā)了閉源的 MariaDB Enterprise Server 企業(yè)版??雌饋?lái)他好像沒有遵循 GPL 協(xié)議,實(shí)際上不然,MariaDB Enterprise Server 的核心仍然是開源的,并遵循 GPL 協(xié)議。然而,企業(yè)版可能會(huì)包含一些專有的插件、工具或其他組件,這些組件可以在遵循其他許可協(xié)議的情況下提供。這種做法通常被稱為 “開源核心”或“開放核心”模型。 在這種模型下,企業(yè)版的用戶支付許可費(fèi),以獲得附加功能、性能優(yōu)化、專業(yè)支持等服務(wù)。這些附加組件并不需要遵循 GPL 協(xié)議,但核心數(shù)據(jù)庫(kù)功能仍然是開源的。 我不是法律專家或開源協(xié)議的專家,但我個(gè)人認(rèn)為現(xiàn)有的國(guó)際案例,可以打消一些企業(yè)的擔(dān)憂——到底 MySQL 是否可以用于商業(yè)化,用 MySQL 套殼數(shù)據(jù)庫(kù)是否有法律風(fēng)險(xiǎn)。 如果依然擔(dān)心受到 GPL 開源協(xié)議的影響,不想開放數(shù)據(jù)庫(kù)內(nèi)核代碼,那么企業(yè)可以選擇另外一款受歡迎的數(shù)據(jù)庫(kù)做套殼——PostgreSQL,他遵循的是商業(yè)更友好的 BSD 協(xié)議,他允許套殼開源數(shù)據(jù)庫(kù)做二次開發(fā)的廠商,修改數(shù)據(jù)庫(kù)內(nèi)核代碼后可以不開源。 國(guó)產(chǎn)數(shù)據(jù)庫(kù)“開源套殼”分為哪幾種 我們把上述關(guān)系模型套用到國(guó)產(chǎn)數(shù)據(jù)庫(kù)里,我們會(huì)發(fā)現(xiàn)“開源套殼”里,還有一種非分支的關(guān)系。下文將為大家逐一介紹這幾類分支。 不承認(rèn)套殼有一些公司其實(shí)可能是拿 MySQL 或 PostgreSQL 魔改然后閉源了,他們不承認(rèn)套殼。 套殼后繼續(xù)開源承認(rèn)套殼了,那就是分支,套殼后繼續(xù)走開源路線,適合一些做技術(shù)服務(wù)的公司,例如國(guó)外的 Percona、國(guó)內(nèi)的 GreatSQL,他們緊跟著上游 Oracle 公司的 MySQL,具有兩大優(yōu)勢(shì)。第一個(gè)優(yōu)勢(shì)是,可以低成本地獲得新版本新特性,并且可以獲得 Oracle 公司強(qiáng)大的漏洞補(bǔ)丁修復(fù)能力。就在今年第一季度,Oracle 公司給 MySQL 修復(fù)了三十多個(gè) CVE 漏洞,非常給力。這主要是因?yàn)?Oracle 官方有很強(qiáng)的安全漏洞修復(fù)團(tuán)隊(duì),且 MySQL 于全球擁有眾多用戶,在社區(qū)用戶多、漏洞發(fā)現(xiàn)得多的同時(shí),也出現(xiàn)了專門研究 MySQL 的第三方安全團(tuán)隊(duì)。而國(guó)產(chǎn)數(shù)據(jù)庫(kù)在這方面相對(duì)欠缺。第二個(gè)優(yōu)勢(shì)是,避免社區(qū)的分裂,如果大家都基于開源,修改內(nèi)核增加不兼容的特性,并閉源了,各自為戰(zhàn),其實(shí)社區(qū)是分裂的,不利于推廣。 套殼后繼續(xù)開源,并且走兼容上游的路線是絕大多數(shù)情況,完全脫離上游,獨(dú)立發(fā)展的話,那為何不閉源? 套殼后閉源套殼開源數(shù)據(jù)庫(kù)后能否閉源取決于其遵循的協(xié)議。在墨天輪國(guó)產(chǎn)數(shù)據(jù)庫(kù)排行榜前 23 名里,我好像沒有找到“套殼后閉源并且不兼容上游走獨(dú)立發(fā)展”的例子,因?yàn)槲矣X得既然已閉源了,又決定走獨(dú)立發(fā)展路線了,為啥要承認(rèn)“套殼”的事實(shí)呢? 所以,套殼后閉源的國(guó)產(chǎn)數(shù)據(jù)庫(kù),大多數(shù)會(huì)走兼容上游的路線。下面我將對(duì)圖中 4 個(gè)具體案例進(jìn)行解釋,他們情況各不相同。
“開源套殼”的優(yōu)缺點(diǎn) 前面,我們列舉了眾多實(shí)例以證明套殼并無(wú)不妥,事實(shí)上許多廠商都在采用這種策略。套殼的優(yōu)勢(shì)頗為顯著,具體如下:
然而,套殼產(chǎn)品也需關(guān)注以下潛在風(fēng)險(xiǎn):
套殼并非問(wèn)題,缺乏開源精神才是關(guān)鍵 前面,我列舉了很多條“開源套殼”的優(yōu)缺點(diǎn),優(yōu)點(diǎn)非常多,我來(lái)說(shuō)說(shuō)缺點(diǎn)。對(duì)于法律風(fēng)險(xiǎn),我們只要不違反相關(guān)開源協(xié)議,我們是可以繼續(xù)使用并可以商業(yè)化的。對(duì)于技術(shù)依賴,中國(guó)有大量的優(yōu)秀的 MySQL、PostgreSQL 的內(nèi)核研發(fā)人才,每次 MySQL 發(fā)版的感謝名錄里都有大量的中國(guó)人名字,技術(shù)完全不是問(wèn)題。既然技術(shù)不是問(wèn)題,那么如果美國(guó) Oracle 公司真的制裁我們了(實(shí)際上合規(guī)使用開源軟件是很難制裁的),就有點(diǎn)像是之前 CentOS8 停止更新的契機(jī)一樣,這是一個(gè)大機(jī)遇,原本的 MySQLer 會(huì)尋找 MySQL 的其他開源分支使用,例如 MariaDB 或者國(guó)內(nèi)的 MySQL 套殼分支。這些分支被迫脫離了 MySQL 上游,走獨(dú)立發(fā)展路線,那么“創(chuàng)新受限”、“客戶滿意度”、“市場(chǎng)競(jìng)爭(zhēng)”的缺點(diǎn)終將解決。 所以大家應(yīng)該知道我的觀點(diǎn)是——合規(guī)地基于開源數(shù)據(jù)庫(kù)套殼二次開發(fā),是完全可取的。 為什么要有開源精神在文章的最后,我不談那些“開源套殼”的案例,只想談?wù)勯_源精神。在二十年前,我購(gòu)買過(guò) Windows 操作系統(tǒng)的盜版盤,那是因?yàn)檎嫣F了,近 2000 元人民幣。在那個(gè)不重視知識(shí)產(chǎn)權(quán)的年代,大多數(shù)人都是這么干。如果沒有開源操作系統(tǒng) Unix,就沒有家用領(lǐng)域的蘋果 MacOS 和服務(wù)器領(lǐng)域廣泛流行的 Linux 的誕生,我們就得付給微軟昂貴的授權(quán)費(fèi)。這里總結(jié)一下我心中開源的幾大優(yōu)點(diǎn):
上面,我舉了個(gè)微軟的例子。最近我們有一些新的例子,例如 openai 發(fā)布了強(qiáng)大的 GPT-4 引擎,但他是沒有開源的?,F(xiàn)在全球不斷地有人提交自己的開源 AI 訓(xùn)練模型,目的就是為了打破 openai 的壟斷。只有打破壟斷,大家才能用上便宜的東西。
開源軟件鼓勵(lì)社區(qū)成員共同解決問(wèn)題,發(fā)現(xiàn)新方法,提高技術(shù)水平。這種協(xié)作方式使得開源項(xiàng)目往往能夠更快地實(shí)現(xiàn)技術(shù)創(chuàng)新和改進(jìn),推動(dòng)整個(gè)行業(yè)向前發(fā)展。首當(dāng)其首的就是 Linux 開源社區(qū)。
由于源代碼對(duì)所有人開放,社區(qū)成員可以找出軟件中的漏洞和錯(cuò)誤,并提供修復(fù)方案。這樣的協(xié)作模式有助于提高軟件的質(zhì)量,使其更加穩(wěn)定可靠。而閉源產(chǎn)品的軟件質(zhì)量完全取決于公司的硬實(shí)力。
許多開源軟件是免費(fèi)的,用戶可以在不支付許可費(fèi)用的情況下使用。即使有些開源軟件需要付費(fèi)購(gòu)買,它們的價(jià)格通常也低于同類專有軟件。這降低了企業(yè)和個(gè)人使用軟件的成本,擴(kuò)大了軟件的應(yīng)用范圍。
開源項(xiàng)目為開發(fā)者提供了一個(gè)實(shí)踐和學(xué)習(xí)的平臺(tái)。通過(guò)參與開源項(xiàng)目,開發(fā)者可以提高自己的技能,了解最新的技術(shù)趨勢(shì)。同時(shí),企業(yè)也可以從開源社區(qū)中發(fā)現(xiàn)和招聘具有實(shí)際經(jīng)驗(yàn)的技術(shù)人才。
開源軟件的開放性使得其擁有更長(zhǎng)的生命周期。即使原始開發(fā)者放棄項(xiàng)目,其他社區(qū)成員仍可以繼續(xù)維護(hù)和更新軟件。這樣的模式有助于軟件的可持續(xù)發(fā)展,降低了對(duì)資源的浪費(fèi)。
開源軟件使用戶能夠查看和修改源代碼,使他們可以根據(jù)自己的需求定制軟件。這增強(qiáng)了用戶對(duì)軟件的控制權(quán),有助于提高工作效率和滿意度?!伴_源套殼”廠商就是這條的受益方。 缺乏開源精神的情況開源軟件項(xiàng)目大多數(shù)都是有企業(yè)級(jí)的參與的,他們要不是主要參與公司,要不就是擁有控制權(quán)的公司。缺乏開源精神有哪些情況呢? 1. 對(duì)于公司來(lái)說(shuō),他們開源后修改開源協(xié)議。 典型的例子就是 MongoDB。MongoDB 是一個(gè)開源產(chǎn)品。它的源代碼可以在 GitHub 上找到。不過(guò),MongoDB 的許可證在 2018 年 10 月 16 日之后發(fā)生了變化,從 AGPL 變?yōu)榱?Server Side Public License (SSPL) v1。這種變化可能會(huì)影響一些公司對(duì) MongoDB 是否屬于開源產(chǎn)品的看法,以下是一些例子:
2. 對(duì)于公司和個(gè)人來(lái)說(shuō),就是白嫖主義,利用開源產(chǎn)品賺錢了但不做貢獻(xiàn)。 白嫖主義是一種消費(fèi)心態(tài),指的是在不付出任何努力或成本的情況下,希望從他人或某種資源中獲得利益。在開源軟件領(lǐng)域,白嫖主義的表現(xiàn)主要包括以下幾點(diǎn):
為了避免白嫖主義,作為用戶,我們應(yīng)該珍惜開源項(xiàng)目所提供的資源,并以積極的態(tài)度參與到開源社區(qū)中,為項(xiàng)目的發(fā)展和進(jìn)步貢獻(xiàn)自己的力量。 參與開源的方式多種多樣,如提 issue、報(bào)告 bug、提出功能需求等,都能讓開源軟件不斷優(yōu)化和進(jìn)步。此外,我們還可以提交 pull request(PR),不僅可以貢獻(xiàn)代碼,還可以修復(fù)文檔中的錯(cuò)誤。除了這些,參加開源社區(qū)的各類活動(dòng)也是一種貢獻(xiàn)方式,例如加入特定興趣小組(SIG)、參加開源數(shù)據(jù)庫(kù)大會(huì),作為聽眾或演講嘉賓,分享和交流經(jīng)驗(yàn)。 總之,為開源項(xiàng)目做貢獻(xiàn)并不難,只要我們?cè)敢馔度霑r(shí)間和精力,就能為開源生態(tài)貢獻(xiàn)自己的一份力量。 “開源套殼”后閉源算不算沒有開源精神?不算!相反地,這可能就是一種開源精神。例如,openGauss 主旨是共建國(guó)產(chǎn)數(shù)據(jù)庫(kù)根社區(qū),打造開源數(shù)據(jù)庫(kù)核心競(jìng)爭(zhēng)力,任何廠商都可以在遵循木蘭協(xié)議的情況下發(fā)行自己的閉源的商業(yè)產(chǎn)品。只要你遵循協(xié)議,哪怕只修改了版本號(hào)發(fā)布了閉源商業(yè)產(chǎn)品,實(shí)際上已經(jīng)是在公司內(nèi)部使用和推廣 openGauss ,是在支持國(guó)產(chǎn)數(shù)據(jù)庫(kù) openGauss 了。恩墨、海量數(shù)據(jù)等廠商使用了 openGauss,之后無(wú)論發(fā)布的產(chǎn)品是開源或閉源,都符合開源精神,因?yàn)樗麄兌甲裱碎_源協(xié)議,并且他們給上游貢獻(xiàn)了代碼。 合規(guī)使用,不白嫖,就是一種開源精神。 總 結(jié) 我認(rèn)為,對(duì)于國(guó)產(chǎn)數(shù)據(jù)庫(kù)的開發(fā),不論套殼不套殼,都可以。你如果選擇了走開源路線,就得有開源的精神,這包括了企業(yè)和個(gè)人。 參考: https://www.modb.pro/dbRank https://www.percona.com/blog/is-mongodb-open-source https://blog.opensource.org/the-sspl-is-not-an-open-source-license/ 該文章在 2023/5/15 21:33:27 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |