從Oracle到MongoDB:為什么AWS不斷拋棄合作伙伴?
亞馬遜因不斷與其商業(yè)伙伴分道揚(yáng)鑣而備受關(guān)注,在決定放棄Oracle數(shù)據(jù)庫轉(zhuǎn)而使用自己的服務(wù)之后,Amazon現(xiàn)在正在嘗試用自己的“兼容”版本DocumentDB取代MongoDB。
有趣的是,AWS宣布放棄Oracle的聲明是在Oracle首席執(zhí)行官Larry Ellison吹噓AWS和Salesforce運(yùn)行在其數(shù)據(jù)庫上之后發(fā)布的。值得注意的是,MongoDB專門修改了它的許可條款,以防止“被拋棄”情況發(fā)生,但是這樣做似乎讓事情變得更糟糕了。
MongoDB許可證可能會(huì)加速其滅亡
MongoDB服務(wù)器端公共許可證本質(zhì)上要求任何提供MongoDB服務(wù)的云提供商必須開放與該服務(wù)相關(guān)的所有代碼,這不是所有云提供商都愿意接受的,所以AWS發(fā)布DocumentDB也就不足為奇了。DocumentDB被設(shè)計(jì)用于許可證生效之前發(fā)布的3.6版本,SSPL似乎并不適用于DocumentDB。此外,Amazon新產(chǎn)品基本上只是一組位于自己數(shù)據(jù)庫上的兼容api,所以它實(shí)際上沒有使用任何MongoDB代碼。
AWS是目前的公共云,DocumentDB的發(fā)布導(dǎo)致MongoDB的股票暴跌,DocumentDB只支持MongoDB 3.6,這可能反映了一個(gè)嚴(yán)峻的問題:如果AWS的新服務(wù)流行起來,MongoDB別無選擇,只能開源其新的服務(wù),否則將面臨停滯不前的風(fēng)險(xiǎn)。這就是為什么MongoDB改變其許可條款就像自殺一樣,新的許可證不僅不能保護(hù)MongoDB免受像AWS這樣的“惡狼”的攻擊,它甚至?xí)屗艿介_源社區(qū)更多抨擊。 比如,為了響應(yīng)SSPL,Debian和RedHat都決定不將MongoDB的新產(chǎn)品包含在內(nèi),因?yàn)檎J(rèn)為它違背了開源精神。
AWS:做自己最擅長的事情
在新的聲明中,AWS將DocumentDB描述為“一種支持MongoDB工作負(fù)載的快速、可伸縮、高可用性和完全托管的文檔數(shù)據(jù)庫服務(wù)”。這意味著MongoDB本身無法處理大規(guī)模的工作負(fù)載,更意味著AWS正在向客戶銷售其自身核心競爭力,即通過性能、可伸縮性和可用性實(shí)現(xiàn)的便捷性。AWS還在一篇聲明中說,由于設(shè)置和管理MongoDB集群的復(fù)雜性,公司很少利用MongoDB api的一小部分功能,他們還發(fā)現(xiàn),擴(kuò)展到多個(gè)tb和數(shù)十萬每秒的讀寫非常具有挑戰(zhàn)性。
AWS銷售的不是軟件而是便捷性,而MongoDB為客戶提供的是完成工作的工具。AWS為他們提供了真正想要的東西,由其他人為他們來完成這項(xiàng)工作。在無需管理底層基礎(chǔ)設(shè)施的情況下獲得性能、可伸縮性和可用性升級(jí)是每個(gè)企業(yè)都追求的,這也是AWS如此成功的原因。為了更加方便,用戶可以使用MongoDB應(yīng)用程序代碼、驅(qū)動(dòng)程序和工具來處理Amazon DocumentDB上的工作負(fù)載,并且可以在AWS數(shù)據(jù)庫遷移服務(wù)(AWS DMS)的幫助下,從MongoDB執(zhí)行實(shí)時(shí)遷移,而不需要停機(jī)。
AWS DocumentDB
Amazon DocumentDB使用基于SSD的存儲(chǔ)層,在三個(gè)獨(dú)立的可用區(qū)域內(nèi)進(jìn)行6x復(fù)制,這不僅意味著DocumentDB可以在30秒內(nèi)將數(shù)據(jù)從主服務(wù)器轉(zhuǎn)移到副本服務(wù)器,而且還支持MongoDB副本集模擬。作為其“完全托管”產(chǎn)品的一部分,它還具有自動(dòng)配置和設(shè)置、監(jiān)控指標(biāo)和自動(dòng)軟件修補(bǔ)功能。此外,DocumentDB存儲(chǔ)可以從10 GB擴(kuò)展到64 TB,增量為10 GB,并通過僅將數(shù)據(jù)庫更改寫入存儲(chǔ)層來減少數(shù)據(jù)庫I / O. 它還聲稱其吞吐量是當(dāng)前可用MongoDB解決方案的兩倍。
這可能是因?yàn)镈ocumentDB的存儲(chǔ)和計(jì)算彼此分離,并被允許獨(dú)立擴(kuò)展。同時(shí)這意味著,開發(fā)人員可以忽略數(shù)據(jù)的大小,在幾分鐘內(nèi)添加多達(dá)15個(gè)低延遲副本,從而將讀取容量提高到每秒數(shù)百萬個(gè)請求。
除了速度、可擴(kuò)展性和可用性之外,DocumentDB還專注于安全性,并運(yùn)行在Amazon VPC中,這允許企業(yè)在自己的虛擬網(wǎng)絡(luò)中隔離集群。它還與AWS身份和訪問管理(IAM)集成,允許企業(yè)使用通過AWS Key Management Service(KMS)創(chuàng)建和控制的密鑰加密數(shù)據(jù)庫。
MongoDB
MongoDB的CEO Dev Ittycheria說:“模仿是最真誠的奉承,所以亞馬遜試圖利用MongoDB文檔模型的流行和勢頭也就不足為奇了。”他聲稱DocumentDB只是一個(gè)拙劣的模仿。而該公司的另一名發(fā)言人指出,DocumentDB基于一個(gè)只有兩年歷史的版本,缺少了ACID特性、集群和移動(dòng)同步等新功能。雖然在DocumentDB宣布之后,MongoDB的股票暴跌,這無疑說明了AWS本身的強(qiáng)大,但MongoDB的股票在過去一年里上漲了200%,所以現(xiàn)在就把MongoDB歸為失敗者還為時(shí)尚早。
作為反擊,MongoDB通過MongoDB Atlas的產(chǎn)品提供了自己的開源數(shù)據(jù)庫托管版本,該產(chǎn)品基于新版本的MongoDB 4.0。在最近的一篇文章中,CTO Eliot Horowitz公司比較了這兩種服務(wù),并指出DocumentDB實(shí)際上落后了大約6年,而且更接近2.4版,而不是3.6版。它還指出了AWS承諾的性能、可伸縮性和可用性帶來的一系列缺陷,包括所有DocumentDB集群都被限制在一個(gè)單獨(dú)的區(qū)域。這一點(diǎn)與Atlas不同,Atlas允許副本集擴(kuò)展并提供低延遲。
AWS與開源
總之,這是個(gè)這是個(gè)左右兩難的選擇,人們不知道到底應(yīng)該同情MongoDB還是支持AWS公然竊取開源社區(qū)的決定。從AWS的角度來看,他們并不是在銷售MongoDB,只是提供一種企業(yè)看重的服務(wù)。就算不是MongoDB,也會(huì)是客戶正在使用或需要幫助的任何其他數(shù)據(jù)庫。比如Redis數(shù)據(jù)庫,在一個(gè)許可協(xié)議下,AWS的版本總是很新的。雖然這對于開發(fā)來說有好處,但是它并沒有幫助Redis Labs獲得利潤,可能這就是它改變許可的原因。
看著像AWS這樣的大公司還在孜孜不倦地“薅羊毛”,難免讓辛勤工作的人們感到不痛快,而且很難不對Redis和MongoDB這樣的公司產(chǎn)生同情。
然而,事物都有兩面性,它們的流行可能是因?yàn)樗鼈冏畛醵际情_源的,而且“托管”開源服務(wù)總會(huì)有市場。這是否意味著,AWS將繼續(xù)隨心所欲地從開源社區(qū)獲取它想要的東西,還是法律將保護(hù)像MongoDB這樣的公司?只有未來才能知道答案。