AWS回擊了:推出兼容MongoDB的DocumentDB

2018年10月,MongoDB將其開源許可證從 GNU AGPLv3 切換到Server Side Public License(SSPL),並明確指出之所以會更改開源協議是因爲部分雲計算公司在使用 MongoDB 的時候沒有遵循其開源協議。

2019年1月9日,AWS宣佈推出Amazon DocumentDB,一個兼容MongoDB的數據庫。據AWS官網介紹,Amazon DocumentDB是一種可支持MongoDB工作負載的快速、可擴展、高可用並完全託管的文檔數據庫服務。開發人員可以像現在一樣使用MongoDB應用程序代碼、驅動程序和工具來運行、管理和擴展Amazon DocumentDB上的工作負載,並享受更好的性能、可擴展性和可用性,而無需擔心管理底層基礎設施。

即使MongoDB更改協議,這塊蛋糕AWS也想照吃不誤?

事實上,MongoDB修改開源協議要針對的對象很明確就是雲廠商,而AWS發佈Amazon DocumentDB的這一舉動無疑是對MongoDB的一次迴應:既然你不爽我直接用MongoDB,那沒關係我自己開發一個數據庫。

爲什麼AWS要死盯着MongoDB的市場呢?根據DB-Engines發佈的數據庫流行度,MongoDB目前排在第五位,如果縮小範圍到開源數據庫,MongoDB排在第三位(前兩位爲MySQL和PostgreSQL),如果範圍縮小到文檔存儲數據庫,那麼MongoDB是大幅度領跑的。因此,雲廠商在提供雲數據庫服務時,MongoDB自然就成爲了必選,如果不選,那麼就意味着會有一大批客戶會轉到競爭對手那裏或者直接流失掉。

AWS推出Amazon DocumentDB僅僅只是要克隆一個MongoDB嗎?顯然並不是,因爲MongoDB在使用時很容易報錯,有人調侃,MongoDB出錯都不是一個Bug,而是它的特性。AWS官方也印證了這一點:

  • MongoDB 的API和表達性語言查詢雖然可以幫助客戶快速構建應用程序,但是實際情況是客戶往往只需要API提供的一小部分功能;
  • 有客戶反饋在MongoDB上構建高性能、高可用性的應用程序非常困難,原因是設置和管理MongoDB集羣實在太複雜了。有的應用程序可能需要每秒快速擴展到多兆字節(tbs)和數十萬次讀寫,因此,客戶不得不花費大量的時間和費用來管理大規模的MongoDB集羣;
  • 與本地部署一樣,MongoDB託管系統也面臨着數據複製的挑戰,而且在發生故障之後往往需要很長的恢復時間。

很顯然,AWS的野心並不只是要克隆一個MongoDB,而是要做一個兼容MongoDB並且優於MongoDB的數據庫產品。

之前的MongoDB如何遷移到Amazon DocumentDB呢?

相信在聽到這個消息之後,很多人的第一反應都是“之前的MongoDB如何遷移到Amazon DocumentDB呢?”AWS官方稱,客戶可以使用AWS數據庫遷移服務(DMS)輕鬆地將其本地或 EC2 MongoDB數據庫遷移到Amazon DocumentDB。Amazon DocumentDB通過模擬MongoDB客戶端對MongoDB服務器的響應來實現Apache 2.0 open source MongoDB 3.6 API,允許客戶將現有的MongoDB驅動程序和工具與Amazon DocumentDB一起使用。

前文我們提到了AWS想做的一個優於MongoDB的數據庫產品,那麼具體會體現在哪裏呢?

  • Amazon DocumentDB採用了分佈式、容錯、自我修復的存儲系統,集羣可自動擴展到64 TB,客戶無需爲容量規劃而擔心;
  • Amazon DocumentDB只會將數據庫更改寫入存儲層,從而減少了數據庫I/O,避免了跨網絡鏈接的低效數據複製;
  • Amazon DocumentDB在高級查詢處理、連接池、恢復、重建等方面做了優化,吞吐量可達當前MongoDB解決方案的兩倍;
  • Amazon DocumentDB採用了存儲和計算分離的架構,允許獨立擴展,開發者可在幾分鐘內添加15個低延遲讀取副本(無需考慮數據大小),讀取容量可提升至每秒數百萬個請求。
  • Amazon DocumentDB採用了AWS多可用區技術,可在AWS的三個AZ之間複製六份數據,可用性高達99.99%。

在費用方面,AWS也給出瞭解答,使用Amazon DocumentDB不需要預先付費,按使用量付費即可。

開源如何才能走出一條更好的路徑呢?

開源運動轟轟烈烈的進行了近30年,在技術創新和發展方面取得了一些成績,但是在商業變現方面至今也沒有探索出一條比較好的路徑。筆者在和專家交流時也贊同了這個觀點,“微軟75億收購GitHub,這可能是開源商業變現最具參考的例子了,但是大家也只是有了一個模糊的概念:多少行代碼、多少開發者對應多少錢,並沒有真正探索出開源變現的路徑。”

開源項目、商業公司和用戶其實是一個三方矛盾的存在。開源項目並非是天上掉餡餅,也是要燒錢、花精力的,MongoDB首席執行官Dev Ittycheria就曾表示,過去十年,在MongoDB的研發上投入了3億美元,所以開源項目背後的公司自然希望能夠源碼貨幣化,甚至是可以獨家貨幣化。對於用戶來說,他們只希望能在自己的系統中大規模運行源碼,並且能夠解決他們現階段的業務問題,提供性能,減少成本。而對於商業公司來說,就要平衡這兩方的矛盾。

以Amazon DocumentDB和MongoDB爲例,如果未來Amazon DocumentDB在AWS的用戶中取得了成功,那麼AWS又將如何管理基於開源項目的服務呢?AWS表示,當我們選擇推出基於開源項目的服務時,就做好了長期維護的準備,並且我們也會大力貢獻於此開源項目。

如果此次Amazon DocumentDB和MongoDB能夠長期穩定運行下去,那麼會不會爲開源項目趟出一條更好的路徑呢?

參考鏈接:https://press.aboutamazon.com/news-releases/news-release-details/aws-announces-amazon-documentdb-mongodb-compatibility

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章