超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

國產數據庫“開源套殼”是否可取?

admin
2023年5月15日 21:32 本文熱度 1990

導讀

本文墨天輪社區(qū)特約作者 芬達(芬達的數據庫學習筆記公眾號作者) 獨家稿件,內容原創(chuàng),僅代表作者個人觀點,歡迎大家交流、討論。


背 景

之前看過白鱔老師的《國產數據庫擁抱開源沒毛病》一文,勾起了我對數據庫開源、商業(yè)化這塊的思考,此前也聽到過不少“XX 數據庫是根據 PG/MySQL 改的”之類的話語,那么所謂“自主”數據庫和“套殼”數據庫有什么區(qū)別呢?他們各自的優(yōu)缺點是什么、又會如何發(fā)展?本文是我的觀點。


先說一下閉源套殼


在數據庫領域沒有人會使用商業(yè)的閉源產品做套殼產品或服務,然后售賣,因為這違法。但就在十幾年前,在操作系統(tǒng)領域,存在這種情況。番茄花園是 2000 年左右火起來的盜版 Windows,它是基于微軟的閉源 Windows 系統(tǒng)進行破解、修改并添加了一些額外功能,如激活、優(yōu)化等。盡管番茄花園 Windows 版本在外觀和使用體驗上與正版 Windows 非常相似,但其侵犯了微軟的知識產權。在 2009 年,微軟起訴了番茄花園,并獲得了勝訴。此后,番茄花園的官方網站被關閉,創(chuàng)始人入獄,其盜版 Windows 操作系統(tǒng)的傳播也受到了打壓。

數據庫領域沒有閉源套殼的例子,但存在閉源改造的例子,也就是先把別人的閉源產品的源碼花重金買下來,在這基礎上發(fā)展國產數據庫,以下是例子:
2015 年以來,IBM 對中國公司銷售 Informix 源代碼,與 IBM 簽訂源代碼授權的公司有華勝天成、南大通用(Gbase 8t)和星瑞格。這三個公司成為以引進 Informix 源代碼發(fā)展國產數據庫的代表。



聊聊完全自主可控的國產數據庫

毫無疑問,沒有基于其他商業(yè)或開源數據庫做二次開發(fā)的數據庫產品,就是完全自主可控的數據庫了,其中 OceanBase、TiDB、達夢、openGauss 是國產數據庫之光,長期登頂墨天輪的國產數據庫排行榜 top 4 的位置。


我給這四款數據庫畫了個關系圖:

其中,達夢是閉源的,其他三款產品都是開源的,可見開源更受歡迎,擁抱開源沒毛病。脫胎于互聯網業(yè)務的 TiDB、OceanBase,為了和國際接軌,選擇在美國的 github 上開源,而脫胎于傳統(tǒng)行業(yè)的 openGauss,選擇在國內的 gitee 上開源。

不基于“開源套殼”的國產數據庫登頂國產數據庫排行榜 top 4,是否意味著“自主”數據庫是更優(yōu)的選擇呢?其實不然,請先等“開源套殼”數據庫們登場后,再回來討論。



國際上的“開源套殼”數據庫案例


首先我要解釋一下,在國際上“開源套殼”意味著什么,其實就是分支的意思,舉個我們熟悉的例子,我們知道開源數據庫 MySQL 是有兩大分支的,其關系如下圖,

這兩個分支是 —— Percona 和 MariaDB。

根據 GPLv2 協議的特點,Percona 和 MariaDB 他們可以自由地修改 GPL 許可的 MySQL 源代碼,并在遵循相同許可證的前提下分發(fā)了修改后的版本,所以他們套殼后會繼續(xù)開源。遵循了 GPL 許可條款的情況下,他們可以將 Percona 和 MariaDB 用于商業(yè)和非商業(yè)用途。

其中,MariaDB 在分發(fā)了開源的社區(qū)版產品的同時,還分發(fā)了閉源的 MariaDB Enterprise Server 企業(yè)版??雌饋硭孟駴]有遵循 GPL 協議,實際上不然,MariaDB Enterprise Server 的核心仍然是開源的,并遵循 GPL 協議。然而,企業(yè)版可能會包含一些專有的插件、工具或其他組件,這些組件可以在遵循其他許可協議的情況下提供。這種做法通常被稱為 “開源核心”或“開放核心”模型。

在這種模型下,企業(yè)版的用戶支付許可費,以獲得附加功能、性能優(yōu)化、專業(yè)支持等服務。這些附加組件并不需要遵循 GPL 協議,但核心數據庫功能仍然是開源的。

我不是法律專家或開源協議的專家,但我個人認為現有的國際案例,可以打消一些企業(yè)的擔憂——到底 MySQL 是否可以用于商業(yè)化,用 MySQL 套殼數據庫是否有法律風險。

如果依然擔心受到 GPL 開源協議的影響,不想開放數據庫內核代碼,那么企業(yè)可以選擇另外一款受歡迎的數據庫做套殼——PostgreSQL,他遵循的是商業(yè)更友好的 BSD 協議,他允許套殼開源數據庫做二次開發(fā)的廠商,修改數據庫內核代碼后可以不開源。



國產數據庫“開源套殼”分為哪幾種


我們把上述關系模型套用到國產數據庫里,我們會發(fā)現“開源套殼”里,還有一種非分支的關系。下文將為大家逐一介紹這幾類分支。

不承認套殼

有一些公司其實可能是拿 MySQL 或 PostgreSQL 魔改然后閉源了,他們不承認套殼。

套殼后繼續(xù)開源

承認套殼了,那就是分支,套殼后繼續(xù)走開源路線,適合一些做技術服務的公司,例如國外的 Percona、國內的 GreatSQL,他們緊跟著上游 Oracle 公司的 MySQL,具有兩大優(yōu)勢。第一個優(yōu)勢是,可以低成本地獲得新版本新特性,并且可以獲得 Oracle 公司強大的漏洞補丁修復能力。就在今年第一季度,Oracle 公司給 MySQL 修復了三十多個 CVE 漏洞,非常給力。這主要是因為 Oracle 官方有很強的安全漏洞修復團隊,且 MySQL 于全球擁有眾多用戶,在社區(qū)用戶多、漏洞發(fā)現得多的同時,也出現了專門研究 MySQL 的第三方安全團隊。而國產數據庫在這方面相對欠缺。第二個優(yōu)勢是,避免社區(qū)的分裂,如果大家都基于開源,修改內核增加不兼容的特性,并閉源了,各自為戰(zhàn),其實社區(qū)是分裂的,不利于推廣。

套殼后繼續(xù)開源,并且走兼容上游的路線是絕大多數情況,完全脫離上游,獨立發(fā)展的話,那為何不閉源?

套殼后閉源

套殼開源數據庫后能否閉源取決于其遵循的協議。在墨天輪國產數據庫排行榜前 23 名里,我好像沒有找到“套殼后閉源并且不兼容上游走獨立發(fā)展”的例子,因為我覺得既然已閉源了,又決定走獨立發(fā)展路線了,為啥要承認“套殼”的事實呢?

所以,套殼后閉源的國產數據庫,大多數會走兼容上游的路線。下面我將對圖中 4 個具體案例進行解釋,他們情況各不相同。

  1. GreatDB,分支于 MySQL 或 Percona。他的 data node 節(jié)點用的 innodb 存儲引擎,需要遵循 GPL 協議,其他組件是自主研發(fā)的是可以閉源,萬里開源公司已經把其中修改過源碼的部分以 GreatSQL 的方式開源出去了,遵守 GPL,走的類似于 MariaDB 公司的 MariaDB Enterprise Server 的玩法。閉源的部分主要是做分布式和 Oracle 用法兼容上。

  2. TDSQL,分支于 MySQL。說實話我沒有見過其開源版本,有幾個可能,一是 TDSQL 沒有修改過 innodb 源碼,還有一種可能是他們不賣數據庫產品 lisence,只賣服務,這種玩法是國內大多數云廠商的玩法,強調只賣服務,不是賣產品。

  3. MogDB,分支于 openGauss。openGauss 主旨是共建國產數據庫根社區(qū),打造開源數據庫核心競爭力,任何廠商都可以在遵循木蘭協議的情況下發(fā)行自己的閉源的商業(yè)產品,恩墨的 MogDB、海量數據的 Vastbase、南大通用的 GBase 8c、中國移動的磐維等等。使用 openGauss 的公司更重視安全合規(guī)性,為自己的商業(yè)產品添加更多的安全特性。

  4. KingBase,分支于 PostgreSQL。BSD 協議下,做“開源套殼”后閉源完全合規(guī)。并且人大金倉做數據庫做得早,互聯網還沒有興起,早年最好的二開選擇是 PostgreSQL,而不是 MySQL。



“開源套殼”的優(yōu)缺點


前面,我們列舉了眾多實例以證明套殼并無不妥,事實上許多廠商都在采用這種策略。套殼的優(yōu)勢頗為顯著,具體如下:

  • 快速上市:國產數據庫市場廣闊,許多企業(yè)都想盡快參與其中,因此迅速推出產品至關重要。

  • 降低開發(fā)成本:利用現有技術基礎,減少試錯過程,降低成本。

  • 高兼容性:確保原有系統(tǒng)的遷移成本較低,便于用戶接受。

  • 吸引現有用戶:無需從零開始培養(yǎng)用戶,借助原產品的用戶基礎快速擴大市場份額。

  • 強大的技術支持:利用原產品的技術資源和支持,解決可能遇到的技術問題。

  • 降低風險:相較于從零開始的新產品,套殼產品具有更為成熟的技術基礎,風險更低。

  • 提升品牌知名度:借助原產品的品牌影響力,提高套殼產品在市場中的知名度和認可度。

  • 持續(xù)維護與升級:跟隨原產品的技術發(fā)展,確保套殼產品始終保持最新技術水平。

然而,套殼產品也需關注以下潛在風險:

  • 法律風險:若未遵循原產品的許可協議,可能面臨法律糾紛和版權問題。如在商業(yè)用途中修改了使用 GPL 協議的產品源代碼,必須遵循開源規(guī)定。

  • 技術依賴:套殼產品在很大程度上依賴原產品,若原產品出現問題或停止維護,可能影響套殼產品的穩(wěn)定性和持續(xù)發(fā)展。例如,MySQL 5.7 將于 2023 年 10 月結束支持,套殼廠商是否能維持官方的 CVE 漏洞修復能力。

  • 創(chuàng)新受限:套殼產品的創(chuàng)新受原產品限制,可能無法充分發(fā)揮其創(chuàng)新能力。

  • 客戶滿意度:套殼產品或許無法滿足所有客戶的特定需求,從而導致客戶滿意度降低。如某功能客戶需求較大,但由于產品架構限制無法實現,或實現該功能會導致與上游沖突,進而無法合并,最終功能無法實現或推遲實現。

  • 市場競爭:由于套殼產品與原產品相似度高,可能面臨同質化市場的激烈競爭,難以在市場中脫穎而出。例如,用戶可能會質疑:“既然我能用 MySQL,為什么要選擇你的產品?”僅憑信創(chuàng)說辭可能難以說服客戶。



套殼并非問題,缺乏開源精神才是關鍵


前面,我列舉了很多條“開源套殼”的優(yōu)缺點,優(yōu)點非常多,我來說說缺點。對于法律風險,我們只要不違反相關開源協議,我們是可以繼續(xù)使用并可以商業(yè)化的。對于技術依賴,中國有大量的優(yōu)秀的 MySQL、PostgreSQL 的內核研發(fā)人才,每次 MySQL 發(fā)版的感謝名錄里都有大量的中國人名字,技術完全不是問題。既然技術不是問題,那么如果美國 Oracle 公司真的制裁我們了(實際上合規(guī)使用開源軟件是很難制裁的),就有點像是之前 CentOS8 停止更新的契機一樣,這是一個大機遇,原本的 MySQLer 會尋找 MySQL 的其他開源分支使用,例如 MariaDB 或者國內的 MySQL 套殼分支。這些分支被迫脫離了 MySQL 上游,走獨立發(fā)展路線,那么“創(chuàng)新受限”、“客戶滿意度”、“市場競爭”的缺點終將解決。

所以大家應該知道我的觀點是——合規(guī)地基于開源數據庫套殼二次開發(fā),是完全可取的。

為什么要有開源精神

在文章的最后,我不談那些“開源套殼”的案例,只想談談開源精神。在二十年前,我購買過 Windows 操作系統(tǒng)的盜版盤,那是因為正版太貴了,近 2000 元人民幣。在那個不重視知識產權的年代,大多數人都是這么干。如果沒有開源操作系統(tǒng) Unix,就沒有家用領域的蘋果 MacOS 和服務器領域廣泛流行的 Linux 的誕生,我們就得付給微軟昂貴的授權費。這里總結一下我心中開源的幾大優(yōu)點:

  • 開源有利于打破壟斷

上面,我舉了個微軟的例子。最近我們有一些新的例子,例如 openai 發(fā)布了強大的 GPT-4 引擎,但他是沒有開源的?,F在全球不斷地有人提交自己的開源 AI 訓練模型,目的就是為了打破 openai 的壟斷。只有打破壟斷,大家才能用上便宜的東西。

  • 開源促進創(chuàng)新

開源軟件鼓勵社區(qū)成員共同解決問題,發(fā)現新方法,提高技術水平。這種協作方式使得開源項目往往能夠更快地實現技術創(chuàng)新和改進,推動整個行業(yè)向前發(fā)展。首當其首的就是 Linux 開源社區(qū)。

  • 開源提高軟件質量

由于源代碼對所有人開放,社區(qū)成員可以找出軟件中的漏洞和錯誤,并提供修復方案。這樣的協作模式有助于提高軟件的質量,使其更加穩(wěn)定可靠。而閉源產品的軟件質量完全取決于公司的硬實力。

當然了,也有一種聲音是,認為閉源更安全,因為源代碼不公開就無法從源碼級別直接發(fā)現和利用漏洞。

  • 開源降低使用成本

許多開源軟件是免費的,用戶可以在不支付許可費用的情況下使用。即使有些開源軟件需要付費購買,它們的價格通常也低于同類專有軟件。這降低了企業(yè)和個人使用軟件的成本,擴大了軟件的應用范圍。

需要注意的是,開源產品大多數意味著免費使用,我們使用開源產品的絕大多數原因之一就是因為其免費。但開源和免費不等價,例如 RHEL 是開源的,但不是完全免費的。微信是免費使用的,但他不開源。

  • 開源培養(yǎng)技能和人才

開源項目為開發(fā)者提供了一個實踐和學習的平臺。通過參與開源項目,開發(fā)者可以提高自己的技能,了解最新的技術趨勢。同時,企業(yè)也可以從開源社區(qū)中發(fā)現和招聘具有實際經驗的技術人才。

  • 開源支持可持續(xù)發(fā)展

開源軟件的開放性使得其擁有更長的生命周期。即使原始開發(fā)者放棄項目,其他社區(qū)成員仍可以繼續(xù)維護和更新軟件。這樣的模式有助于軟件的可持續(xù)發(fā)展,降低了對資源的浪費。

  • 開源增強用戶控制權

開源軟件使用戶能夠查看和修改源代碼,使他們可以根據自己的需求定制軟件。這增強了用戶對軟件的控制權,有助于提高工作效率和滿意度。“開源套殼”廠商就是這條的受益方。

缺乏開源精神的情況

開源軟件項目大多數都是有企業(yè)級的參與的,他們要不是主要參與公司,要不就是擁有控制權的公司。缺乏開源精神有哪些情況呢?

1. 對于公司來說,他們開源后修改開源協議。

典型的例子就是 MongoDB。MongoDB 是一個開源產品。它的源代碼可以在 GitHub 上找到。不過,MongoDB 的許可證在 2018 年 10 月 16 日之后發(fā)生了變化,從 AGPL 變?yōu)榱?Server Side Public License (SSPL) v1。這種變化可能會影響一些公司對 MongoDB 是否屬于開源產品的看法,以下是一些例子:

  • Red Hat 在 2018 年 11 月宣布,將不會在 RHEL 8.0 系統(tǒng)中提供對 MongoDB 的支持,原因是 MongoDB 更改了許可協議為 Server Side Public License (SSPL)。

  • 亞馬遜 Web 服務 (AWS) 選擇開發(fā)自家的 NoSQL 數據庫 Amazon DocumentDB,而不是繼續(xù)支持 MongoDB。這部分原因可能是因為 MongoDB 更改為 SSPL,導致許可問題。

  • 盡管 MongoDB 仍然認為自己是開源軟件,但開源計劃(OSI)一直堅定不移,重申其聲明其“SSPL 不是開源許可證”(見:《The SSPL is Not an Open Source License》)。

  • MySQL 的重要分支廠商 Percona 公司指出 MongoDB 并非開源軟件,鼓勵大家使用他的 MongoDB percona 版開源分支。

2. 對于公司和個人來說,就是白嫖主義,利用開源產品賺錢了但不做貢獻。

白嫖主義是一種消費心態(tài),指的是在不付出任何努力或成本的情況下,希望從他人或某種資源中獲得利益。在開源軟件領域,白嫖主義的表現主要包括以下幾點:

  • 在使用開源軟件時,不遵守許可協議,例如未遵循 GPL 協議要求開源自己的修改。

  • 在遇到問題時,過度依賴開源社區(qū)的支持,但從未為社區(qū)做過任何貢獻。這可能包括頻繁提問但從未嘗試自己解決問題,或者索取他人的解決方案而不是自己進行研究。

  • 僅關注開源軟件的免費使用,而忽略對其開發(fā)和維護所需的人力和資源的尊重。這種心態(tài)會導致對開源項目的長期可持續(xù)發(fā)展產生負面影響。可能包括無理地抱怨軟件質量、對即時響應的過高要求等,卻忽視了開源項目的作者和維護者往往是志愿者,或者來自投入大量資金的企業(yè)。他們都在為開源項目的發(fā)展付出辛勤努力,但他們并非慈善機構。

為了避免白嫖主義,作為用戶,我們應該珍惜開源項目所提供的資源,并以積極的態(tài)度參與到開源社區(qū)中,為項目的發(fā)展和進步貢獻自己的力量。

參與開源的方式多種多樣,如提 issue、報告 bug、提出功能需求等,都能讓開源軟件不斷優(yōu)化和進步。此外,我們還可以提交 pull request(PR),不僅可以貢獻代碼,還可以修復文檔中的錯誤。除了這些,參加開源社區(qū)的各類活動也是一種貢獻方式,例如加入特定興趣小組(SIG)、參加開源數據庫大會,作為聽眾或演講嘉賓,分享和交流經驗。

總之,為開源項目做貢獻并不難,只要我們愿意投入時間和精力,就能為開源生態(tài)貢獻自己的一份力量。

“開源套殼”后閉源算不算沒有開源精神?

不算!相反地,這可能就是一種開源精神。例如,openGauss 主旨是共建國產數據庫根社區(qū),打造開源數據庫核心競爭力,任何廠商都可以在遵循木蘭協議的情況下發(fā)行自己的閉源的商業(yè)產品。只要你遵循協議,哪怕只修改了版本號發(fā)布了閉源商業(yè)產品,實際上已經是在公司內部使用和推廣 openGauss ,是在支持國產數據庫 openGauss 了。恩墨、海量數據等廠商使用了 openGauss,之后無論發(fā)布的產品是開源或閉源,都符合開源精神,因為他們都遵循了開源協議,并且他們給上游貢獻了代碼。

合規(guī)使用,不白嫖,就是一種開源精神。



總 結


我認為,對于國產數據庫的開發(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 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved