中臺架構(gòu)與實現(xiàn):基于DDD和微服務(wù)
定 價:89 元
- 作者:歐創(chuàng)新 鄧頔
- 出版時間:2020/10/1
- ISBN:9787111666301
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.1
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
內(nèi)容介紹
這是一部系統(tǒng)講解如何基于DDD思想實現(xiàn)中臺和微服務(wù)協(xié)同設(shè)計和落地的著作。
它將DDD、中臺和微服務(wù)三者結(jié)合,一方面,它為中臺的劃分和領(lǐng)域建模提供指導,幫助企業(yè)更好地完成中臺建設(shè),實現(xiàn)中臺的能力復(fù)用;一方面,它為微服務(wù)的拆分和設(shè)計提供指導,幫助團隊提升分布式微服務(wù)的架構(gòu)設(shè)計能力。給出了一套體系化的基于DDD思想的企業(yè)級前、中、后臺協(xié)同設(shè)計方法。
本書注重實戰(zhàn),匯聚了大量分布式架構(gòu)的*新設(shè)計方法、思想和理念,同時包含大量的案例和代碼,是理論與實踐相結(jié)合的*佳經(jīng)驗分享。交互式的行文風格,文字有活力,內(nèi)容不刻板,簡潔易懂。
本書共分為六個部分:
第壹部分 認識中臺(第1~4章)
主要從業(yè)務(wù)中臺、數(shù)據(jù)中臺、技術(shù)中臺以及與之匹配的組織架構(gòu)等多個方面分析傳統(tǒng)企業(yè)中臺轉(zhuǎn)型應(yīng)該具備的能力,帶你初步了解DDD是如何指導中臺和微服務(wù)設(shè)計,并厘清它們的協(xié)作關(guān)系。
第二部分 DDD基本原理(第5~11章)
通過淺顯易懂的案例講解DDD的核心基礎(chǔ)知識、設(shè)計思想、原則和方法等內(nèi)容,了解它們之間的協(xié)作和依賴關(guān)系,做好中臺實踐前的準備工作。
第三部分 中臺領(lǐng)域建模和微服務(wù)設(shè)計(第12~19章)
首先,通過案例手把手帶你用DDD方法完成中臺和微服務(wù)的全流程設(shè)計,深刻理解DDD在中臺領(lǐng)域建模和微服務(wù)設(shè)計中的步驟、方法、設(shè)計思想和價值;然后,通過一個完整案例帶你了解用DDD設(shè)計方法完成領(lǐng)域建模與微服務(wù)設(shè)計的全流程。
第四部分 前端設(shè)計(第20~21章)
引入微前端和單元化的設(shè)計思想,通過前端微服務(wù)化和單元化設(shè)計思想,解決業(yè)務(wù)中臺建設(shè)完成后前端應(yīng)用仍然為單體和前后端服務(wù)集成復(fù)雜的難點。此外,還探討了基于領(lǐng)域模型的單元化設(shè)計方法。
第五部分 中臺設(shè)計案例(第22章)
采用自頂向下的領(lǐng)域建模策略,通過案例講解中臺設(shè)計的完整流程。涵蓋業(yè)務(wù)領(lǐng)域分解、中臺領(lǐng)域建模、微服務(wù)和微前端設(shè)計、單元化設(shè)計以及業(yè)務(wù)和數(shù)據(jù)如何融合等內(nèi)容。
第六部分 總結(jié)(第23~24章)
結(jié)合作者多年的設(shè)計經(jīng)驗和思考,闡述單體應(yīng)用向微服務(wù)架構(gòu)的演進策略、如何避免陷入DDD設(shè)計的常見誤區(qū)、微服務(wù)設(shè)計原則以及分布式架構(gòu)下的關(guān)鍵設(shè)計等內(nèi)容。
序1
序2 為不確定而架構(gòu)
前言
緒論 1
第一部分 認識中臺
第1章 數(shù)字化中臺初步認識與建設(shè)策略 13
1.1 平臺是中臺嗎 13
1.2 中臺到底是什么 14
1.3 傳統(tǒng)企業(yè)中臺的建設(shè)策略 15
1.4 如何實現(xiàn)前中后臺的協(xié)同 17
1.4.1 前臺 17
1.4.2 中臺 18
1.4.3 后臺 19
1.5 本章小結(jié) 20
第2章 企業(yè)中臺能力框架 21
2.1 中臺能力總體框架 21
2.2 業(yè)務(wù)中臺 22
2.3 數(shù)據(jù)中臺 23
2.4 技術(shù)中臺 25
2.5 研發(fā)運營 28
2.6 云平臺 29
2.7 能力聚合 29
2.8 組織架構(gòu)及中臺建設(shè)方法 30
2.9 本章小結(jié) 31
第3章 微服務(wù)設(shè)計為什么要選擇DDD 32
3.1 軟件架構(gòu)的演進史 32
3.2 微服務(wù)拆分和設(shè)計的困境 34
3.3 為什么DDD適合微服務(wù) 35
3.4 本章小結(jié) 37
第4章 DDD、中臺和微服務(wù)的關(guān)系 39
4.1 DDD和中臺的本質(zhì) 40
4.2 DDD、中臺和微服務(wù)的協(xié)作 41
4.3 如何完成中臺業(yè)務(wù)建模 43
4.4 本章小結(jié) 46
第二部分 DDD基本原理
第5章 領(lǐng)域和子域:有效分解問題域 49
5.1 領(lǐng)域的基本概念 49
5.2 領(lǐng)域的分解過程 50
5.3 子域的分類和屬性 52
5.4 本章小結(jié) 53
第6章 限界上下文:定義領(lǐng)域邊界的利器 54
6.1 什么是通用語言 54
6.2 什么是限界上下文 57
6.3 進一步理解限界上下文 58
6.4 限界上下文和微服務(wù)的關(guān)系 59
6.5 限界上下文與子域的關(guān)系 60
6.6 本章小結(jié) 61
第7章 實體和值對象:領(lǐng)域模型的基礎(chǔ)單元 62
7.1 實體 62
7.2 值對象 64
7.3 實體和值對象的關(guān)系 68
7.4 本章小結(jié) 69
第8章 聚合和聚合根:怎樣設(shè)計聚合 70
8.1 聚合 70
8.2 聚合根 71
8.3 聚合的設(shè)計步驟 73
8.4 聚合的設(shè)計原則 74
8.5 聚合的設(shè)計模式 75
8.5.1 倉儲模式 76
8.5.2 工廠模式 80
8.6 本章小結(jié) 81
第9章 領(lǐng)域事件:解耦微服務(wù)的關(guān)鍵 83
9.1 領(lǐng)域事件 83
9.1.1 微服務(wù)內(nèi)的領(lǐng)域事件 84
9.1.2 微服務(wù)之間的領(lǐng)域事件 85
9.2 領(lǐng)域事件案例 85
9.3 領(lǐng)域事件驅(qū)動實現(xiàn)機制 86
9.4 領(lǐng)域事件運行機制 89
9.5 本章小結(jié) 90
第10章 DDD分層架構(gòu) 91
10.1 什么是DDD分層架構(gòu) 91
10.1.1 用戶接口層 92
10.1.2 應(yīng)用層 93
10.1.3 領(lǐng)域?qū)? 94
10.1.4 基礎(chǔ)層 94
10.1.5 DDD分層架構(gòu)的重要原則 95
10.2 DDD分層架構(gòu)如何推動架構(gòu)演進 95
10.2.1 微服務(wù)架構(gòu)的演進 95
10.2.2 微服務(wù)內(nèi)服務(wù)的演進 96
10.3 三層架構(gòu)如何演進到DDD分層架構(gòu) 97
10.4 本章小結(jié) 98
第11章 幾種微服務(wù)架構(gòu)模型對比分析 99
11.1 洋蔥架構(gòu) 99
11.2 六邊形架構(gòu) 100
11.3 三種微服務(wù)架構(gòu)模型的對比和分析 101
11.4 從三種架構(gòu)模型看中臺和微服務(wù)設(shè)計 103
11.4.1 中臺建設(shè)要聚焦領(lǐng)域模型 103
11.4.2 微服務(wù)要有合理的架構(gòu)分層 104
11.4.3 應(yīng)用邏輯與基礎(chǔ)資源的解耦 105
11.5 本章小結(jié) 106
第三部分 中臺領(lǐng)域建模與微服務(wù)設(shè)計
第12章 如何用事件風暴構(gòu)建領(lǐng)域模型 109
12.1 事件風暴概述 110
12.2 基于事件風暴的領(lǐng)域建模 111
12.2.1 產(chǎn)品愿景分析 111
12.2.2 場景分析 112
12.2.3 領(lǐng)域建模 113
12.2.4 微服務(wù)拆分與設(shè)計 115
12.3 本章小結(jié) 116
第13章 如何用DDD重構(gòu)中臺業(yè)務(wù)模型 117
13.1 傳統(tǒng)企業(yè)應(yīng)用建設(shè)分析 117
13.2 如何避免重復(fù)造輪子 119
13.3 如何構(gòu)建中臺業(yè)務(wù)模型 119
13.3.1 自頂向下的策略 119
13.3.2 自底向上的策略 120
13.4 業(yè)務(wù)模型重構(gòu)過程中的領(lǐng)域?qū)ο? 126
13.5 本章小結(jié) 128
第14章 如何用DDD設(shè)計微服務(wù)代碼模型 129
14.1 DDD分層架構(gòu)與微服務(wù)代碼模型 129
14.2 微服務(wù)代碼模型 130
14.2.1 一級代碼目錄 130
14.2.2 各層代碼目錄 131
14.2.3 微服務(wù)總目錄結(jié)構(gòu) 134
14.3 本章小結(jié) 135
第15章 如何保證領(lǐng)域模型與代碼模型一致 136
15.1 領(lǐng)域?qū)ο蟮恼? 136
15.2 從領(lǐng)域模型到微服務(wù)落地 137
15.2.1 領(lǐng)域?qū)拥念I(lǐng)域?qū)ο? 138
15.2.2 應(yīng)用層的領(lǐng)域?qū)ο? 140
15.2.3 領(lǐng)域?qū)ο笈c代碼對象的映射 142
15.3 本章小結(jié) 144
第16章 如何實現(xiàn)微服務(wù)的架構(gòu)演進 145
16.1 演進式架構(gòu) 145
16.2 我們設(shè)計的是微服務(wù)還是小單體 146
16.3 微服務(wù)邊界的作用 147
16.4 正確理解微服務(wù)的邊界 149
16.5 本章小結(jié) 149
第17章 服務(wù)和數(shù)據(jù)在微服務(wù)各層的協(xié)作 150
17.1 服務(wù)視圖 150
17.1.1 服務(wù)的類型 150
17.1.2 服務(wù)的調(diào)用 151
17.1.3 服務(wù)的封裝與組合 153
17.1.4 兩種分層架構(gòu)的服務(wù)依賴關(guān)系 155
17.2 數(shù)據(jù)視圖 158
17.3 本章小結(jié) 160
第18章 基于DDD的微服務(wù)設(shè)計實例 161
18.1 項目基本信息 161
18.2 戰(zhàn)略設(shè)計 161
18.2.1 產(chǎn)品愿景 162
18.2.2 場景分析 163
18.2.3 領(lǐng)域建模 165
18.2.4 微服務(wù)拆分 166
18.3 戰(zhàn)術(shù)設(shè)計 167
18.3.1 分析微服務(wù)領(lǐng)域?qū)ο? 167
18.3.2 設(shè)計微服務(wù)代碼結(jié)構(gòu) 171
18.4 后續(xù)的工作 173
18.5 本章小結(jié) 173
第19章 基于DDD的微服務(wù)代碼詳解 174
19.1 項目背景 174
19.2 聚合中的對象 175
19.2.1 聚合根 175
19.2.2 實體 176
19.2.3 值對象 177
19.2.4 領(lǐng)域服務(wù) 177
19.3 領(lǐng)域事件 180
19.3.1 領(lǐng)域事件基類 181
19.3.2 領(lǐng)域事件實體 181
19.3.3 領(lǐng)域事件的執(zhí)行邏輯 181
19.3.4 領(lǐng)域事件數(shù)據(jù)持久化 182
19.4 倉儲模式 182
19.4.1 DO與PO對象的轉(zhuǎn)換 183
19.4.2 倉儲實現(xiàn)邏輯 184
19.5 工廠模式 186
19.6 服務(wù)的組合與編排 188
19.7 微服務(wù)拆分時的代碼調(diào)整 190
19.7.1 微服務(wù)拆分前的代碼 190
19.7.2 微服務(wù)拆分后的代碼 191
19.8 服務(wù)接口的提供 192
19.8.1 facade接口 192
19.8.2 DTO數(shù)據(jù)組裝 193
19.9 微服務(wù)解耦策略小結(jié) 195
19.10 本章小結(jié) 196
第四部分 前端設(shè)計
第20章 微前端架構(gòu)理念與技術(shù)實踐 198
20.1 前端項目的困局 198
20.2 如何理解微前端 200
20.3 微前端會帶來哪些好處 201
20.4 微前端適合你的項目嗎 202
20.5 微前端的實施方案與實踐 203
20.5.1 Tailor實踐 204
20.5.2 Single-SPA實踐 216
20.6 本章小結(jié) 224
第21章 微前端:微服務(wù)的最佳搭檔 225
21.1 前端應(yīng)用新趨勢 225
21.2 業(yè)務(wù)單元設(shè)計 226
21.3 微前端的集成 228
21.4 團隊職責邊界 230
21.5 本章小結(jié) 232
第五部分 中臺設(shè)計案例
第22章 中臺戰(zhàn)略下的保險訂單化設(shè)計 234
22.1 保險為什么要訂單化銷售 234
22.2 保險業(yè)務(wù)的復(fù)雜性 235
22.2.1 保險與普通商品差異分析 235
22.2.2 業(yè)務(wù)復(fù)雜性分析 237
22.2.3 技術(shù)復(fù)雜性分析 237
22.3 設(shè)計目標、思路和原則 239
22.4 業(yè)務(wù)中臺領(lǐng)域建模 240
22.4.1 分解業(yè)務(wù)領(lǐng)域 240
22.4.2 核心能力中臺 241
22.4.3 通用能力中臺 244
22.5 業(yè)務(wù)單元化設(shè)計 251
22.5.1 單元化設(shè)計的前提 252
22.5.2 如何進行單元化設(shè)計 253
22.6 業(yè)務(wù)的融合 257
22.6.1 企業(yè)級前臺應(yīng)用 258
22.6.2 業(yè)務(wù)和流程的融合 259
22.6.3 單元化的價值 262
22.7 中臺與后臺的解耦 263
22.8 數(shù)據(jù)的融合 265
22.8.1 在線數(shù)據(jù)服務(wù) 265
22.8.2 視圖數(shù)據(jù)服務(wù) 265
22.9 本章小結(jié) 266
第六部分 總結(jié)
第23章 微服務(wù)拆分和設(shè)計原則 270
23.1 微服務(wù)的演進策略 270
23.2 不同場景下的微服務(wù)建設(shè)策略 271
23.2.1 新建系統(tǒng) 271
23.2.2 單體遺留系統(tǒng) 272
23.3 DDD使用誤區(qū) 273
23.4 微服務(wù)設(shè)計原則 275
23.5 微服務(wù)拆分要考慮哪些因素 276
23.6 本章小結(jié) 277
第24章 分布式架構(gòu)的關(guān)鍵設(shè)計 278
24.1 選擇什么樣的分布式數(shù)據(jù)庫 278
24.2 如何設(shè)計數(shù)據(jù)庫分庫主鍵 279
24.3 數(shù)據(jù)庫的數(shù)據(jù)同步和復(fù)制 279
24.4 跨庫關(guān)聯(lián)查詢?nèi)绾翁幚? 280
24.5 如何處理高頻熱點數(shù)據(jù) 280
24.6 前后序業(yè)務(wù)數(shù)據(jù)的處理 281
24.7 數(shù)據(jù)中臺與企業(yè)級數(shù)據(jù)集成 281
24.8 BFF與企業(yè)級業(yè)務(wù)編排和協(xié)同 282
24.9 分布式事務(wù)還是事件驅(qū)動機制 282
24.10 多中心多活設(shè)計 283
24.11 本章小結(jié) 283
結(jié)束語 284