此內容已過時。這個版本的 Well-Architected 框架現在可以在以下位置找到: https://docs.aws.amazon.com/zh_tw/wellarchitected/2022-03-31/framework/reliability.html

REL 4: 如何在分散式系統中設計防止失敗的互動?

分散式系統倚賴通訊網路來互連元件,例如伺服器或服務。即使這些網路上的資料遺失或延遲,您的工作負載仍必須可靠運作。分散式系統的元件必須以不會對其他元件或工作負載造成負面影響的方式運作。這些最佳實務可防止失敗,並延長平均失敗間隔時間 (MTBF)。

資源

AWS re:Invent 2019: Moving to event-driven architectures (SVS308)
AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small ARC337 (includes loose coupling, constant work, static stability)
AWS New York Summit 2019: Intro to Event-driven Architectures and Amazon EventBridge (MAD205)
What Is Amazon EventBridge?
What Is Amazon Simple Queue Service?
Amazon EC2: Ensuring Idempotency
The Amazon Builders' Library: Challenges with distributed systems

最佳實務:

改進方案

確定需要哪種分散式系統

  • 確定需要哪種分散式系統: 分散式系統的挑戰包含延遲、擴展、了解聯網 API、資料編組和解編,以及 Paxos 等演算法的複雜性。隨著系統擴大並且益加分散,理論上的極端案例也變成經常發生的案例。
    The Amazon Builders' Library: Challenges with distributed systems
  • 實作鬆散耦合相依性

  • 實作鬆散耦合相依性: 佇列系統、串流系統、工作流程和負載平衡器之間具有鬆散耦合的相依性。鬆耦合有助於將某個元件的行為與依賴它的其他元件隔離,進而提高彈性和靈活性
    AWS re:Invent 2019: Moving to event-driven architectures (SVS308)
    What Is Amazon EventBridge?
    What Is Amazon Simple Queue Service?
  • 將所有回應設為等冪

  • 將所有回應設為等冪: 等冪服務承諾每個請求只完成一次,使得發出多個相同請求與發出單一請求具有相同的效果。
  • 持續執行工作

  • 持續執行工作: 負載大幅快速變更時,系統可能會發生故障
    AWS re:Invent 2018: Close Loops and Opening Minds: How to Take Control of Systems, Big and Small ARC337 (includes constant work)