工作負載的 Power Platform 可靠性權衡
可靠的工作負載始終滿足其定義的可靠性目標。 它應該達到既定的彈性目標,最好是透過規避影響可靠性的事件。 然而,實際上,工作負載必須容忍和控制此類事件的影響,並在活動故障期間將操作維持在預定水準。 即使在災難期間,可靠的工作負載也必須在給定的時間內恢復到特定的狀態,這兩者都是利害關係人達成一致的。 使您能夠實現快速偵測和復原的事件回應計劃至關重要。
在工作負載的設計階段,您需要考慮基於可靠性設計原則和可靠性設計審核清單中的建議的決策可能如何影響其他支柱的目標和最佳化。 某些決定可能有利於某些支柱,但會對其他支柱構成取捨。 本文介紹了工作負載團隊在設計工作負載架構和操作以實現可靠性時可能遇到的範例取捨。
可靠性與安全性的取捨
權衡:增加工作負載外圍應用。 安全支柱優先考慮減少和控製表面積,以最大程度地減少攻擊媒介並減少安全控制的管理。
可靠性通常是透過複製獲得的。 複製可以發生在元件級別、資料級別,甚至地理級別。 根據設計,副本會增加工作負載的表面積。 從安全角度來看,優選減少和封閉的表面積,以最大程度地減少潛在的攻擊媒介並簡化安全控制的管理。
同樣,災難復原解決方案 (例如備份) 會增加工作負載的表面積。 然而,它們通常與工作負載的執行時隔離。 這需要實施額外的安全控制,這可能特定於災難復原解決方案。
為了實現可靠性目標,該架構可能需要額外的元件,這會增加表面積。 由於增加了需要保護的新元件 (可能以系統中尚未使用的方式),這種增加的複雜性增加了工作負載的表面積。 通常,這些元件都附有額外的程式碼來支援它們的使用或一般可靠性模式,這也增加了應用程式的表面積。
權衡:繞過安全控制。 安全支柱建議所有控制措施在正常系統和壓力系統中保持活動狀態。
當工作負載遇到正在主動事件回應下解決的可靠性事件時,緊迫性可能會給工作負載團隊帶來繞過針對日常存取最佳化的安全控制的壓力。
故障排除活動可能會導致團隊暫時停用安全協議,使本已緊張的系統可能面臨額外的安全風險。 還存在安全協議無法立即重新建立的風險。
安全控制的細粒度實作 (例如基於角色的存取控制指派或防火牆規則) 會引入配置複雜性和敏感性,增加錯誤配置的機會。 透過使用廣泛的規則來減輕這種潛在的可靠性影響會破壞所有三個零信任架構原則。
權衡:軟體版本舊。 安全支柱鼓勵對供應商安全修補程式採取「獲取最新、保持最新」的方法。
將發佈波更新或更新套用至供應商庫 (例如第三方元件或解決方案) 可能會破壞目標元件,導致變更期間無法使用。 延遲或避免修補可能會避免潛在的可靠性風險,但它會使系統無法抵禦不斷變化的威脅。
上述注意事項也適用於工作負載的程式碼。 例如,它適用於使用舊庫和元件的應用程式程式碼。 如果更新和部署應用程式程式碼被視為完全的可靠性風險,那麼隨著時間的推移,應用程式將面臨額外的安全風險。
可靠性與卓越營運的取捨
權衡:增加操作複雜性。 卓越營運,就像可靠性本身一樣,優先考慮簡單性。
針對工作負載制定全面的監控策略是卓越營運的關鍵部分。 在架構中引入額外的元件來實現可靠性設計模式會導致需要管理更多的資料來源,從而增加實現分散式追蹤和可觀察性的複雜性。
使用多個區域來克服單一區域資源容量限制和/或實施主動/主動架構會增加工作負載營運管理的複雜性。 這種複雜性是由於需要管理多個區域,以及管理它們之間的資料複製的需要而引起的。
權衡:增加生成團隊知識和意識的工作量。 卓越營運支柱建議保留和維護程序和拓撲的文件儲存庫。
隨著工作負載透過添加可靠性元件和模式而變得更加健壯,需要更多的時間來維護操作過程和工件文件。
隨著工作負載中元件數量的增加,訓練變得更加複雜。 這種複雜性會影響入職所需的時間,並增加追蹤產品路線圖和服務等級指導所需的知識。
可靠性與體驗最佳化的取捨
權衡:敏捷性降低。 體驗最佳化支柱優先考慮使用者效率。
強調嚴格的測試可能會延遲對採用至關重要的體驗功能的發佈。
可靠性最佳化可能會過度降低複雜性,從而降低了提供更具吸引力的使用者體驗的功能的優先級,例如自訂元件和整合。
可靠性與性能效率的權衡
權衡:延遲增加。 性能效率要求系統實現使用者和數據流的性能目標。
可靠性模式通常包含數據複製,以便在副本故障中倖存下來。 複製會為可靠的數據寫入操作帶來額外的延遲,這會消耗特定使用者或數據流的部分性能預算。
可靠性有時會採用各種形式的資源平衡來將負載分配或重新分配到運行狀況良好的副本。 用於均衡的專用元件通常會影響正在均衡的請求或進程的性能。
跨地理邊界或可用區分發元件以承受範圍影響會在跨越這些可用性邊界的元件之間的通信中引入網路延遲。
使用大量進程來觀察工作負載的運行狀況。 儘管監控對於可靠性至關重要,但檢測可能會影響系統性能。 隨著可觀測性的提高,性能可能會降低。
權衡:增加了過度配置。 性能效率支柱不鼓勵過度預置,而是建議使用足夠的資源來滿足需求。
自動擴展操作不是即時的,因此無法可靠地處理無法調整或平滑的突然急劇需求高峰。 因此,通過更大的實例或更多的實例進行超額預置是一種關鍵的可靠性策略,可以解決需求信號和供應創建之間的滯後問題。 未使用的容量與性能效率的目標背道而馳。
有時,元件無法根據需求進行擴展,而這種需求是不完全可預測的。 使用大型實例來覆蓋最壞的情況會導致在該使用案例之外的情況下過度預置浪費。