分布式系統(tǒng)架構(gòu):架構(gòu)策略與難題求解
鏈接:https://pan.baidu.com/s/1MOs70RS-dhxkNbVnE4WbUw?pwd=1tww?
提取碼:1tww

《軟件架構(gòu):架構(gòu)模式、特征及實踐指南》 [Fundamentals of Software Architecture]作者Neal Ford新作。
在軟件架構(gòu)中沒有簡單的決策。相反,這里困難重重,充滿各種問題,并且沒有最佳實踐。通過本書,你將學(xué)會如何用批判性思維來考慮分布式架構(gòu)中的利弊。
4位作者探討了選擇合適的分布式系統(tǒng)架構(gòu)的策略,通過貫穿全書的Sysops Squad(一個虛構(gòu)的技術(shù)小組)的傳奇故事研究了架構(gòu)的各種可能性,包括如何確定服務(wù)粒度、管理工作流和編排、管理和解耦契約、管理分布式事務(wù),以及如何優(yōu)化運維特征,例如可伸縮性、彈性和性能。
通過關(guān)注常見問題,本書提供了一些技巧來幫助你發(fā)現(xiàn)架構(gòu)問題并進(jìn)行權(quán)衡分析。
通過閱讀本書,你將學(xué)會:
*分析利弊并有效記錄你的決策。
*對服務(wù)粒度做出更好的決策。
*理解分解單體應(yīng)用的復(fù)雜性。
* 在高度分布式架構(gòu)中處理數(shù)據(jù)。
*在分解應(yīng)用程序時管理工作流和事務(wù)的模式。
內(nèi)容簡介
本書探討了選擇合適的分布式系統(tǒng)架構(gòu)的策略。作者通過一個虛構(gòu)的技術(shù)小組(Sysops Squad)的故事,研究了架構(gòu)的各種可能性,包括如何確定服務(wù)粒度、管理工作流和編排、管理和解耦契約、管理分布式事務(wù),以及如何優(yōu)化運維性特征,例如可伸縮性、彈性和性能。
本書分為兩大部分:
第1部分主要處理架構(gòu)結(jié)構(gòu),即事物如何靜態(tài)耦合在一起;
第2部分討論各種技術(shù)來克服與分布式架構(gòu)相關(guān)的困難,包括管理服務(wù)通信、契約、分布式工作流、分布式事務(wù)、數(shù)據(jù)所有權(quán)、數(shù)據(jù)訪問和分析型數(shù)據(jù)。
作者簡介
Neal Ford是全球性技術(shù)咨詢公司Thoughtworks的技術(shù)總監(jiān)、軟件架構(gòu)師及meme wrangler。
Mark Richards是一位經(jīng)驗豐富的軟件架構(gòu)師,在設(shè)計和實現(xiàn)微服務(wù)架構(gòu)、面向服務(wù)的架構(gòu)和分布式架構(gòu)方面有豐富的經(jīng)驗。
Pramod Sadalage是Thoughtworks的數(shù)據(jù)及DevOps總監(jiān),他擅長應(yīng)用程序開發(fā)、敏捷數(shù)據(jù)庫開發(fā)、演進(jìn)式數(shù)據(jù)庫設(shè)計、算法設(shè)計和數(shù)據(jù)庫管理。
Zhamak Dehghani是Thoughtworks的技術(shù)總監(jiān),專注于分布式架構(gòu)和新興技術(shù)領(lǐng)域。她也是Data Mesh的創(chuàng)始人。
精彩書評
“本書為構(gòu)建微服務(wù)和分析整個技術(shù)棧中架構(gòu)決策的細(xì)微差別提供了理論指導(dǎo)。在本書中,你將了解構(gòu)建分布式系統(tǒng)時可以做出的架構(gòu)決策,并了解每個決策的利弊。對于要構(gòu)建現(xiàn)代分布式系統(tǒng)的架構(gòu)師來說,這本書是必讀的?!?/p>
— Aleksandar Serafimoski,Thoughtworks首席咨詢師
“對于熱衷于架構(gòu)的技術(shù)專家來說,本書是必讀的。本書對模式的解讀非常棒。”
— Vanya Seth,Thoughtworks India技術(shù)主管
“無論你是一位有抱負(fù)的架構(gòu)師,還是一位經(jīng)驗豐富的團(tuán)隊領(lǐng)導(dǎo),都無須手忙腳亂,本書將詳細(xì)指導(dǎo)你在創(chuàng)建企業(yè)級應(yīng)用程序和微服務(wù)的過程中取得成功?!?/p>
— Venkat Subramaniam博士,獲獎作者及 Agile Developer公司的創(chuàng)始人
“本書為讀者提供了關(guān)于拆分高度耦合的系統(tǒng)并重新構(gòu)建的寶貴見解、實踐和真實示例。通過獲得有效的權(quán)衡分析技能,你將能做出更好的架構(gòu)決策。”
—Joost van Wenen,Infuze Consulting的管理合伙人兼聯(lián)合創(chuàng)始人
“我喜歡讀這本關(guān)于分布式架構(gòu)的綜合性著作!它將對基本概念的扎實討論與提供大量的實用建議完美結(jié)合。”
—David Kloet,軟件架構(gòu)師
“拆分一個大泥球并不是容易的事。從代碼到數(shù)據(jù),本書將幫助你分析哪些服務(wù)應(yīng)該提取出來,哪些服務(wù)應(yīng)該留在一起?!?/p>
—Ruben Diaz-Martinez,Codesai軟件開發(fā)人員
“本書將為你提供理論背景和實踐框架,以幫助你解決現(xiàn)代軟件架構(gòu)中面臨的難題?!?/p>
—James Lewis,Thoughtworks技術(shù)總監(jiān)
目錄
前言1
第1章 沒有最佳實踐會怎么樣5
1.1 何為“難點”6
1.2 永不過時的軟件架構(gòu)建議6
1.3 數(shù)據(jù)在架構(gòu)中的重要性7
1.4 架構(gòu)決策記錄8
1.5 架構(gòu)適應(yīng)度函數(shù)9
1.6 架構(gòu)與設(shè)計:保持定義簡單15
1.7 引入Sysops Squad的傳奇故事17
第一部分 分而治之
第2章 識別軟件架構(gòu)中的耦合25
2.1 架構(gòu)量子27
2.2 Sysops Squad的傳奇故事:理解量子38
第3章 架構(gòu)模塊化41
3.1 模塊化的驅(qū)動因素44
3.2 Sysops Squad的傳奇故事:創(chuàng)建業(yè)務(wù)案例51
第4章 架構(gòu)分解55
4.1 代碼庫能分解嗎56
4.2 基于組件的分解61
4.3 戰(zhàn)術(shù)分叉62
4.4 Sysops Squad的傳奇故事:走上分解之路66
第5章 基于組件的分解模式68
5.1 識別和調(diào)整組件模式71
5.2 收集公共領(lǐng)域組件模式78
5.3 扁平化組件模式84
5.4 明確組件依賴項模式92
5.5 構(gòu)建組件領(lǐng)域模式98
5.6 構(gòu)建領(lǐng)域服務(wù)模式103
5.7 總結(jié)106
第6章 分離業(yè)務(wù)型數(shù)據(jù)107
6.1 數(shù)據(jù)分解的驅(qū)動因素108
6.2 分解單體數(shù)據(jù)123
6.3 數(shù)據(jù)庫類型的選擇131
6.4 Sysops Squad的傳奇故事:多維數(shù)據(jù)庫146
第7章 服務(wù)粒度152
7.1 粒度分解因素154
7.2 粒度集成因素162
7.3 找到正確的平衡169
7.4 Sysops Squad的傳奇故事:工單分配粒度171
7.5 Sysops Squad的傳奇故事:客戶注冊粒度173
第二部分 合而為一
第8章 復(fù)用模式179
8.1 代碼復(fù)制180
8.2 共享庫182
8.3 共享服務(wù)186
8.4 邊車和服務(wù)網(wǎng)格190
8.5 Sysops Squad的傳奇故事:公共基礎(chǔ)設(shè)施邏輯194
8.6 代碼復(fù)用:何時帶來價值196
8.7 Sysops Squad的傳奇故事:共享領(lǐng)域功能198
第9章 數(shù)據(jù)所有權(quán)和分布式事務(wù)202
9.1 分配數(shù)據(jù)所有權(quán)203
9.2 單一所有權(quán)場景204
9.3 公共所有權(quán)場景204
9.4 共同所有權(quán)場景206
9.5 數(shù)據(jù)所有權(quán)總結(jié)212
9.6 分布式事務(wù)213
9.7 最終一致性模式215
9.8 Sysops Squad的傳奇故事:工單處理的數(shù)據(jù)所有權(quán)224
第10章 分布式數(shù)據(jù)訪問227
10.1 服務(wù)間通信模式228
10.2 列schema復(fù)制模式230
10.3 復(fù)制緩存模式231
10.4 數(shù)據(jù)領(lǐng)域模式234
10.5 Sysops Squad的傳奇故事:工單分配的數(shù)據(jù)訪問236
第11章 管理分布式工作流239
11.1 集中編排式通信241
11.2 分散協(xié)作式通信244
11.3 權(quán)衡集中編排與分散協(xié)作251
11.4 Sysops Squad的傳奇故事:工作流管理252
第12章 事務(wù)Saga257
12.1 事務(wù)Saga的8種模式258
12.2 狀態(tài)管理與最終一致性279
12.3 管理Saga的手段282
12.4 Sysops Squad的傳奇故事:原子性事務(wù)和補償更新284
第13章 契約290
13.1 嚴(yán)格契約與寬松契約291
13.2 微服務(wù)中的契約295
13.3 郵戳耦合299
13.4 Sysops Squad的傳奇故事:管理工單契約301
第14章 管理分析型數(shù)據(jù)303
14.1 以前的方法303
14.2 數(shù)據(jù)網(wǎng)格309
14.3 Sysops Squad 的傳奇故事:數(shù)據(jù)網(wǎng)格314
第15章 打造你自己的權(quán)衡分析317
15.1 找出彼此糾纏的部分318
15.2 權(quán)衡利弊的技巧321
15.3 Sysops Squad的傳奇故事:尾聲331
查看全部↓