亞馬遜網絡服務公司(Amazon Web Services Inc.)推出了新的DocumentDB數據庫服務,以此向MongoDB Inc.發起挑戰。
亞馬遜表示DocumentDB是一種快速、可伸縮、高可用的和完全托管的文檔數據庫服務,可運行在其云上,并與現有的MongoDB應用程序和工具相兼容。
它本質上是MongoDB的重新打包版本,MongoDB是由同名公司開發的開源數據庫管理系統。MongoDB使用面向文檔的數據庫模型,該模型支持各種形式的數據。
它是2000年代中期興起的幾種非關系數據庫技術之一,這些技術打著NoSQL的旗號,用于大數據應用程序和其他的處理工作,以及那些沒有嚴格關系的數據模型。MongoDB體系結構不像關系數據庫那樣使用表和行,而是由集合和文檔組成。
亞馬遜毫不掩飾MongoDB的實用性,因為它是世界上第五大最受歡迎的數據庫。該公司表示,許多客戶在其基礎設施上運行MongoDB,以便存儲、檢索和管理用于構建和發展關鍵任務型應用程序的半結構化數據。
然而,亞馬遜認為客戶在其云上運行MongoDB時會遇到許多問題。它指出,客戶只能利用MongoDB應用程序編程接口提供的部分功能。此外,由于設置和管理集群的復雜性,客戶發現很難在MongoDB上構建具有所需的高可用性和可伸縮性的應用程序。
“因此,客戶花費了大量的時間和費用來管理大規模MongoDB集群,包括處理安全、補丁和操作MongoDB的繁重工作,”亞馬遜說。“就像在本地部署一樣,托管的MongoDB系統也面臨著數據復制的挑戰,如果出現故障,恢復時間就會很長。因此,隨著時間的推移,客戶將很難獲得他們不斷增長的應用程序所需的性能、可伸縮性和可用性。”
亞馬遜表示DocumentDB就是為了解決這些問題而構建的。該數據庫使用了開源的MongoDB 3.6 API來模擬客戶端所期望的MongoDB服務器做出的響應。它還附帶一個“分布式、容錯、自修復的存儲系統”,每個集群可以擴展到64 TB或數萬億字節的數據。因此,客戶便不必擔心存儲容量過多時的配置問題。
亞馬遜非關系數據庫副總裁Shawn Bice表示,這種獨特的存儲系統是讓DocumentDB在AWS云架構上無縫運行的秘密工具。
為了滿足開發人員的需求,我們研究了支持MongoDB工作負載的多種方法,并得出結論:改善客戶體驗的最佳方法是從頭開始構建一個新的專用文檔數據庫,同時支持我們的客戶目前使用和喜歡的與之相兼容的MongoDB API,Bice在一份聲明中說。
DocumentDB服務還提供了更高的資源效率,因為它只會將數據庫更改寫入存儲層,從而避免了跨網絡復制數據的需要。亞馬遜表示,它已經進行了一些額外的優化,比如高級查詢處理和連接池,它允許DocumentDB提供兩倍于常規MongoDB數據庫服務的吞吐量。據說該服務將提供99.99%的可用性,因為它在三個AWS可用性區域復制了6個客戶數據副本。
然而,MongoDB的高管立即質疑了亞馬遜聲明的有效性,稱DocumentDB只是一個原始數據庫的窮人版本。
MongoDB首席執行官Dev Ittycheria告訴記者:“模仿是最真誠的奉承,所以亞馬遜試圖利用MongoDB文檔模型的流行和勢頭并不奇怪。然而,開發人員在技術上足夠精明,能夠區分什么是真實的東西,什么是拙劣的模仿。MongoDB將繼續引領市場。”
MongoDB聯合創始人兼首席技術官Eliot Horowitz也發表了看法,他表示,亞馬遜的DocumentDB的功能較弱,因為它是“基于兩年前的MongoDB代碼”。
這些高管補充說,MongoDB已經提供了一種功能更全面、管理更完善的全球云數據庫即服務,名為MongoDB Atlas,可以在AWS、微軟Azure和谷歌云平臺上運行。
不管是否是模仿,Amazon DocumentDB都是按照亞馬遜創建新服務的標準方法構建的。Constellation Research Inc.的首席分析師兼副總裁Holger Mueller對記者說,這涉及到了解產品的運營方式,然后構建一個將開源與AWS特定功能相結合的新解決方案,以減少一些痛點。
盡管如此,Mueller說,“高管們現在需要平衡亞馬遜所創造的優勢,克服潛在的IT風險,并為他們的下一代應用程序做出最佳決策。”
亞馬遜的首席布道者Jeff Barr在一篇博客文章中探討了客戶可以如何開始使用DocumentDB數據庫。