Share via


可靠性取捨

可靠的工作負載一致符合其定義的可靠性目標。 最好是規避會影響可靠性的事件,以達到已建立的復原目標。 不過,實際上,工作負載必須容許和控制這類事件的影響,並在作用中故障期間維持預先決定層級的作業。 即使在災害期間,可靠的工作負載也必須在指定時間內復原到特定狀態,這兩者在專案關係人之間都同意。 事件回應計劃,可讓您達成快速偵測和復原非常重要。

在工作負載的設計階段,您必須考慮根據 可靠性設計原則 和設計 檢閱檢查清單中 可靠性的建議,決定如何影響其他要素的目標和優化。 某些決策可能會受益於某些要素,但構成其他要素的取捨。 本文說明工作負載小組在設計工作負載架構和作業可靠性時可能會遇到的範例取捨。

安全性的可靠性取捨

取捨:增加工作負載介面區。 安全性要素會優先處理縮減且包含的介面區,以將攻擊向量降至最低,並減少安全性控制的管理。

  • 可靠性通常是透過復寫取得。 複寫可以發生在元件層級、數據層級,或甚至是地理層級。 根據設計,復本會增加工作負載的介面區。 從安全性觀點來看,建議將潛在攻擊媒介降到最低,並簡化安全性控制措施的管理。

  • 同樣地,災害復原解決方案,例如備份,會增加工作負載的介面區。 不過,它們通常會與工作負載的運行時間隔離。 這需要額外的安全性控制實作,這可能專屬於災害復原解決方案。

  • 為了達到可靠性目標,架構可能需要額外的元件,這會增加介面區。 例如,可能會新增訊息總線來讓要求具有復原性。 這種增加的複雜度會增加工作負載的介面區,方法是新增需要保護的新元件,可能是在系統中尚未使用的方式。 一般而言,這些元件會伴隨額外的程式代碼和連結庫來支援其使用或一般可靠性模式,這也會增加應用程式的介面區。

取捨:安全性控制略過。 安全性要素建議所有控件在正常和壓力系統中保持作用中。

  • 當工作負載遇到在作用中事件回應下解決的可靠性事件時,緊急狀況可能會為工作負載小組造成壓力,以略過針對例行存取優化的安全性控制。

  • 疑難解答活動可能會導致小組暫時停用安全性通訊協定,讓系統可能暴露在額外的安全性風險中。 此外,安全性通訊協定也不會立即重新建立的風險。

  • 安全性控件的細微實作,例如角色型訪問控制指派或防火牆規則,引進設定複雜度和敏感度,增加設定錯誤的機會。 使用廣泛的規則來減輕這種潛在的可靠性影響,這三個 零信任 架構原則。

取捨:舊版軟體。 安全性要素鼓勵廠商安全性修補程式的「取得最新狀態、保持最新狀態」方法。

  • 套用安全性修補程式或軟體更新可能會中斷目標元件,而導致軟體變更期間無法使用。 延遲或避免修補可能會避免潛在的可靠性風險,但會讓系統不受保護而不受不斷演進的威脅。

  • 上述考慮也適用於工作負載的程序代碼。 例如,它適用於使用舊基底映像的舊連結庫和容器的應用程式程序代碼。 如果更新和部署應用程式程式代碼被視為無條件的可靠性風險,應用程式就會在一段時間內暴露在額外的安全性風險中。

成本優化的可靠性取捨

取捨:增加實作備援或浪費。 成本優化的工作負載會將使用量過低的資源降至最低,並避免過度布建資源。

  • 復寫是可靠性的關鍵策略。 具體而言,策略是有足夠的復寫來處理指定數目的並行節點失敗。 更多並行節點失敗的容錯需要較高的複本計數,這會導致成本增加。

  • 過度布建是另一種在系統上吸收非預期負載的技術,否則可能會導致可靠性問題。 未使用的任何超額容量都會被視為浪費。

  • 如果工作負載使用過度滿足工作負載恢復點和時間目標的災害復原解決方案,則過多會導致因為浪費而產生較高的成本。

  • 工作負載部署本身是可靠性影響的潛在來源,而且該影響通常會透過藍色/綠色等部署策略在部署時間透過備援來減輕。 在安全部署期間,這種暫時性的資源重複通常會在這些期間增加工作負載的整體成本。 隨著部署的頻率而增加成本。

取捨:對不符合功能需求的作業投資增加。 成本優化的方法之一是評估任何已部署解決方案所提供的值。

  • 若要達到可靠性,系統需要可觀察性。 監視系統需要可觀察性數據傳輸和收集。 隨著監視功能增加,數據的頻率和數量會增加,因而產生額外的成本。

  • 工作負載的可靠性能供性需要測試和鑽研。 設計和執行測試需要時間和潛在的特製化工具,這會產生成本。

  • 具有高可靠性目標的工作負載通常會有快速響應程式,需要技術小組成員成為正式通話輪替的一部分。 此程式會產生額外的人員成本,並因為其他位置可能會導向的注意力而遺失商機成本。 它也會產生管理程序的潛在工具成本。

  • 技術提供者的支援合約是可靠工作負載的重要元件。 因為支援層級過度布建,所以未使用的支持合約會產生浪費。

營運卓越的可靠性取捨

取捨:增加作業複雜度。 營運卓越,例如可靠性本身,會優先簡化。

  • 可靠性通常會增加工作負載的複雜度。 隨著工作負載的複雜性增加,工作負載的操作元素也可以增加,以支援在部署協調和設定介面區方面新增的元件和程式。

  • 針對工作負載擁有完整的監視策略,是營運卓越的關鍵部分。 將其他元件導入架構,以實作可靠性設計模式會導致更多數據源要管理,增加實作分散式追蹤和可觀察性的複雜性。

  • 使用多個區域克服單一區域資源容量限制,以及/或實作主動/主動架構會增加工作負載作業管理的複雜性。 這項複雜度是由管理多個區域的需求所引進,以及管理它們之間的數據復寫的需求。

取捨:增加產生小組知識與認知的工作。 營運卓越要素建議保留和維護程式與拓撲的檔存放庫。

  • 隨著工作負載透過新增可靠性元件和模式而變得更強固,維護作業程式和成品檔需要更多時間。

  • 當工作負載中的元件數目增加時,定型會變得更複雜。 這種複雜度會影響上架所需的時間,並增加追蹤產品藍圖和服務等級指引所需的知識。

效能效率的可靠性取捨

取捨:增加延遲。 效能效率需要系統才能達到使用者和數據流的效能目標。

  • 可靠性模式通常會納入數據復寫,以維持複本故障。 復寫為可靠的數據寫入作業引進額外的延遲,這會耗用特定使用者或數據流的一部分效能預算。

  • 可靠性有時會採用各種形式的資源平衡,將負載分散或重新發佈至狀況良好的複本。 用於平衡的專用元件通常會影響正在平衡的要求或程式的效能。

  • 將元件分散到地理界限或可用性區域,以維持範圍的影響,在跨越這些可用性界限的元件之間的通訊中,會產生網路等待時間。

  • 廣泛的程式可用來觀察工作負載的健康情況。 雖然監視對於可靠性很重要,但檢測可能會影響系統效能。 隨著可觀察性增加,效能可能會降低。

取捨:過度布建增加。 效能效率要素不建議過度布建,而是建議使用足夠的資源來滿足需求。

  • 自動調整作業不是立即的,因此無法可靠地處理無法成形或平滑需求的突然和大幅尖峰。 因此,透過較大的實例或更多實例過度布建是重要的可靠性策略,可考慮需求訊號與供應專案建立之間的延遲。 未使用的容量會計數器效能效率的目標。

  • 有時候元件無法回應需求,而且該需求無法完全預測。 使用大型實例來涵蓋最差的情況,會導致在該使用案例外部的過度布建浪費。

探索其他要素的取捨: