從Oracle到MongoDB:為什麼AWS不斷拋棄合作伙伴?

亞馬遜因不斷與其商業夥伴分道揚鑣而備受關注,在決定放棄Oracle數據庫轉而使用自己的服務之後,Amazon現在正在嘗試用自己的“兼容”版本DocumentDB取代MongoDB。

從Oracle到MongoDB:為什麼AWS不斷拋棄合作伙伴?

有趣的是,AWS宣佈放棄Oracle的聲明是在Oracle首席執行官Larry Ellison吹噓AWS和Salesforce運行在其數據庫上之後發佈的。值得注意的是,MongoDB專門修改了它的許可條款,以防止“被拋棄”情況發生,但是這樣做似乎讓事情變得更糟糕了。

MongoDB許可證可能會加速其滅亡

MongoDB服務器端公共許可證本質上要求任何提供MongoDB服務的雲提供商必須開放與該服務相關的所有代碼,這不是所有云提供商都願意接受的,所以AWS發佈DocumentDB也就不足為奇了。DocumentDB被設計用於許可證生效之前發佈的3.6版本,SSPL似乎並不適用於DocumentDB。此外,Amazon新產品基本上只是一組位於自己數據庫上的兼容api,所以它實際上沒有使用任何MongoDB代碼。

AWS是目前最大的公共雲,DocumentDB的發佈導致MongoDB的股票暴跌,DocumentDB只支持MongoDB 3.6,這可能反映了一個嚴峻的問題:如果AWS的新服務流行起來,MongoDB別無選擇,只能開源其最新的服務,否則將面臨停滯不前的風險。這就是為什麼MongoDB改變其許可條款就像自殺一樣,新的許可證不僅不能保護MongoDB免受像AWS這樣的“惡狼”的攻擊,它甚至會讓它受到開源社區更多抨擊。 比如,為了響應SSPL,Debian和RedHat都決定不將MongoDB的最新產品包含在內,因為認為它違背了開源精神。

AWS:做自己最擅長的事情

在最新的聲明中,AWS將DocumentDB描述為“一種支持MongoDB工作負載的快速、可伸縮、高可用性和完全託管的文檔數據庫服務”。這意味著MongoDB本身無法處理大規模的工作負載,更意味著AWS正在向客戶銷售其自身核心競爭力,即通過性能、可伸縮性和可用性實現的便捷性。AWS還在一篇聲明中說,由於設置和管理MongoDB集群的複雜性,公司很少利用MongoDB api的一小部分功能,他們還發現,擴展到多個tb和數十萬每秒的讀寫非常具有挑戰性。

AWS銷售的不是軟件而是便捷性,而MongoDB為客戶提供的是完成工作的工具。AWS為他們提供了真正想要的東西,由其他人為他們來完成這項工作。在無需管理底層基礎設施的情況下獲得性能、可伸縮性和可用性升級是每個企業都追求的,這也是AWS如此成功的原因。為了更加方便,用戶可以使用MongoDB應用程序代碼、驅動程序和工具來處理Amazon DocumentDB上的工作負載,並且可以在AWS數據庫遷移服務(AWS DMS)的幫助下,從MongoDB執行實時遷移,而不需要停機。

AWS DocumentDB

Amazon DocumentDB使用基於SSD的存儲層,在三個獨立的可用區域內進行6x複製,這不僅意味著DocumentDB可以在30秒內將數據從主服務器轉移到副本服務器,而且還支持MongoDB副本集模擬。作為其“完全託管”產品的一部分,它還具有自動配置和設置、監控指標和自動軟件修補功能。此外,DocumentDB存儲可以從10 GB擴展到64 TB,增量為10 GB,並通過僅將數據庫更改寫入存儲層來減少數據庫I / O. 它還聲稱其吞吐量是當前可用MongoDB解決方案的兩倍。

這可能是因為DocumentDB的存儲和計算彼此分離,並被允許獨立擴展。同時這意味著,開發人員可以忽略數據的大小,在幾分鐘內添加多達15個低延遲副本,從而將讀取容量提高到每秒數百萬個請求。

除了速度、可擴展性和可用性之外,DocumentDB還專注於安全性,並運行在Amazon VPC中,這允許企業在自己的虛擬網絡中隔離集群。它還與AWS身份和訪問管理(IAM)集成,允許企業使用通過AWS Key Management Service(KMS)創建和控制的密鑰加密數據庫。

MongoDB

MongoDB的CEO Dev Ittycheria說:“模仿是最真誠的奉承,所以亞馬遜試圖利用MongoDB文檔模型的流行和勢頭也就不足為奇了。”他聲稱DocumentDB只是一個拙劣的模仿。而該公司的另一名發言人指出,DocumentDB基於一個只有兩年曆史的版本,缺少了ACID特性、集群和移動同步等新功能。雖然在DocumentDB宣佈之後,MongoDB的股票暴跌,這無疑說明了AWS本身的強大,但MongoDB的股票在過去一年裡上漲了200%,所以現在就把MongoDB歸為失敗者還為時尚早。

作為反擊,MongoDB通過MongoDB Atlas的產品提供了自己的開源數據庫託管版本,該產品基於最新版本的MongoDB 4.0。在最近的一篇文章中,CTO Eliot Horowitz公司比較了這兩種服務,並指出DocumentDB實際上落後了大約6年,而且更接近2.4版,而不是3.6版。它還指出了AWS承諾的性能、可伸縮性和可用性帶來的一系列缺陷,包括所有DocumentDB集群都被限制在一個單獨的區域。這一點與Atlas不同,Atlas允許副本集擴展並提供低延遲。

AWS與開源

總之,這是個這是個左右兩難的選擇,人們不知道到底應該同情MongoDB還是支持AWS公然竊取開源社區的決定。從AWS的角度來看,他們並不是在銷售MongoDB,只是提供一種企業看重的服務。就算不是MongoDB,也會是客戶正在使用或需要幫助的任何其他數據庫。比如Redis數據庫,在一個許可協議下,AWS的版本總是最新的。雖然這對於開發來說有好處,但是它並沒有幫助Redis Labs獲得利潤,可能這就是它改變許可的原因。

看著像AWS這樣首屈一指的大公司還在孜孜不倦地“薅羊毛”,難免讓辛勤工作的人們感到不痛快,而且很難不對Redis和MongoDB這樣的公司產生同情。

然而,事物都有兩面性,它們的流行可能是因為它們最初都是開源的,而且“託管”開源服務總會有市場。這是否意味著,AWS將繼續隨心所欲地從開源社區獲取它想要的東西,還是法律將保護像MongoDB這樣的公司?只有未來才能知道答案。


分享到:


相關文章: