AWS部署數據庫:監控和管理誰負責
大多數的現代應用都要求使用數據庫來實現對數據的積聚、查詢和管理。在AWS頂部部署一個數據庫要求我們具有監控和管理的功能,從而能夠更容易地擴展應用程序、減少故障帶來的負面影響以及降低成本。
在提升其核心數據庫能力、自動化管理以及與之相關的監控功能等方面,AWS已經做得相當好了。與此同時,AWS數據庫服務的競爭對手們也正在改進它們的管理功能。企業可能希望更仔細地在AWS上可用的原廠和第三方數據庫服務的功能和管理之間進行權衡比較。
了解系統需求
在軟件開發團隊開始開發之前,認真考慮應用的需求是非常非常重要的一項工作,Scalr的創始人兼CEO Sebastian Stadil說。相對而言,在開始真正開發工作之前進行架構變更是比較容易的。雖然進行系統規模評估總是一項困難的工作,但是評估所需的一致性保證則是較為簡單的。
例如,Netflix公司使用AWS來托管其在Apache Cassandra數據庫中的大部分數據。就業務內容來說,Netflix公司會認為在線(可用性)要比記得上一次所觀看視頻的存儲位置(一致性)更重要。
企業需要思考可用性和可擴展性是否是最重要的考慮因素。很多企業在NoSQL平臺上運行專為可用性進行優化的應用程序,這需要為確保一致性而進行調整。對于這些類型的應用程序來說,更好的一個方法就是使用一個諸如PostgreSQL這樣的傳統關系型數據庫,因為這種類型的數據庫能夠更加有效地提供企業所需的一致性。
相反,很多企業犯下了這樣一個錯誤,即使用一個能夠提供一致性但不具有高可用性的事務關系數據庫,例如一個推薦系統應用程序。在這些情況下,企業***從一開始就使用諸如Cassandra這樣的數據庫。
本地化
另一個好的做法就是考慮使用本地AWS服務以取代傳統的數據庫架構。Appirio的工程部總監Dayal Gaitonde表示,當開發人員把應用程序從傳統環境遷移至AWS時,他們一般都會建立起數據庫服務器和集群。
亞馬遜的RDS為用戶提供了把數據庫當作托管服務使用的功能,這也就為MySQL、PostgreSQL、Oracle以及微軟的SQL服務器提供了一個不錯的替代選擇,Gaitonde說。這是因為RDS包括了大量可用于更新升級、打補丁以及故障檢測的監控與管理功能。但是,這并不會剝奪數據庫管理員的所有職責。他說,企業仍然需要配置備份、確定數據庫需求以及指定諸如內存和存儲這樣的資源。
AWS確實包括了大量的數據庫服務以及內置的管理和監控功能,如SimpleDB和DynamoDB。這些以可擴展方式提供的服務是相對微不足道的,它們可減少對專用服務的需求。但是,某家NoSQL數據庫供應商的產品總監Kelly Stirman指出,其它的NoSQL數據庫更傾向于為眾多用例提供更豐富的功能集,這也正是它們越來越受歡迎的原因。
隨著AWS改進它的基本功能,這一狀況有可能會發生變化。例如,AWS剛剛在DynamoDB基礎上增加了對JSON數據模式的支持,這一直都是諸如MogoDB這樣替代產品引人注目的不同之處之一。但是此刻,在文檔大小、對文本搜索功能和地理空間功能等方面,AWS服務比第三方的同類型產品有著更為嚴格的限制,Stirman說。
可擴展性和功能之間的平衡
第三方NoSQL數據庫(如MongoDB)所帶來的主要挑戰之一就是在配置新實例、更新軟件或者擴展規模方面的難度。例如,配置一個12臺服務器的MongoDB集群通常需要150個步驟。而近期加入到MongoDB的MMS的自動化功能就能夠把這一繁瑣的手工操作簡化至只需若干次的鼠標點擊操作。“通過使用MMS,你就可以在幾分鐘內完成這一工作而不是在幾個小時內,同時不需要了解它內部工作的詳細信息,”Stirman說。
一家使用AWS服務提供互聯網廣告管理服務的供應商Decisive使用MMS就能夠簡化自動化部署和擴展新MongoDB實例的工作,也就是使用一個新的API來創建和優化移動廣告活動。Decisive的CTO Ryan Witt表示,他們公司選擇MongoDB是因為數據模型的靈活性。MongoDB使針對某一主題收集各種各樣的數據成為可能,例如觀看廣告的用戶的數量與類型,以及他們的點擊率。
雖然AWS為運行在其服務平臺上的數據庫應用提供了一些基本的監控和管理功能,但是對于大多數的應用需求來說,它所提供信息的詳細程度還不夠,Witt說。MMS可以讓Decisive測量硬盤I/O流量以及在客戶端上的延遲。MMS還可以幫助他們對數據庫集群的運行狀態進行評估,當發生問題時,這個功能就讓故障診斷變得更為簡單。由于讀寫操作負載變得更高,MMS會報告這些操作發生的位置,并提供了關于如何擴展系統以解決這些問題的***方法指導。
同時,對于像數據倉庫這樣眾多的用例需求來說,諸如Redshift這樣的AWS數據庫服務是足夠滿足和具有成本效益的。“對于企業分析這樣某些特殊類型的工作來說,Redshift表現優異,”Witt說。“我們將經常地把事件保存在MongoDB中,一旦我們不再需要保存這一數據,那么我們會將其移動至Redshift。但是,你往往會在靈活性方面付出代價。”
本文出自:http://www.searchcloudcomputing.com.cn/showcontent_86566.htm