Amazon AWS云管理平臺技術內幕
云架構 是滿足按需分配的服務而設計的軟件架構。 云架構上構建服務流程是這樣,基本的計算及基礎設施只是在有需要時(例如處理一個用戶請求)才分配出去,分配必要的資源上的需求(如計算服務器或存儲),執行特定的工作,然后放棄不必要的資源。 在整個業務過程,云平臺負責根據客戶的需求(并發數,吞吐量,數據存儲空間等)來彈性的分配資源,然后將不用的資源收回 。老蔣認為這個過程中提供整個計算及存儲等基礎設施管理,分配,回收等工作的就稱為云管理平臺。
云架構能解決大型數據處理的很多問題。 例如傳統數據處理中很難使用多臺服務器來運行一個應用程序。 第二,在需要計算或者存儲資源的時候,很難去自動獲得一個服務器或者存儲。 第三,難以將大量并發的作業分配和協調不同的機器上,如果一臺機器出現故障如何用備用機恢復工作。 第四,這是難以自動調節資源的的動態負載。 第五,當工作完成時,如何將這些計算及存儲資源回收。 云架構的管理平臺就是為了解決這些問題。
云架構上構建的應用程序運行,而云的基礎設施的實際位置是由供應商決定。 他們利用互聯網的優勢,方便的服務的簡單API的規模上的需求,其中復雜云計算和云存儲及商業的運算,仍然隱藏在云中。 在云架構資源的使用是根據需要,有時短暫的或季節性的,云管理平臺根據經濟性最大原則,以最優的資源分配給不斷變化的客戶使用。
讓我們以AMAZON AWS為例來看一看云管理平臺是如何運行的:
任何一個SAAS在提供服務的時候,云平臺都會通過4個階段對SAAS服務進行資源的分配及調整:
1. 首先啟動服務,當有客戶進行SAAS服務操作時,云平臺會啟動服務。
2. 啟動后監控SAAS服務的需求情況。
3. 當無人訪問時,停止服務。
4. 回收不被使用的資源
讓我們看一下AWS具體的操作流程,消息平臺首先發送服務啟動的命令給啟動的控制器,由啟動控制器首先將啟動信息放在simpledb的緩沖區里面,做上時間標記。分配EC2的計算資源,啟動HADoop等操作,將計算數據從S3中導入EC2, 開始進行計算和分析。
監控控制器接收到監控信息后,對SAAS應用中所有的資源和錯誤進行監控,更新simpledb的緩沖區中的狀態,并且根據用戶的需要隨時增減資源(計算節點和存儲節點)。
Shutdown控制器在收到關閉消息后,會停止EC2,HADOOP等資源,將運算結果放入S3或者客戶指定的存儲目標,并發消息給結算控制器。
消息平臺的重要作用
亞馬遜SQS的被用來作為消息傳遞組件之間的機制。它充當“膠水”的有線不同的功能組件連接在一起。這不僅有助于使不同的組件的松耦合,而且在全面建設彈性系統讓系統避免因為延時的失敗。
主要有以下3個作用:
緩沖區
將有助于緩沖使整個系統更加靈活的流量(或負載)。亞馬遜SQS的行為作為兩個組件之間GrepTheWeb系統(控制器)瞬態緩沖區。如果郵件直接發送到一個組件,接收器將需要消耗由寄件人在支配它的速度。例如,如果計費系統很慢
或者如果Hadoop集群發射的時間超過預期,整個系統就會慢下來,因為這將只能等待。具有消息隊列,發送者和接收者解耦和隊列服務柔滑任何“高低不平”消息流量。
分離
GrepTheWeb之間的任何兩個控制器的交互是通過消息隊列中,沒有任何其他控制器直接呼叫控制器。所有的通信和交互發生在通過存儲消息隊列(連接隊列),并從隊列(去隊列)檢索信息。這使得整個系統的松耦合和接口簡單,干凈。亞馬遜SQS的轉移提供了不同應用程序組件之間的信息統一的方式。每個控制器的功能是獲取信息,處理信息(執行的功能),并存儲在其他隊列中的消息。
異步
由于這是很難知道每個階段將采取的執行多少時間(例如,動態地啟動階段決定需要多少個實例開始執行的要求,因此基于時間未知)亞馬遜SQS的建設異步系統的幫助。現在,如果發射階段需要更多的時間來處理,或顯示器相失敗,該系統的其他組件都不會受到影響,整個系統更加穩定和高可用性。