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