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