Design Patterns for Distributed Systems
分散式系統 的架構概念跟 Design Patterns 脫離不了關係,Kubernetes 的架構師 Brendan Burns 發表:Design patterns for container-based distributed systems, 2016 就以 Design patterns 為主軸,搭配 K8s 應用講述如何設計分散式架構。
在這篇論文中簡單描述物件導向程式設計 (OOP) 與設計樣式 (Design Patterns) 的雷同之處,同時舉了 Big Data 實作:Hadoop 作為例子,最後整理出以下幾種樣式 (Patterns):
- Single-container management patterns
- Single-node, multi-container application patterns
- Sidecar pattern
- Ambassador pattern
- Adapter pattern
- Multi-node application patterns
- Leader election pattern
- Work queue pattern
- Scatter/gather pattern
後來作者以這篇論文為基礎,在 2017/12 發表這本書: Designing Distributed Systems, DDS,內容把樣式分成三大類,簡單整理如下:
- Single-Node Patterns
- Sidecar Pattern
- Ambassadors
- Adapters
- Serving Patterns
- Replicated Load-Balanced Services
- Sharded Services
- Scatter/Gather
- Functions and Event-Driven Processing
- Ownership Election
- Batch Computational Patterns
- Work Queue Systems
- Event-Driven Batch Processing
- Coordinated Batch Processing
有興趣的朋友,可以直接下載 PDF 閱讀。
- Queue 的部分請參考 Distributed Message Systems,另外 Designing Test Architecture and Framework 談的就是 Task Queue 的設計
- DDS 正體中文版 由小弟我翻譯,已經在 2019/05/20 上市。正體中文版翻譯記事
延伸閱讀 (站內)
相關書籍
- Designing Distributed Systems - Free
- Designing Event-Driven Systems - Free
- Kubernetes patterns for designing cloud-native apps - By RedHat, Free, 2020/05