瞭解混亂工程和復原能力

開始使用 Azure Chaos Studio 之前,瞭解所套用的核心網站可靠性工程概念會很有用。

什麼是復原能力?

建立大規模分散式應用程式再簡單不過了。 基礎結構裝載于雲端,且程式設計語言支援多樣化。 還有許多開放原始碼和裝載的元件和服務可建置。

不幸的是,對於這些基礎元件和相依性,或針對建置在這些元件和相依性上的系統,沒有可靠性保證。 基礎結構可能會離線,而且服務中斷或中斷可以隨時發生。 一個區域中的輕微中斷可以放大,並在另一個領域有長期副作用。

應用程式和服務必須針對下列問題進行規劃和因應:

  • 服務中斷。
  • 已知和未知相依性的中斷。
  • 突然發生非預期的負載。
  • 整個系統的延遲。

應用程式和服務必須設計為處理失敗,並針對中斷進行強化。

可正常處理壓力和問題的應用程式和服務具有 彈性 。 個別元件可靠性很好,但 復原能力是整個系統 的屬性。 端對端系統復原必須在整合的生產環境中驗證,且其條件和負載在生產環境中。

什麼是混亂工程和錯誤插入?

  • 混亂工程 :將應用程式和服務受限於真實世界的壓力和失敗的做法。 目標是建置及驗證復原能力,以達到不可靠的條件和遺漏相依性。
  • 錯誤插入 :將錯誤引入系統的行為。 您可以使用不同的錯誤,例如網路延遲或無法存取儲存體,以鎖定系統元件。 您可以建立應用程式或服務必須能夠處理或復原的案例。

混亂實驗是針對一或多個訂用帳戶資源或相依性個別、平行或循序地套用錯誤。 目標是要監視系統行為和健康情況,以便您可以針對所發生的任何問題採取行動。

實驗可以代表真實世界的案例,例如資料中心電源中斷或 DNS 伺服器的網路延遲。 它也可以用來模擬發生的邊緣條件。 例如黑色星期五購物狂潮或音樂會門票出售流行樂隊。