解讀無伺服器資料庫優缺點,選擇哪些解決方案?
無伺服器計算很火,無伺服器資料庫頭一次聽說!編譯一下,以饗大家。
無伺服器計算是一種雲計算執行模式,這意味著雲提供商動態管理計算機資源的分配。通過函數執行(function execution)獲取寶貴的計算資源。如果你擁有分配的內存和函數執行時間的組合,則像AWS和Azure都會收取更多費用,該時間會四捨五入為100毫秒。AWS Lambda的當前每GB-second使用價格為0.00001667美元,而Azure的每GB-second使用費用為0.000016美元。這可以讓你了解成本上漲的速度。考慮到分配的內存量可以在128 MB和1.5 GB之間配置,函數執行的價格可以根據你的設置而變化。大功率配置的執行時間每100ms的成本將比基於128 MB的選項貴12倍左右。
無伺服器計算仍然需要伺服器,這就是無伺服器資料庫所在的地方。知道你的需求無疑會使你輕鬆選擇正確的資料庫服務,以決定使用怎樣的技術解決方案。
使用無伺服器資料庫的優點
成本效益
購買固定數量的伺服器通常需要很長時間才能充分利用,並且比使用無伺服器資料庫要昂貴得多。除了更具成本效益之外,由於機器資源的更高效的裝箱(bin-packing),它還可以比提供自動縮放組更具成本效益。立即獲得成本效益,實現了不存在操作系統成本,包括許可,安裝,維護,支持和修補。它是隨需隨付費(pay-as-you-go)的計算,因為你只需要在運行代碼時分配需用時間和內存。
運營,可擴展性和生產力
無伺服器架構意味著開發人員和運營商可以通過不設置和調整自動縮放策略或系統來節省時間。雲提供商責任擴展容量以無縫地滿足需求。小型開發團隊現在可以獨立運行代碼。沒有必要尋找基礎設施和工程師的支持團隊。而且更多的開發人員可正成為DevOps的嫻熟技術人員。軟體開發人員和DevOps工程師之間的差異現在無法區分。
使用無伺服器資料庫的缺點
性能和資源限制
與在專用伺服器,虛擬機或容器中運行的資料庫相比,不經常使用資料庫可能導致資料庫受到更嚴重的響應延遲。發生這種情況的原因是,如果雲服務提供商沒有使用伺服器資料庫的需求,則它會「完全停止」無伺服器資料庫,這意味著如果運行時需要一段時間才能啟動,會造成延遲。無伺服器計算也不適用於高性能計算等一些計算工作負載。這種資源限制的原因來自於施加這些資源限制的提供者。另一個原因是,在任何特定時期批量提供你需要的伺服器數量,可能會更具成本效益。
監控和調試
使用無伺服器架構來診斷性能或過度使用資源的問題,比傳統伺服器腳骨要困難得多。儘管可以對完整的函數進行定時,但是不可能通過附加探查器,調試器或APM工具來深入了解更多細節。請注意,無伺服器架構運行的環境通常不是開源的,這意味著其性能特徵不易在本地環境中精確複製。幸運的是,市場上已經有一些非常棒的無伺服器監控工具可供你使用了。
安全
無伺服器資料庫有時被認為比傳統資料庫更安全。在某種程度上,這是事實,因為雲供應商正在關注操作系統的漏洞。因為與傳統架構相比,應用程序的組件更多,並且每個元素都是無伺服器應用的入口,所以攻擊的可能性會提升。客戶對必須保護其雲工作負載的保證變得不在那麼重要,因為他們無法在端點和網路級別(如IDS/IPS)上執行關於控制或安裝的任何操作。
不同的無伺服器資料庫
有幾個已知的資料庫已經可用。比如Google雲商店,FaunaDB,亞馬遜Aurora無伺服器,DynamoDB,MongoDB。
Google雲商店
Google雲商店是一個面向文檔的商店,提供Google App Engine的資料庫組件作為獨立服務。Firebase也由Google擁有,可提供兩種不同的支付方案供客戶選擇。有一個固定的計劃或隨收隨付費的計劃。Firebase還包含分層資料庫。
FaunaDB
FaunaDB分布於全球各地,提供重要的交易資料庫服務。它的技術基於Twitter。
亞馬遜Aurora無伺服器
Amazon Aurora Serverless的預覽版於2017年的最後一個季度推出。它有兩種不同的兼容MySQL或PostgreSQL的版本,但它也與MariaDB,Oracle等其他已知系統兼容。Amazon Aurora無伺服器資料庫完全兼容管理並自動擴展到64 TB的資料庫存儲。
DynamoDB
這是另一項亞馬遜服務。DynamoDB是完全託管的NoSQL資料庫服務,能夠提供具有無縫可伸縮性的、可預測和高速性能。使用DynamoDB,創建資料庫表很簡單,可以存儲和檢索任意數量的數據,並且還可以為任何級別或請求的流量提供服務。
MongoDB
儘管不是無伺服器資料庫,但MongoDB仍然值得一提,因為它們提供了資料庫即服務產品,稱為MongoDB Atlas。MongoDB是免費且開源的,由GNU Affero通用公共許可證發布。它在存儲數據方面非常靈活,類似JSON的文檔,這意味著該欄位在文檔和文檔之間是可變的,並且數據結構將隨著時間而改變。
轉到MongoDB Atlas,正如我所說,他們的DBaaS工具。它具有一些強大的功能,例如能夠進行自動化操作,這意味著你將能夠在幾分鐘內創建和部署集群,並確保集群的停機時間為零。基於角色的訪問控制可以保護你的數據。它也被加密並且網路被隔離。身份驗證只是提供的另一部分保護。
MongoDB Atlas的另一個強大功能是,只需按下一個按鈕,就可以輕鬆擴展或伸縮。你還可以在多個地區部署集群,以獲得更好的讀取和保證。這些集群是地理分布的,它們可以自我修復,並且具有出色的容錯性。MongoDB Atlas附帶的連續備份解決方案具有可查詢的時間點恢復和快照選項。查找任何細節都非常舒適,並且視圖性能是實時的。你可以自定義警報,優化的儀錶板突出顯示關鍵的歷史指標。
TAG:全球大搜羅 |