雲端原生復原

提示

此內容摘錄自《建構適用於 Azure 的雲端原生 .NET 應用程式》電子書,您可以在 .NET Docs 找到此電子書,或免費下載可離線閱讀的 PDF。

Cloud Native .NET apps for Azure eBook cover thumbnail.

復原是系統在回應失敗時仍能正常運作的能力。 這與避免失敗無關,而是接受失敗並建構您的雲端原生服務來回應失敗。 您想要儘快回復到完全正常運作的狀態。

不同於傳統的整合型應用程式 (其中所有項目都會在單一處理序中共同執行),雲端原生系統會採用分散式架構,如圖 6-1 所示:

Distributed cloud-native environment

圖 6-1。 分散式雲端原生環境

在上圖中,每個微服務和雲端式支援服務都會在個別的處理序、跨伺服器基礎結構執行,並透過網路型呼叫進行通訊。

在此環境中運作時,服務必須對許多不同的挑戰具備敏感性:

  • 非預期的網路延遲 - 服務要求傳送到接收端再傳回的時間。

  • 暫時性錯誤 - 短期網路連線錯誤。

  • 長時間執行同步作業而造成的封鎖。

  • 已損毀且正在重新啟動或移動的主機處理序。

  • 短時間內無法回應的多載微服務。

  • 執行中的協調器作業,例如輪流升級或將服務從一個節點移至另一個節點。

  • 硬體失敗。

雲端平台可以偵測並減輕其中許多基礎結構問題。 其可能會重新啟動、擴增,甚至將您的服務重新發佈至不同的節點。 不過,若要充分利用此內建保護,您必須設計自己的服務來對其做出反應,並在此動態環境中蓬勃發展。

在下列各節中,我們將探索您的服務和受控雲端資源可以利用的防禦技術,以將停機時間和中斷情況降到最低。