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

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

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

定 價:¥98.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

目錄
前言 1
第1 章 剛剛好的微服務(wù) 7
1.1 什么是微服務(wù)? 7
1.1.1 部署獨立性 8
1.1.2 圍繞業(yè)務(wù)領(lǐng)域建模 8
1.1.3 擁有自己的數(shù)據(jù) 12
1.1.4 微服務(wù)將帶來哪些優(yōu)勢? 13
1.1.5 微服務(wù)會帶來什么問題? 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 單進程單體 19
1.2.2 分布式單體 21
1.2.3 第三方黑盒系統(tǒng) 22
1.2.4 單體架構(gòu)的挑戰(zhàn) 22
1.2.5 單體的優(yōu)勢 22
1.3 關(guān)于耦合和內(nèi)聚 23
1.3.1 內(nèi)聚 25
1.3.2 耦合 25
1.4 剛剛好的領(lǐng)域驅(qū)動設(shè)計 .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ù)的過程 41
2.1 理解目標(biāo)41
2.2 為什么要選擇微服務(wù)? .43
2.2.1 提高團隊自主性 44
2.2.2 縮短上市時間 45
2.2.3 經(jīng)濟高效地擴展負載.46
2.2.4 提高健壯性 47
2.2.5 擴展開發(fā)人員的數(shù)量.48
2.2.6 擁抱新技術(shù) 49
2.3 什么時候微服務(wù)可能是個壞主意?.51
2.3.1 不明確的業(yè)務(wù)領(lǐng)域 .51
2.3.2 初創(chuàng)公司 .52
2.3.3 客戶安裝和管理的軟件 54
2.3.4 沒有好的理由! 54
2.4 權(quán)衡利弊54
2.5 帶人踏上旅途 .56
2.6 改變組織56
2.6.1 建立緊迫感 57
2.6.2 組建領(lǐng)導(dǎo)團隊 58
2.6.3 制定愿景和戰(zhàn)略 59
2.6.4 傳達變革愿景 59
2.6.5 善于授權(quán)賦能 60
2.6.6 快速得到成果 61
2.6.7 促進變革深入 61
2.6.8 成果融入文化 62
2.7 增量遷移的重要性 62
2.8 變更成本64
2.8.1 可逆和不可逆的決定.64
2.8.2 更容易實驗的地方 .66
2.9 那么我們從哪里開始呢? 66
2.10 領(lǐng)域驅(qū)動設(shè)計 66
2.10.1 你需要走多遠? 67
2.10.2 事件風(fēng)暴 68
2.10.3 利用領(lǐng)域模型進行優(yōu)先級排序 68
2.11 一個組合模型 70
2.12 重組團隊 .72
2.12.1 改變團隊結(jié)構(gòu) .72
2.12.2 不要一刀切73
2.12.3 做出改變 75
2.12.4 改變技能 78
2.13 你如何知道轉(zhuǎn)型成功與否? .81
2.13.1 有定期檢查點 .81
2.13.2 定量度量 82
2.13.3 定性度量 82
2.13.4 避免沉沒成本誤區(qū) 83
2.13.5 對新方法持開放態(tài)度 83
2.14 總結(jié) 84
第3 章 拆分單體 87
3.1 單體系統(tǒng),修改還是不修改? 87
3.1.1 剪切、復(fù)制或者重新開發(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 代理選項 .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 遷移功能時改變行為 110
3.5 模式:UI 組合 . 110
3.5.1 示例:頁面組合 111
3.5.2 示例:小部件(Widget)組合 112
3.5.3 示例:微前端 . 115
3.5.4 在哪里使用它 . 116
3.6 模式:抽象分支 . 116
3.6.1 它是如何工作的 117
3.6.2 作為后備機制 . 124
3.6.3 在哪里使用它 . 125
3.7 模式:并行運行 . 126
3.7.1 示例:比較信用衍生品定價 126
3.7.2 示例:Homegate 列表 128
3.7.3 驗證技術(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 示例:會員計劃 132
3.8.2 在哪里使用它 . 133
3.9 模式:變更數(shù)據(jù)捕獲 133
3.9.1 示例:發(fā)行會員卡 133
3.9.2 實現(xiàn)變更數(shù)據(jù)捕獲 135
3.9.3 在哪里使用它 . 137
3.10 總結(jié) 138
第4 章 分解數(shù)據(jù)庫 139
4.1 模式:共享數(shù)據(jù)庫 . 139
4.1.1 應(yīng)對模式 141
4.1.2 何處使用 141
4.2 但這是不可能做到的! . 141
4.3 模式:數(shù)據(jù)庫視圖 . 143
4.3.1 數(shù)據(jù)庫即公共契約 143
4.3.2 通過視圖來對外展現(xiàn) 144
4.3.3 限制條件 145
4.3.4 所有權(quán) 146
4.3.5 何處使用 146
4.4 模式:數(shù)據(jù)庫包裝服務(wù) 146
4.5 模式:數(shù)據(jù)庫即服務(wù)接口 . 149
4.5.1 實現(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ù)庫 . 171
4.11 先拆分?jǐn)?shù)據(jù)庫,還是先拆分代碼? 173
4.11.1 先拆分?jǐn)?shù)據(jù)庫 174
4.11.2 先拆分代碼 178
4.11.3 將數(shù)據(jù)庫和代碼一起拆分 .183
4.11.4 那么,我應(yīng)該先拆分哪個? .184
4.12 表結(jié)構(gòu)拆分示例 184
4.13 模式:拆分表 184
4.14 模式:將外鍵關(guān)系移動到代碼中 187
4.14.1 移動連表查詢 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 對分布式事務(wù)說不 207
4.16 saga . 208
4.16.1 saga 的失敗模式 . 209
4.16.2 實施saga 213
4.16.3 saga 與分布式事務(wù) 220
4.17 總結(jié) 220
第5 章 成長的煩惱 223
5.1 服務(wù)越多,痛苦越多 223
5.2 規(guī)?;碌乃袡?quán) . 225
5.2.1 這個問題如何表現(xiàn)出來? 225
5.2.2 這個問題什么時候會發(fā)生? 226
5.2.3 潛在的解決方案 226
5.3 破壞性變更 227
5.3.1 這個問題如何表現(xiàn)出來? 227
5.3.2 這個問題什么時候會發(fā)生? 227
5.3.3 潛在的解決方案 228
5.4 報表 231
5.4.1 這個問題什么時候會發(fā)生? 232
5.4.2 潛在的解決方案 . 233
5.5 監(jiān)控和故障排除 . 234
5.5.1 什么時候會出現(xiàn)這些問題? 234
5.5.2 這些問題是如何發(fā)生的? . 235
5.5.3 潛在的解決方案 . 235
5.6 本地開發(fā)者體驗 . 239
5.6.1 這個問題如何表現(xiàn)出來? 239
5.6.2 什么時候會出現(xiàn)這些問題? 239
5.6.3 潛在的解決方案 240
5.7 運行太多東西 240
5.7.1 這個問題如何表現(xiàn)出來? 241
5.7.2 這個問題什么時候會發(fā)生? 241
5.7.3 潛在的解決方案 241
5.8 端到端測試 242
5.8.1 這個問題如何表現(xiàn)出來? 243
5.8.2 這個問題什么時候會發(fā)生? 243
5.8.3 潛在的解決方案 243
5.9 全局與局部優(yōu)化 . 245
5.9.1 這個問題如何表現(xiàn)出來? 246
5.9.2 這個問題什么時候會發(fā)生? 246
5.9.3 潛在的解決方案 247
5.10 健壯性和彈性 248
5.10.1 這個問題如何表現(xiàn)出來? . 248
5.10.2 這個問題什么時候會發(fā)生? 249
5.10.3 潛在的解決方案 . 249
5.11 孤兒服務(wù) 250
5.11.1 這個問題如何表現(xiàn)出來? .250
5.11.2 這個問題什么時候會發(fā)生? .250
5.11.3 潛在的解決方案 .251
5.12 總結(jié) 252
第6 章 結(jié)語 . 255
附錄A 參考書目 . 257
附錄B 模式列表 . 261

本目錄推薦

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