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 閱讀。


延伸閱讀 (站內)


參考資料


Comments