奧推網

選單
科技

開源資料庫為什麼能捕獲開發者的心?

【CSDN 編者按】開源資料庫的重要性,早就不言而喻。早期的自由軟體開發者和初創公司,很多都受益於開源資料庫。伴隨著曾經的初創公司羽翼逐漸豐滿,它們的開發者文化滲透到整個生態系統中,更多的人開始關注這些初創公司採取的方法,關注開源資料庫。本文從各類開源資料庫供應商的角度切入,闡述了各自開源的歷史和相應的觀點。

原文連結:https://www。theregister。com/2022/09/05/open_source_databases/

宣告:本文為CSDN翻譯,轉載請註明來源。

作者 | Lindsay Clark

譯者 | 朱珂欣 責編 | 屠敏

出品 | CSDN(ID:CSDNnews)

眾所周知,開源模式是資料庫市場下的重要趨勢之一。根據Stack Overflow 2022年的調查顯示,PostgreSQL和MySQL這兩個領先的開源關係型資料庫的使用率分別是46。5%和45。7%。相較而言,Oracle只有大約12%的開發者使用,DB2的使用率只有2%。由此可見,開源資料庫佔據領先優勢。那麼,開源資料庫為什麼能捕獲開發者的心?

21世紀初,網路時代剛剛結束,很多初創公司由於缺乏資金,導致無法負擔Oracle和DB2這類昂貴的資料庫。開源資料庫的出現,給當時Facebook、Uber和Google在內的很多公司提供了便利。他們可以根據需要調整系統,為開原始碼做出貢獻,同時從社群或其他地方的發展中獲益。

資料庫諮詢公司Percona的執行長Peter Zaitsev認為,透過開源的方式,開源軟體的使用者可以自由終止與供應商的關係,並與其他公司簽訂合同以開發或支援他們的系統,同時還可以保持對原始碼的所有權,避免與供應商鎖定。

然而,一些開源資料庫公司表示了擔憂,如果他們採用FOSS(免費和開源軟體)的方法,AWS、谷歌雲和微軟 Azure之類的公司會簡單地複製程式碼並將其作為託管服務商業化,開源軟體背後的公司無法獲得收益。但資料管理分析師Gartner副總裁Merv Adrian最近指出,雲服務提供商從其開源資料庫即服務 (DBaaS) 產品中獲得的收入可能遠遠超過的獨立供應商合併。

在本文中,聚焦於開源資料庫的重要性,從Yugabyte、DataStax、EDB等資料庫供應商的角度,闡述了對開源資料庫相應的觀點。同時,Exasol 也站在開源對立面,解釋了它為什麼選擇專有模型。

EDB:相容了社群控制和自由

EDB是一家為PostgreSQL並提供一些專有工具和DBaaS的商業公司。PostgreSQL作為最古老的開源資料庫之一,由加州大學伯克利分校的Michael Stonebraker和Lawrence Rowe於1986年提出。它的創始目標之一是實現資料型別、運算子和訪問方法的可擴充套件性。2022 年的Stack Overflow調查中,PostgreSQL不僅成為開發人員中最受歡迎的資料庫,而且在DB-Engines排名中位居第四。

PosgreSQL諮詢公司首席技術官兼貢獻者EDB的Marc Linster表示,PostgreSQL的優勢不僅在於許可,還在於吸引開發人員貢獻的多樣性。PostgreSQL是由EDB合作開發的,還有VMware,Fujitsu,NTT,Microsoft,Amazon等公司進行了投資。雖然核心PostgreSQL專案獨立於EDB,但EDB用自己的專有軟體來保護和管理資料庫。

Marc Linster還表示,Postgres社群做了一些其它社群不會做的事情。例如它不需要像Oracle一樣在資料庫內部用密碼配置檔案。但通常客戶都有非常具體的需求,在這種情況下,客戶可以既擁有Postgres中的所有東西,也可以獲得許多PostgreSQL沒有的特性。

DataStax:向開源社群釋出其雲服務的任何種類的擴充套件

Apache Cassandra最初是由Facebook的工程師Avinash Lakshman和Prashant Malik開發的一個分散的結構化儲存系統,用於支援社交媒體公司的收件箱搜尋功能。2008年7月,Facebook將Cassandra作為一個開源專案在Google Code上釋出,到2010年,它已經成為一個頂級的Apache專案。

Apache Cassandra得到了商業公司DataStax的支援,該公司提供付費DBaaS,但開源專案的想法對公司仍然至關重要,因為開發人員希望在雲中獲得自由和靈活性。

Datastax的開發者關係副總裁Patrick McFadin表示,沒有人喜歡陷入陷阱。開源對開發人員來說非常重要,因為它們希望擁有選擇的自由和擴充套件的自由。包括Cassandra、MySQL和PostgreSQL在內的開源資料庫都做得非常好。它們有可以付費的企業版、可以付費的託管服務和免費版本。DataStax的很多客戶,他們會同時都買這三者。

Patrick McFadin還補充道,DataStax將向開源社群釋出其雲服務的任何型別的擴充套件,因為其付費Cassandra迭代和Apache Cassandra的API之間存在分歧。這也意味著客戶可以自由地離開其任何付費系統,而無需對其應用程式進行重大重寫。

Yugabyte:一切都與DBaaS有關

過去幾年,YugabyteDB是備受關注的分散式關係型資料庫供應商之一。Yugabyte是一種雙層資料庫。它在底層受到Google Spanner的啟發,在頂層與PostgreSQL相容,旨在建立一個高可用、可擴充套件的分散式資料庫。

現任首席技術官Ranganathan在接受The Register採訪時表示,在最初,所有創始人就希望完全開源,但投資者說服了他們。因為投資界表示開源是一個垂死的商業模式。因此,他們選擇了開放核心,這意味著YugabyteDB將80%價值開放,20%價值封閉。

但是,在該軟體獲得早期客戶的青睞後,他們決定改變主意。因為他們開始意識到資料庫中最需要的東西,如果沒有DBaaS(資料庫即服務),將沒有任何意義。因此,在DBaaS上具有競爭力,與在資料庫上具有競爭力同樣重要,並且客戶希望資料庫是開源的。

MariaDB:開源的同時也開啟商業化

1995 年,MariaDB從開源關係資料庫MySQL中分離出來。MariaDB採用了商業原始碼許可證 (BSL),很多人認為這不是真正的開源,因為它不允許使用者或開發人員透過程式碼做他們想做的事。但其實在BSL下,原始碼始終是公開可用的,程式碼的非生產使用始終是免費的,並且原始碼保證最終開放。

一直以來,MariaDB堅持開源精神,並確保自己一直走在可持續發展的路線上。MariaDB執行長Michael Howard表示,開源是關於自由軟體和非商業的商業模式。如今,你假如擁有世界上最強大的公司,在商業化的工作中國為了實現自己的目的,需要重複使用開源。因此,開源在某種程度上會依賴於強大的商業。

雖然BSL對開源認可,但它也支援給產品提供強大商業化平臺。Michael Howard說:“這與 Apache BSD或GPL(Linux 使用)非常不同,後者具有突出的要求和負擔,要求人們做出貢獻,並將貢獻自動返回到儲存庫以讓任何人使用它,”透過這種方式,阻止了世界上最大的雲公司圍繞 MariaDB 資料庫提供商業軟體即服務。“超大規模企業的商業模式肯定會催生新的許可模式,包括 BSL。

Michael Howard 表示,雖然MariaDB的許可證比其他開源專案更嚴格,但 MariaDB 比 MySQL 和 PostgreSQL在內的很多開源資料庫吸引的貢獻都要多。因為無論是使用者還是開發人員,都可以自由檢視原始碼,一旦他們的資料庫被轉移到更寬鬆的許可證,就可以為使用者提供支援選項。此外,MariaDB既可以修復自己的錯誤,還可以僱用人員來修復錯誤,而不必依賴商業專案。

CockroachDB:有開源的歷史,也有商業化的未來

2015年,Cockroach Labs由前Google程式設計師Spencer Kimball、Peter Mattis和Ben Darnell創立。CockroachDB是與PostgreSQL相容的分散式關係型資料庫。與MariaDB一樣,CockroachDB嚴重依賴BSL。原始碼可用,但未經Cockroach Labs同意,使用者不得將 CockroachDB用作服務。其他核心功能受CCL(Cockroach 社群許可證)的約束,根據該許可證,某些功能存在付費和免費兩個方式,但程式碼可用。

儘管開源和商業模式之間存在混合模式,但首席產品經理Jim Walker表示,Cockroach Labs仍沉浸在開源運動中,開源營業不僅僅是許可證,是一群人參與社群中,他們喜歡貢獻和談論計算問題。開源與人有關,也與程式碼、開原始碼儲存庫有關。

然而Cockroach Labs也面對很多人質疑,例如專案往往依賴於單一供應商。Jim Walker表示貢獻的多樣性的確是一個健康的現象,但就貢獻而言,應該讓軟體成為專有軟體,以此來保護其智慧財產權。

未來,CockroachDB將為使用者提供其在軟體選擇方面的自由,使用者可以將資料和模式遷移到資料庫的免費版本上,也可以讓他人託管或者自己執行。CockroachDB的部分價值還體現在,不需要僱傭一堆人,也不需要眾多資源來執行資料庫。

MongoDB:存在很多企業將我們排除在外的風險

MongoDB作為非關係型的資料庫的鼻祖,在DB-Engines 中的排名非常靠前。

它的產品管理高階副總裁Andrew Davidson表示,開源一直是MongoDB成功的關鍵。如果現在沒有開源的理念,就為開發人員提供解決方案。但多年來,很多使用者將MongoDB投資的產品作為服務交付的風險,從而將MongoDB排除在外。

SSPL(伺服器端公共授權)的設計非常明確,很多超大規模企業無法將MongoDB作為託管雲服務提供。而獲得SSPL許可的MongoDB社群版,使用者可以自由執行,並將其用於他們想要的任何應用程式。唯一的限制是他們不能將其作為託管雲服務出售,但他們可以在 MongoDB 之上構建自己的軟體,並將其作為服務提供。

在MongoDB早期開發之後的幾年,他們意識到託管服務的重要作用,因此投入了建立Atlas及其DBaaS的工作。很多人對混合模型開源未來的自由問題發出質疑:使用者是否有能力在構建應用程式後離開供應商?使用者可以複製資料庫並將應用程式託管在其他地方嗎?

MongoDB Atlas的答案是“也許”和“視情況而定”。如果將MongoDB Atlas擴充套件到OLTP資料庫之外,以提供觸發器、資料湖產品、資料聯合、API 伺服器和應用程式服務等,使用者可以完全移動它。如果使用者正在使用這些輔助工具中的任何一個服務,一旦使用者離開 Atlas,就必須建立自己的方式來體驗這些型別的用例。

雖然開源倡導者認為專案受益於各種貢獻者,但MongoDB 更像是單一供應商專案,這允許它可以專注於開發人員的體驗,並以一種不同的方式提供優雅的整合體驗。Andrew Davidson還表示,無論對開源的解釋是什麼,開源都有一個全面的核心價值,那就是對程式碼的信任。

Exasol:專有的去社群不能去的地方

很多人會認為,現有的資料庫都是基於開源軟體的,但事實並非如此。德國的Exasol開發了一種記憶體分析系統,供Dell和體育巨頭Adidas使用。Exasol長期以來一直聲稱在TPC 價格/效能基準中處於領先地位。

它的首席技術官Mathias Golombek曾經表示,開源系統非常受歡迎,尤其是在事務資料庫方面。但由於並行硬體中存在一些細節,開源路線不適用於Exasol的核心產品。

但在變化的資料分析領域,Exasol正以各種方式擁抱開源軟體。但是,Exasol核心資料庫引擎仍然是專有的,因為目前可以有權訪問MPP硬體設定且可以專門從事記憶體計算的正確開發人員社群是不存在的。

總的來說,如今開源資料庫的重要性得到了凸顯,而選擇開源資料庫還是閉源資料庫的經典二元的悖論,將一直存在。或許隨著時間的推移,選擇選擇開源還是閉源早已經不再那麼重要,重要的是軟體架構是否與資料問題相關。如果能有更多的供應商意識到這一問題,也能減少自己的失敗。