SKILL.md
唯讀
名稱
cloud-design-patterns
描述
涵蓋可靠性、效能、訊息處理、安全性與部署等 5 大領域,共 42 種業界標準的分散式系統架構雲端設計模式。適用於設計、審查或實作分散式系統架構時使用。
Cloud Design Patterns
系統架構師在規劃工作負載時,需要整合平台服務、業務功能與程式碼,以同時滿足功能性與非功能性需求。為了設計出高效可靠的系統,必須深刻理解這些需求,並選擇能克服工作負載限制與挑戰的拓撲結構與方法論。雲端設計模式(Cloud design patterns)即為許多常見的架構難題提供了成熟的解決方案。
分散式系統設計極度依賴既有的設計模式。您可以結合使用這些模式來設計基礎設施、程式碼與分散式系統。對於在雲端環境建構可靠、高安全性、成本最佳化、營運高效且兼具高效能的應用程式而言,這些模式不可或缺。
以下雲端設計模式皆具備技術無關性(technology-agnostic),適用於任何分散式系統。無論是在 Azure、其他雲端平台、地端環境(on-premises)或混合雲架構中,都能靈活套用。
雲端設計模式如何提升設計流程
雲端工作負載容易受到「分散式運算的迷思」(fallacies of distributed computing)影響,這些是關於分散式系統運作方式常見但錯誤的假設,例如:
- 網路永遠可靠。
- 網路延遲為零。
- 頻寬是無限的。
- 網路絕對安全。
- 網路拓撲結構固定不變。
- 系統只有一位管理者。
- 元件版本控制非常簡單。
- 可觀測性(Observability)可以之後再做。
這些常見誤解可能導致工作負載設計出現瑕疵。設計模式雖無法完全消除這些迷思,但能提高警覺性,提供相應的補償策略與緩解機制。每種雲端設計模式都有其取捨(trade-offs)。設計時應著重於「為何要選擇特定模式」,而非僅關注「如何實作它」。
參考資料
| 參考資料 | 載入時機 |
|---|---|
| Reliability & Resilience Patterns | Ambassador, Bulkhead, Circuit Breaker, Compensating Transaction, Retry, Health Endpoint Monitoring, Leader Election, Saga, Sequential Convoy |
| Performance Patterns | Async Request-Reply, Cache-Aside, CQRS, Index Table, Materialized View, Priority Queue, Queue-Based Load Leveling, Rate Limiting, Sharding, Throttling |
| Messaging & Integration Patterns | Choreography, Claim Check, Competing Consumers, Messaging Bridge, Pipes and Filters, Publisher-Subscriber, Scheduler Agent Supervisor |
| Architecture & Design Patterns | Anti-Corruption Layer, Backends for Frontends, Gateway Aggregation/Offloading/Routing, Sidecar, Strangler Fig |
| Deployment & Operational Patterns | Compute Resource Consolidation, Deployment Stamps, External Configuration Store, Geode, Static Content Hosting |
| Security Patterns | Federated Identity, Quarantine, Valet Key |
| Event-Driven Architecture Patterns | Event Sourcing |
| Best Practices & Pattern Selection | 選擇合適的模式、對齊 Well-Architected Framework、文件紀錄、監控 |
| Azure Service Mappings | 各模式類別對應的常見 Azure 服務 |
模式類別一覽
| 類別 | 模式數量 | 核心重點 |
|---|---|---|
| 可靠性與復原力(Reliability & Resilience) | 9 種模式 | 容錯能力、自我修復、優雅降級 |
| 效能(Performance) | 10 種模式 | 快取、擴展性、負載管理、資料最佳化 |
| 訊息處理與整合(Messaging & Integration) | 7 種模式 | 解耦、事件驅動通訊、工作流協調 |
| 架構與設計(Architecture & Design) | 7 種模式 | 系統邊界、API 閘道、轉移策略 |
| 部署與營運(Deployment & Operational) | 5 種模式 | 基礎設施管理、跨地域分布、組態設定 |
| 安全性(Security) | 3 種模式 | 身分驗證、存取控制、內容驗證 |
| 事件驅動架構(Event-Driven Architecture) | 1 種模式 | 事件溯源(Event Sourcing)與稽核軌跡 |






