軟體架構:困難部分 (Software Architecture: The Hard Parts)
內容描述
分散式架構的權衡分析
「本書是每一位構建現代分散式系統的架構師所必讀的。」
-Aleksandar Serafimoski,Thoughtworks首席顧問
在軟體架構中沒有簡單的決定;相反的,存有許多困難的部分、困難的問題或沒有最佳實踐的議題,迫使你在各種妥協之中做出選擇。通過本書,你將學會如何在分散式架構所涉及的權衡取捨中嚴謹地思考。
擁有豐富架構經驗和執業顧問的作者群,探討了選擇適當架構的策略。藉由交織一個關於一組技術專業人士Sysops Squad的虛構故事,他們研究了從如何確定服務粒度、管理工作流程和協作、管理和解耦合約、以及管理分散式交易,到如何優化像是可擴展性、彈性和性能等操作特性的所有內容。
通過關注於常見問題,本書提供了一些技巧,可以協助你在面對架構師所面臨的問題時發現和權衡利弊。
‧分析權衡並有效記錄您的決策
‧就服務粒度方面做出更好的決策
‧了解拆分整體式應用程式的複雜性
‧管理和解耦服務之間的合約
‧在高度分散式架構中處理資料
‧學習在拆分應用程式時管理工作流程和交易的模式
目錄大綱
前言
第1章 當沒有「最佳做法」時,會發生什麼?
【PART 1 把事情分開】
第2章 識別軟體架構中的藕合性
第3章 架構模組化
第4章 架構分解
第5章 基於組件的分解模式
第6章 拆開操作資料
第7章 服務粒度
【PART 2 將事物重新組合起來】
第8章 重複使用模式
第9章 資料所有權和分散式交易
第10章 分散式資料存取
第11章 管理分散式工作流程
第12章 交易傳奇
第13章 合約
第14章 管理分析資料
第15章 建立你自己的權衡分析
附錄A 概念和術語參考
附錄B 架構決策記錄參考
附錄C 權衡參考
索引
作者介紹
Neal Ford 是領先全球的技術諮詢公司Thoughtworks董事、軟體架構師和備忘錄整理者
Mark Richards 是一位實踐型軟體架構師,在微服務、服務導向架構和分散式系統的設計和實作方面擁有豐富經驗
Pramod Sadalage 是Thoughtworks資料和DevOps總監,在應用程式和演進資料庫開發、資料架構、NoSQL資料庫和資料庫重構模式等方面擁有豐富的經驗
Zhamak Dehghani 是Thoughtworks技術總監,專注於分散式架構和新興技術。她也是Data Mesh創始人