微服務之道
鏈接:https://pan.baidu.com/s/1Sv2d3Uc4IEpRKXb74oTpBw?pwd=uowj?
提取碼:uowj

內容簡介
本書力求揭示微服務設計背后的思想,引導讀者理解和構建微服務。全書分為兩部分。第一部分介紹微服務的工程原則,從具體的案例研究引入微服務的概念及優(yōu)缺點,闡示了如何決定要構建哪些微服務及服務間的通信,介紹了消息優(yōu)先的方法,展示了微服務如何以更恰當?shù)姆绞酱鎯吞幚聿煌愋偷臄?shù)據(jù),探討了如何在生產環(huán)境中運行大量微服務。第二部分介紹如何利用微服務架構的工程優(yōu)勢來克服環(huán)境帶來的挑戰(zhàn),以及度量微服務系統(tǒng)的方法,指導讀者一步步地從老的單體系統(tǒng)過渡到能夠輕松適應新功能需求的微服務系統(tǒng),最后使用前面章節(jié)介紹的原則,從頭開始構建了一個完整的微服務系統(tǒng)。
作者簡介
理查德.羅杰(Richard Rodger)曾在愛爾蘭都柏林三一學院學習數(shù)學和哲學,在愛爾蘭沃特福德理工學院學習計算機科學。1986 年開始在 Sinclair ZX Spectrum 上寫代碼至今;Seneca 微服務框架的維護者。會展業(yè)社交網(wǎng)絡公司voxgig的首席執(zhí)行官,擁有多年為大型跨國公司構建微服務系統(tǒng)的經驗。曾任移動應用 SaaS平臺 FeedHenry(后來被 Red Hat 收購)的首席技術官,后與他人聯(lián)合創(chuàng)立了nearForm—— 關于 Node.js 和微服務的咨詢公司。他還著有Mobile Application Development in the Cloud(《移動云計算應用開發(fā)入門經典》)(Wiley,2011)一書。
精彩書評
作者既有實踐經驗,又對這些概念有深刻的理解——難能可貴。
——Sujith S. Pillai, Cloud Maxima
為現(xiàn)實生活中的微服務實現(xiàn)者提供了大量有用的建議。
——Victor Tatai, Fitbit
用新穎、深入、富含哲理的方法來研究微服務。非常引人入勝,發(fā)人深省。
——Lukasz Sowa, Itrators
正如標題所描述的那樣。這本書展示了通往微服務的“道路”——實際上是“真正的道路”。
——Peter Perlepes, Growth
目錄
第 一部分 構建微服務
第 1 章 美麗新世界 3
1.1 技術債務危機 3
1.2 案例研究:微博初創(chuàng)公司 5
1.2.1 迭代 0:發(fā)布條目 6
1.2.2 迭代 1:搜索索引 9
1.2.3 迭代 2:簡單組合 11
1.2.4 迭代 3:時間線 14
1.2.5 迭代 4:擴展 16
1.3 單體如何違背組件的承諾 18
1.4 微服務理念 20
核心技術原則 21
1.5 實際意義 24
1.5.1 規(guī)范 25
1.5.2 部署 26
1.5.3 安全 27
1.5.4 人 27
1.6 你的錢換來了什么 28
1.7 總結 29
第 2 章 服務 30
2.1 定義微服務 30
2.2 案例研究:數(shù)字版報紙 32
2.2.1 業(yè)務目標 32
2.2.2 非正式需求 33
2.2.3 功能分解 33
2.3 微服務架構 34
迷你 Web 服務器架構 34
2.4 微服務示意圖 35
2.5 微服務依賴樹 36
異步消息架構 39
2.6 單體項目與微服務項目 41
2.6.1 微服務如何改變項目管理 43
2.6.2 一致性使評估更容易 43
2.6.3 一次性代碼讓團隊更和諧 44
2.6.4 同質組件允許異構配置 44
2.6.5 不同類型的代碼 45
2.7 軟件單元 46
2.8 從需求到消息再到服務 47
2.9 微服務架構圖 49
繪制消息流圖 52
2.10 微服務是軟件組件 53
2.10.1 封裝 53
2.10.2 可重復使用 53
2.10.3 定義明確的接口 54
2.10.4 可組合 54
2.10.5 微服務組件實踐 54
2.11 微服務的內部結構 57
2.12 總結 57
第 3 章 消息 59
3.1 消息是一等公民 59
3.1.1 同步和異步 60
3.1.2 何時使用同步消息 61 2
3.1.3 何時使用異步消息 62
3.1.4 從第 一天開始就思考
分布式 63
3.1.5 減少失敗的策略 65
3.2 案例研究:銷售稅規(guī)則 66
更廣泛的背景 66
3.3 模式匹配 67
3.3.1 銷售稅:從簡單開始 68
3.3.2 銷售稅:處理類別 69
3.3.3 銷售稅:走向全球 71
3.3.4 業(yè)務需求顯然會發(fā)生變化 72
3.3.5 模式匹配降低了重構的成本 72
3.4 傳輸獨立性 73
一個有用的虛構:無所不能的觀察者 73
3.5 消息模式 74
3.5.1 核心模式:一條消息/兩個服務 75
3.5.2 核心模式:兩條消息/兩個服務 77
3.5.3 核心模式:一條消息/n 個服務 79
3.5.4 核心模式:m 條消息/n 個服務 81
3.5.5 m/n:鏈 81
3.5.6 m/n:樹 82
3.5.7 擴展消息 83
3.6 當消息出問題時 84
3.6.1 常見故障場景及如何應對 85
3.6.2 請求/響應交互故障 85
3.6.3 響尾蛇交互的故障 86
3.6.4 贏家通吃交互的故障 86
3.6.5 即發(fā)即棄交互的故障 87
3.7 總結 88
第 4 章 數(shù)據(jù) 89
4.1 數(shù)據(jù)與想象不同 90
4.1.1 數(shù)據(jù)同質而非異質 90
4.1.2 數(shù)據(jù)可以私有 91
4.1.3 數(shù)據(jù)可以是本地的 92
4.1.4 數(shù)據(jù)可以自由處置 94
4.1.5 數(shù)據(jù)不一定要準確 94
4.2 微服務的數(shù)據(jù)策略 95
4.2.1 使用消息公開數(shù)據(jù) 95
4.2.2 使用組合操作數(shù)據(jù) 96
4.2.3 通過系統(tǒng)配置控制數(shù)據(jù) 99
4.2.4 使用弱約束來分發(fā)數(shù)據(jù) 104
4.3 重新思考傳統(tǒng)數(shù)據(jù)模式 105
4.3.1 主鍵 106
4.3.2 外鍵 107
4.3.3 事務 108
4.3.4 事務并不像想象的
那么好 111
4.3.5 模式引起技術債務 112
4.4 微服務數(shù)據(jù)實用決策指南 113
4.4.1 全新項目 113
4.4.2 改造項目 114
4.5 總結 115
第 5 章 部署 116
5.1 事物的崩潰 116
5.2 從歷史中吸取教訓 117
5.2.1 三英里島 117
5.2.2 軟件系統(tǒng)故障模型 121
5.2.3 冗余并不像想象的那樣 125
5.2.4 更改很可怕 126
5.3 妄想經不起反駁 128
完美軟件的成本 129
5.4 混亂的系統(tǒng) 129
5.5 微服務和冗余 130
5.6 持續(xù)交付 131
5.6.1 管道 132
5.6.2 流程 133
5.6.3 保護 133
5.7 運行微服務系統(tǒng) 134
5.7.1 不變性 134
5.7.2 自動化 137
5.7.3 復原能力 141
5.7.4 驗證 146
5.7.5 發(fā)現(xiàn) 147
5.7.6 配置 148
5.7.7 安全 149
5.7.8 階段系統(tǒng) 150
5.7.9 開發(fā) 150
5.8 總結 152 目錄