根據互聯網監控平臺Catchpoint的報告,亞馬遜簡單存儲服務(S3)在2月28日發生了3小時39分鐘的中斷事故。而亞馬遜其他的一些云服務以及一些依賴于這些云平臺的許多互聯網網站也產生了連鎖效應,受到了嚴重的影響。
咨詢機構Forrester分析師Dave Bartoletti表示,“S3就像云中的空氣一樣,當其服務中斷時,很多網站就像缺氧一樣不能呼吸。但是破壞,錯誤和中斷就是業務運行在云中需要面臨的事實。”
Bartoletti說,“人們對此沒有必要恐慌,因為這并不是一個趨勢。S3已經非常可靠安全,它一直是亞馬遜云這個桂冠上的寶石。”
此次中斷對于業界應該說是敲響了一個警鐘,組織需要確保基于云計算的應用程序的安全,并準備應對下一次云中斷事件。以下是行業廠商從中吸取的教訓和為云中斷做好準備的四個提示:
1.不要把所有的雞蛋放在一個籃子里
這個建議對于不同的用戶來說,其意味的事物也不同。但其基本的想法是,如果用戶將應用程序或數據塊部署到一個云中,通常不會具備很高的容錯性。這取決于用戶希望其應用程序具有多高的可用性,因為這將決定用戶工作負載運行在多少個云中。這其中有多個選擇:
•AWS公司建議用戶將工作負載分散到多個可用區(AZ)。AWS云分布在全球16個區域中,每個區域含有至少兩個AZ(可用區),有時甚至多達五個AZ。每個AZ都與相同區域中的其他AZ分離。AWS在同一地區的AZ之間提供低延遲連接,這是創建分布工作負載的最基本方式。
•為了加強保護,用戶可以跨多個區域傳播和運行應用程序。
•最終的保護是部署多個云供應商的應用程序,例如使用微軟Azure,谷歌云平臺,或者采用一些內部部署數據中心和托管基礎設施資源作為備份。
Bartoletti表示,不同的客戶會根據自己的實際情況采取不同的措施。如果用戶依靠云計算為其業務賺取利潤,最好確保其容錯性和高可用性。如果用戶只是使用云計算備份不經常訪問的文件,那么其容錯性和可用性不必那么高。
應對云故障的一個關鍵因素是知道什么時候發生。 AWS公司有一系列的方法來做到這一點。最基本的一個方法是使用其所謂的“健康檢查”,它為每個帳戶提供了使用AWS資源狀態的自定義視圖。 Amazon CloudWatch可以自動跟蹤服務可用性,監視日志文件,創建警報,以及對故障做出反應。這個工作的一個重要前提是對“正常”行為進行徹底分析,以便AWS云工具可以檢測“異常”行為。
一旦發現錯誤,就需要對一系列的多米諾效應預先設定響應措施。負載平衡器可以用于重定向流量,并且如果備份系統已經這樣設置,則可以啟動備份系統。
2.從一開始就構建冗余系統
組織嘗試實時響應中斷,這并不是很有效。而在不可避免的中斷到來前做好準備將會挽回一些損失。以下有兩種基本方法來將冗余構建到云系統中:
•Standby(待機):當發生故障時,應用程序會自動檢測故障,并將故障轉移到備份冗余系統中。在這種情況下,備份系統可以關閉,但需要準備好在檢測到錯誤時啟動。另一種方法是備用備份程序可以在后臺運行時間運行(成本更高,但會減少故障切換時間)。這個備用方法的缺點是檢測到錯誤之后,在將故障轉移系統啟動的時間內可能會有所滯后。
•主動冗余:理論上可以避免停機時間,用戶可以將其應用程序構建主動冗余系統。在這種情況下,應用程序分布在多個冗余資源中:當發生故障時,其余資源將會承擔更多的工作負載。可以使用分片技術,將服務分解成組件。例如,一個應用程序跨越八個虛擬機實例運行,這八個虛擬機實例可以分為四組,每組兩個,數據流量可以在它們之間進行負載平衡。如果一組實例失效,其他三組可以分擔數據流量。
3.備份數據
擁有冗余系統是一回事,而備份數據是另一回事。這對于亞馬遜這次的中斷尤其重要,因為它影響了亞馬遜公司最流行的存儲服務S3正常運營。
AWS擁有多種方式來本地備份數據:
•同步復制是一個過程,如果一個應用程序在一個次要的位置被復制,那么應用程序只承認一個事務(例如上傳一個文件到云,或者將信息輸入數據庫)。這種方法的缺點是,它將引入輔助復制的等待時間,并使主系統得到確認。當延遲不是優先級時,這是一個很好的做法。
•異步復制:此過程將主節點與副本解耦,這對需要低延遲寫入功能的系統很有用。在這種情況下,用戶在失敗期間應該愿意承受最近交易的一些損失。
•基于仲裁的復制:這是同步和異步復制的組合,它設置了要為事務進行備份的最小數量的信息。
為了確定如何最好地構建冗余系統和備份數據,客戶應考慮其期望的恢復點目標(RPO)和恢復時間目標(RTO)。
4.測試系統
企業為什么要在發生中斷之后,才能獲知自己的系統是否應對故障?企業主動應對的辦法就是事先測試。這可能聽起來很瘋狂,但大膽的云架構師寧可讓整個節點,服務,AZ,甚至區域的業務中斷,以便查看他們的應用程序是否可以承受。“你應該不斷地打敗自己的網站。”Bartoletti說。
Netflix公司擁有名為Chaos Monkey和Chaos Gorilla的開源工具,它們是其Simian Army的一部分,可以自動使某些內部系統崩潰或中斷,以測試其對錯誤的容忍程度。那么這種措施有效嗎?而在這次中斷事故發生后,Netflix公司并沒有報告其服務發生什么問題。