注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)科學(xué)理論與基礎(chǔ)知識(shí)重構(gòu)到微服務(wù)

重構(gòu)到微服務(wù)

重構(gòu)到微服務(wù)

定 價(jià):¥98.00

作 者: [英]薩姆 紐曼(Sam Newman)
出版社: 中國(guó)電力出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787519879501 出版時(shí)間: 2023-08-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書作為一本改造指南,提供了大量針對(duì)如何將單體應(yīng)用演進(jìn)到微服務(wù)架構(gòu)的實(shí)操建議。書中包含了大量圖形化的示例、充滿洞見(jiàn)的改造模式、涉及從改造的初始規(guī)劃階段到應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)的解耦,涵蓋了許多場(chǎng)景和策略,它們將幫助你實(shí)現(xiàn)成功的改造。你將從本書中學(xué)到這些經(jīng)過(guò)實(shí)踐檢驗(yàn)過(guò)的模式和技巧。在改造過(guò)程,你一定會(huì)發(fā)現(xiàn)它們非常有價(jià)值。本書的主要內(nèi)容有:適合于期望演進(jìn)到微服務(wù),而不是重寫的組織。幫助組織決策是否要改造、何時(shí)改造、以及從哪里入手進(jìn)行改造。如何解決遺留系統(tǒng)的通信、集成和遷移問(wèn)題。闡述了若干不同的遷移模式,以及在什么情況下采用這些模式。提供了多種數(shù)據(jù)庫(kù)遷移方法的案例,以及對(duì)應(yīng)的同步機(jī)制。探索了應(yīng)用系統(tǒng)解耦的方法,包括若干架構(gòu)重構(gòu)的模式。深入探討了數(shù)據(jù)庫(kù)解耦的細(xì)節(jié),包括打破參照完整性和事務(wù)完整性的影響,新的失敗模式等。

作者簡(jiǎn)介

  作者介紹經(jīng)歷了幾個(gè)創(chuàng)業(yè)公司,并在Thoughtworks工作了12年之后,目前Sam Newman是一位獨(dú)立顧問(wèn)。他專注于微服務(wù)、云技術(shù)、以及持續(xù)交付方面。通過(guò)培訓(xùn)和技術(shù)咨詢服務(wù),Sam幫助分布在全球的客戶實(shí)現(xiàn)更快且更可靠的軟件交付。他是經(jīng)驗(yàn)豐富的演講者,曾在全球多個(gè)大會(huì)上發(fā)表演講。同時(shí),他也是O’Reilly出版的《Building Microservices》一書的作者。譯者介紹王威,Thoughtworks總監(jiān)級(jí)咨詢師,知樸咨詢創(chuàng)始人,DDD中國(guó)社區(qū)聯(lián)合創(chuàng)始人,Cynefin框架培訓(xùn)講師,微服務(wù)架構(gòu)、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、遺留系統(tǒng)重構(gòu)的實(shí)踐者。梅雪松,Thoughtworks總監(jiān)級(jí)咨詢師,遺留系統(tǒng)現(xiàn)代化服務(wù)負(fù)責(zé)人,微服務(wù)架構(gòu)、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、遺留系統(tǒng)重構(gòu)的實(shí)踐者。姚琪琳,Thoughtworks專家級(jí)咨詢師,遺留系統(tǒng)現(xiàn)代化服務(wù)負(fù)責(zé)人,極客時(shí)間《遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)》專欄作者,技術(shù)書籍譯者。

圖書目錄

目錄
前言 1
第1 章 剛剛好的微服務(wù) 7
1.1 什么是微服務(wù)? 7
1.1.1 部署獨(dú)立性 8
1.1.2 圍繞業(yè)務(wù)領(lǐng)域建模 8
1.1.3 擁有自己的數(shù)據(jù) 12
1.1.4 微服務(wù)將帶來(lái)哪些優(yōu)勢(shì)? 13
1.1.5 微服務(wù)會(huì)帶來(lái)什么問(wèn)題? 13
1.1.6 用戶界面 .14
1.1.7 技術(shù) 14
1.1.8 顆粒度 15
1.1.9 所有權(quán) 17
1.2 單體架構(gòu)19
1.2.1 單進(jìn)程單體 19
1.2.2 分布式單體 21
1.2.3 第三方黑盒系統(tǒng) 22
1.2.4 單體架構(gòu)的挑戰(zhàn) 22
1.2.5 單體的優(yōu)勢(shì) 22
1.3 關(guān)于耦合和內(nèi)聚 23
1.3.1 內(nèi)聚 25
1.3.2 耦合 25
1.4 剛剛好的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) .36
1.4.1 聚合 37
1.4.2 限界上下文 38
1.4.3 將聚合和限界上下文映射到微服務(wù) 39
1.4.4 延伸閱讀 .39
1.5 總結(jié) .40
第2 章 規(guī)劃遷移到微服務(wù)的過(guò)程 41
2.1 理解目標(biāo)41
2.2 為什么要選擇微服務(wù)? .43
2.2.1 提高團(tuán)隊(duì)自主性 44
2.2.2 縮短上市時(shí)間 45
2.2.3 經(jīng)濟(jì)高效地?cái)U(kuò)展負(fù)載.46
2.2.4 提高健壯性 47
2.2.5 擴(kuò)展開(kāi)發(fā)人員的數(shù)量.48
2.2.6 擁抱新技術(shù) 49
2.3 什么時(shí)候微服務(wù)可能是個(gè)壞主意?.51
2.3.1 不明確的業(yè)務(wù)領(lǐng)域 .51
2.3.2 初創(chuàng)公司 .52
2.3.3 客戶安裝和管理的軟件 54
2.3.4 沒(méi)有好的理由! 54
2.4 權(quán)衡利弊54
2.5 帶人踏上旅途 .56
2.6 改變組織56
2.6.1 建立緊迫感 57
2.6.2 組建領(lǐng)導(dǎo)團(tuán)隊(duì) 58
2.6.3 制定愿景和戰(zhàn)略 59
2.6.4 傳達(dá)變革愿景 59
2.6.5 善于授權(quán)賦能 60
2.6.6 快速得到成果 61
2.6.7 促進(jìn)變革深入 61
2.6.8 成果融入文化 62
2.7 增量遷移的重要性 62
2.8 變更成本64
2.8.1 可逆和不可逆的決定.64
2.8.2 更容易實(shí)驗(yàn)的地方 .66
2.9 那么我們從哪里開(kāi)始呢? 66
2.10 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 66
2.10.1 你需要走多遠(yuǎn)? 67
2.10.2 事件風(fēng)暴 68
2.10.3 利用領(lǐng)域模型進(jìn)行優(yōu)先級(jí)排序 68
2.11 一個(gè)組合模型 70
2.12 重組團(tuán)隊(duì) .72
2.12.1 改變團(tuán)隊(duì)結(jié)構(gòu) .72
2.12.2 不要一刀切73
2.12.3 做出改變 75
2.12.4 改變技能 78
2.13 你如何知道轉(zhuǎn)型成功與否? .81
2.13.1 有定期檢查點(diǎn) .81
2.13.2 定量度量 82
2.13.3 定性度量 82
2.13.4 避免沉沒(méi)成本誤區(qū) 83
2.13.5 對(duì)新方法持開(kāi)放態(tài)度 83
2.14 總結(jié) 84
第3 章 拆分單體 87
3.1 單體系統(tǒng),修改還是不修改? 87
3.1.1 剪切、復(fù)制或者重新開(kāi)發(fā)? .88
3.1.2 重構(gòu)單體系統(tǒng) 89
3.2 遷移模式90
3.3 模式:絞殺應(yīng)用 91
3.3.1 它是如何工作的 91
3.3.2 在哪里使用它 93
3.3.3 示例:HTTP 反向代理 .95
3.3.4 數(shù)據(jù) 98
3.3.5 代理選項(xiàng) .98
3.3.6 更改協(xié)議 102
3.3.7 示例:FTP 105
3.3.8 示例:消息攔截 106
3.3.9 其他協(xié)議 109
3.3.10 絞殺植物模式的其他例子 . 109
3.4 遷移功能時(shí)改變行為 110
3.5 模式:UI 組合 . 110
3.5.1 示例:頁(yè)面組合 111
3.5.2 示例:小部件(Widget)組合 112
3.5.3 示例:微前端 . 115
3.5.4 在哪里使用它 . 116
3.6 模式:抽象分支 . 116
3.6.1 它是如何工作的 117
3.6.2 作為后備機(jī)制 . 124
3.6.3 在哪里使用它 . 125
3.7 模式:并行運(yùn)行 . 126
3.7.1 示例:比較信用衍生品定價(jià) 126
3.7.2 示例:Homegate 列表 128
3.7.3 驗(yàn)證技術(shù) 129
3.7.4 使用Spy 129
3.7.5 GitHub Scientist 130
3.7.6 灰度發(fā)布與金絲雀發(fā)布 . 131
3.7.7 在哪里使用它 . 131
3.8 模式:裝飾合作者 . 131
3.8.1 示例:會(huì)員計(jì)劃 132
3.8.2 在哪里使用它 . 133
3.9 模式:變更數(shù)據(jù)捕獲 133
3.9.1 示例:發(fā)行會(huì)員卡 133
3.9.2 實(shí)現(xiàn)變更數(shù)據(jù)捕獲 135
3.9.3 在哪里使用它 . 137
3.10 總結(jié) 138
第4 章 分解數(shù)據(jù)庫(kù) 139
4.1 模式:共享數(shù)據(jù)庫(kù) . 139
4.1.1 應(yīng)對(duì)模式 141
4.1.2 何處使用 141
4.2 但這是不可能做到的! . 141
4.3 模式:數(shù)據(jù)庫(kù)視圖 . 143
4.3.1 數(shù)據(jù)庫(kù)即公共契約 143
4.3.2 通過(guò)視圖來(lái)對(duì)外展現(xiàn) 144
4.3.3 限制條件 145
4.3.4 所有權(quán) 146
4.3.5 何處使用 146
4.4 模式:數(shù)據(jù)庫(kù)包裝服務(wù) 146
4.5 模式:數(shù)據(jù)庫(kù)即服務(wù)接口 . 149
4.5.1 實(shí)現(xiàn)映射引擎 . 151
4.5.2 與視圖相比 . 151
4.5.3 何處使用 151
4.6 轉(zhuǎn)讓所有權(quán) 152
4.6.1 模式:暴露單體中的聚合 152
4.6.2 模式:變更數(shù)據(jù)所有權(quán) . 155
4.7 數(shù)據(jù)同步. 156
4.8 模式:在應(yīng)用程序中同步數(shù)據(jù) 158
4.8.1 步驟1:批量同步數(shù)據(jù) 158
4.8.2 步驟2:同步寫入,從舊表結(jié)構(gòu)中讀取 159
4.8.3 步驟3:同步寫入,從新表結(jié)構(gòu)中讀取 160
4.8.4 在哪里使用它(一) 161
4.8.5 在哪里使用它(二) 161
4.9 模式:追蹤器寫入 . 162
4.9.1 數(shù)據(jù)同步 165
4.9.2 案例:Square 的訂單 . 167
4.9.3 在哪里使用它 . 171
4.10 拆分?jǐn)?shù)據(jù)庫(kù) . 171
4.11 先拆分?jǐn)?shù)據(jù)庫(kù),還是先拆分代碼? 173
4.11.1 先拆分?jǐn)?shù)據(jù)庫(kù) 174
4.11.2 先拆分代碼 178
4.11.3 將數(shù)據(jù)庫(kù)和代碼一起拆分 .183
4.11.4 那么,我應(yīng)該先拆分哪個(gè)? .184
4.12 表結(jié)構(gòu)拆分示例 184
4.13 模式:拆分表 184
4.14 模式:將外鍵關(guān)系移動(dòng)到代碼中 187
4.14.1 移動(dòng)連表查詢 188
4.14.2 數(shù)據(jù)一致性 190
4.14.3 在哪里使用 192
4.14.4 示例:共享靜態(tài)數(shù)據(jù) 192
4.15 事務(wù) 201
4.15.1 ACID 事務(wù) .202
4.15.2 仍然保持ACID,但缺乏整體的原子性? 203
4.15.3 兩階段提交 205
4.15.4 對(duì)分布式事務(wù)說(shuō)不 207
4.16 saga . 208
4.16.1 saga 的失敗模式 . 209
4.16.2 實(shí)施saga 213
4.16.3 saga 與分布式事務(wù) 220
4.17 總結(jié) 220
第5 章 成長(zhǎng)的煩惱 223
5.1 服務(wù)越多,痛苦越多 223
5.2 規(guī)?;碌乃袡?quán) . 225
5.2.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? 225
5.2.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 226
5.2.3 潛在的解決方案 226
5.3 破壞性變更 227
5.3.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? 227
5.3.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 227
5.3.3 潛在的解決方案 228
5.4 報(bào)表 231
5.4.1 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 232
5.4.2 潛在的解決方案 . 233
5.5 監(jiān)控和故障排除 . 234
5.5.1 什么時(shí)候會(huì)出現(xiàn)這些問(wèn)題? 234
5.5.2 這些問(wèn)題是如何發(fā)生的? . 235
5.5.3 潛在的解決方案 . 235
5.6 本地開(kāi)發(fā)者體驗(yàn) . 239
5.6.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? 239
5.6.2 什么時(shí)候會(huì)出現(xiàn)這些問(wèn)題? 239
5.6.3 潛在的解決方案 240
5.7 運(yùn)行太多東西 240
5.7.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? 241
5.7.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 241
5.7.3 潛在的解決方案 241
5.8 端到端測(cè)試 242
5.8.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? 243
5.8.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 243
5.8.3 潛在的解決方案 243
5.9 全局與局部?jī)?yōu)化 . 245
5.9.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? 246
5.9.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 246
5.9.3 潛在的解決方案 247
5.10 健壯性和彈性 248
5.10.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? . 248
5.10.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? 249
5.10.3 潛在的解決方案 . 249
5.11 孤兒服務(wù) 250
5.11.1 這個(gè)問(wèn)題如何表現(xiàn)出來(lái)? .250
5.11.2 這個(gè)問(wèn)題什么時(shí)候會(huì)發(fā)生? .250
5.11.3 潛在的解決方案 .251
5.12 總結(jié) 252
第6 章 結(jié)語(yǔ) . 255
附錄A 參考書目 . 257
附錄B 模式列表 . 261

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)