為營運而設計
作業中向左移,以預期失敗狀況。 |
---|
在開發生命週期中及早且經常測試失敗,並判斷效能對可靠性的影響。 為了根本原因分析和事後分析,您必須跨小組共用可見度、相依性狀態和持續失敗。 來自可觀察系統的深入解析、診斷和警示是有效事件管理和持續改善的基礎。
Contoso University 會針對 Contoso 的教職員和學生,執行以微服務為基礎的 Web 應用程式,提供教育服務,例如在線課程。 工作負載是以 Azure App 服務、Azure SQL 資料庫、Microsoft Entra ID、Azure 金鑰保存庫、Azure 服務匯流排、Azure 監視器和 Azure DevOps 為基礎。
實作強固的監視
建置可與遙測相互關聯的可觀察系統。
監視和診斷是重要的作業。 如果某個項目失敗,您必須知道失敗、失敗時,以及失敗的原因。 元件層級的可檢視性是基本概念,但元件和相互關聯的流程匯總可觀察性提供健康情況狀態的整體檢視。 需要此數據,才能讓月臺可靠性工程師排定補救工作的優先順序。
Contoso 的挑戰
- 工作負載應用程式會部署為跨多個功能層的五個分離服務套件的一部分。
- 小組想要能夠在周遊解決方案的各個層級時分析交易和使用者要求,以找出可能導致不穩定的瓶頸,並在問題發生時執行更有效率的疑難解答。
套用方法和結果
- 工作負載小組會使用Application Insights來檢測元件,以擷取記錄和計量,並設定所有平臺服務的記錄。 所有記錄都會轉送至工作負載的 Azure 監視器工作區。
- AzM 工作區中的數據可用來分析解決方案個別元件的健康情況,以及匯總的流程和解決方案健康情況。
- 跨元件和階層將屬於相同要求的專案相互關聯,可協助小組判斷工作負載健康情況,並協助其疑難解答程式。
預測潛在的故障和異常行為
使用已排定優先順序且可採取動作的警示,讓作用中可靠性失敗可見。 投資可靠的流程和基礎結構,以加快分級速度。
月臺可靠性工程師可以立即收到通知,讓他們可以減輕持續發生的即時網站事件,並在成為即時事件之前主動降低預測警示所識別的潛在失敗。
Contoso 的挑戰
- 隨著學生報名上課、獲得教學大綱和購買教科書,團隊預計每個學期的流量將大幅增加。
- 在學年這一關鍵期間,小組必須確保有足夠的容量,以增加預期的負載。 小組也必須能夠快速回應可能發生的其他潛在可用性問題。
套用方法和結果
- 小組會將 Web 和資料庫層設定為在預期的需求增加之前自動相應放大以擁有額外的容量,並在負載增加時繼續配置容量。
- 緊急回應計劃已調整,以指示事件回應小組會優先處理與壓力下流動相關的警示。
測試可靠性風險
模擬失敗,並在生產前和生產前環境中執行測試。
在生產環境中體驗失敗很有説明,因此您可以設定復原的實際預期。 這可讓您做出可正常回應失敗的設計選擇。 此外,它可讓您測試您為商務計量設定的閾值。
Contoso 的挑戰
- 此工作負載中的 Web 層與學生註冊 REST 服務之間的通訊依賴客戶端憑證。
- 因為學生註冊功能在學期開始后不會使用太多,如果學生註冊服務使用的憑證到期,問題可能會有一段時間無法偵測。
- 此外,在上一個註冊期間,由於系統處理暫時性連線失敗,服務發生數次中斷。 小組已對處理暫時性失敗進行一些程式代碼改善,但不確定功能在實際生產案例中的運作方式。
套用方法和結果
- 小組會開發綜合交易測試,以按每月排程在生產環境中執行,以模擬數個流程,包括註冊流程。
- 綜合交易測試已設定警示,因此小組會收到通知,將失敗發生,涵蓋過期憑證的風險。
- 此外,小組還投資在 SDLC 中建置混亂測試、執行例行混亂測試,以及擷取結果,以驗證自我保留技術,並協助找出先前未知的可靠性問題。