了解混沌工程和復原能力
開始使用 Azure Chaos Studio 之前,了解要套用的核心網站可靠性工程概念會很有幫助。
什麼是復原能力?
建立大規模分散式應用程式從未如此容易。 基礎結構裝載於雲端,程式設計語言支援多樣化。 同時也有許多開放原始碼和裝載元件及服務可供作為基礎建置。
可惜的是,這些基礎元件和相依性,或建置於其上的系統均無法保證可靠性。 基礎結構可能會離線,服務中斷隨時可能發生。 一個區域中的次要中斷可能會擴大,在另一個區域中產生長期的副作用。
應用程式和服務必須適當規劃並因應下列問題:
- 服務中斷。
- 已知和未知相依性的中斷。
- 突然的未預期負載。
- 整個系統的延遲。
應用程式和服務的設計必須能處理失敗,並針對中斷進行強化。
可優雅地處理壓力和問題的應用程式和服務便是具有彈性。 個別元件具備可靠性固然很好,但復原能力才是整個系統的財富。 端對端系統復原必須在整合且類似實際執行的環境中驗證,環境中需具備實際執行環境中會面臨的條件和負載。
什麼是混沌工程和錯誤插入?
- 混沌工程:將應用程式和服務置於真實世界壓和失敗下進行實踐。 目標是建立和驗證在不可靠條件和缺少相依性下的復原能力。
- 錯誤插入:將錯誤引入系統的行為。 您可以使用不同錯誤 (例如網路延遲或無法存取儲存體) 鎖定系統元件。 您可以建立應用程式或服務必須能夠處理或復原的案例。
混沌實驗是個別、同時或循序針對一或多個訂用帳戶資源或相依性套用錯誤。 目標是監視系統行為和健康情況,以便您可以在發生任何問題時採取行動。
實驗可以代表真實世界案例,例如資料中心停電或 DNS 伺服器的網路延遲。 同時也可以用於模擬發生的邊緣條件。 例如,黑色星期五大血拚或流行樂團演唱會門票特價中。