本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
REL05-BP07 實作緊急槓桿
緊急控制桿是可緩解工作負載所受之可用性影響的快速程序。
緊急控制桿的運作方法是使用已知且經過測試的機制來停用、限流或變更元件或相依性的行為。這可以減輕因需求意外增加導致資源耗盡所造成的工作負載受損,並降低工作負載內非關鍵元件的故障影響。
預期成果:透過實作緊急控制桿,可以建立已知的良好流程,以維持工作負載中關鍵元件的可用性。在啟用緊急控制桿期間,工作負載應該會適度降級,並繼續執行其業務關鍵功能。如需優雅降級的詳細資訊,請參閱 REL05-BP01 實作優雅降級,將適用的硬相依性轉換為軟相依性 。
常見的反模式:
-
非關鍵相依性失敗會影響核心工作負載的可用性。
-
未在非關鍵元件受損期間測試或驗證關鍵元件的行為。
-
沒有為啟用或停用緊急控制桿定義明確且決定性的準則。
建立此最佳實務的優勢:實作緊急控制桿可透過為解析程式提供已確立的程序來應對意外的需求峰值或非關鍵相依性失敗,從而提高工作負載中關鍵元件的可用性。
未建立此最佳實務時的曝險等級:中
實作指引
-
識別工作負載中的關鍵元件。
-
設計和建構工作負載中的關鍵元件,以承受非關鍵元件的故障。
-
進行測試以驗證非關鍵元件失敗期間您關鍵元件的行為。
-
定義和監控相關指標或觸發器以啟動緊急控制桿程序。
-
定義構成緊急控制桿的程序 (手動或自動)。
實作步驟
-
識別工作負載中的業務關鍵元件。
-
工作負載中的每個技術元件應對應到其相關業務功能,並將其排名為關鍵或非關鍵。如需 Amazon 關鍵和非關鍵功能的範例,請參閱 Any Day Can Be Prime Day: How Amazon.com Search Uses Chaos Engineering to Handle Over 84K Requests Per Second
。 -
這同時是技術和業務方面的決策,並且會因組織和工作負載而異。
-
-
設計和建構工作負載中的關鍵元件,以承受非關鍵元件的故障。
-
在相依性分析期間,請考慮所有潛在的故障模式,並驗證您的緊急控制桿機制能為下游元件提供關鍵功能。
-
-
進行測試以驗證緊急控制桿啟動期間您關鍵元件的行為。
-
避免雙模態行為。如需更多詳細資訊,請參閱 REL11-BP05 使用靜態穩定性來防止雙模式行為 。
-
-
定義、監控和警示相關指標,以啟動緊急控制桿程序。
-
尋找適合監控的指標取決於您的工作負載。一些範例指標是延遲或失敗的相依性請求次數。
-
-
定義構成緊急控制桿的程序 (手動或自動)。
資源
相關的最佳實務:
相關文件:
相關影片: