中台架構與實現:基於 DDD 和微服務
內容描述
這是一部系統講解如何基於DDD思想實現中台和微服務協同設計和落地的著作。
它將DDD、中台和微服務三者結合,一方面,它為中台的劃分和領域建模提供指導,幫助企業更好地完成中台建設,實現中台的能力復用;
一方面,它為微服務的拆分和設計提供指導,幫助團隊提升分佈式微服務的架構設計能力。
給出了一套體系化的基於DDD思想的企業級前、中、後台協同設計方法。
本書注重實戰,匯聚了大量分佈式架構的新設計方法、思想和理念,同時包含大量的案例和代碼,是理論與實踐相結合的佳經驗分享。
交互式的行文風格,文字有活力,內容不刻板,簡潔易懂。
本書共分為六個部分:
第壹部分 認識中台(第1~4章)
主要從業務中台、數據中台、技術中台以及與之匹配的組織架構等多個方面分析傳統企業中台轉型應該具備的能力,
帶你初步了解DDD是如何指導中台和微服務設計,並釐清它們的協作關係。
第二部分 DDD基本原理(第5~11章)
通過淺顯易懂的案例講解DDD的核心基礎知識、設計思想、原則和方法等內容,
了解它們之間的協作和依賴關係,做好中台實踐前的準備工作。
第三部分 中台領域建模和微服務設計(第12~19章)
首先,通過案例手把手帶你用DDD方法完成中台和微服務的全流程設計,深刻理解DDD在中台領域建模和微服務設計中的步驟、
方法、設計思想和價值;然後,通過一個完整案例帶你了解用DDD設計方法完成領域建模與微服務設計的全流程。
第四部分 前端設計(第20~21章)
引入微前端和單元化的設計思想,通過前端微服務化和單元化設計思想,
解決業務中台建設完成後前端應用仍然為單體和前後端服務集成複雜的難點。
此外,還探討了基於領域模型的單元化設計方法。
第五部分 中台設計案例(第22章)
採用自頂向下的領域建模策略,通過案例講解中台設計的完整流程。
涵蓋業務領域分解、中台領域建模、微服務和微前端設計、單元化設計以及業務和數據如何融合等內容。
第六部分 總結(第23~24章)
結合作者多年的設計經驗和思考,闡述單體應用向微服務架構的演進策略、
如何避免陷入DDD設計的常見誤區、微服務設計原則以及分佈式架構下的關鍵設計等內容。
目錄大綱
目錄
序1
序2為不確定而架構
前言
緒論1
第一部分認識中台
第1章數字化中台初步認識與建設策略13
1.1平台是中台嗎13
1.2中台到底是什麼14
1.3傳統企業中台的建設策略15
1.4如何實現前中後台的協同17
1.4.1前台17
1.4.2中台18
1.4.3後台19
1.5本章小結20
第2章企業中台能力框架21
2.1中台能力總體框架21
2.2業務中台22
2.3數據中台23
2.4技術中台25
2.5研發運營28
2.6雲平台29
2.7能力聚合29
2.8組織架構及中台建設方法30
2.9本章小結31
第3章微服務設計為什麼要選擇DDD 32
3.1軟件架構的演進史32
3.2微服務拆分和設計的困境34
3.3為什麼DDD適合微服務35
3.4本章小結37
第4章DDD、中台和微服務的關係39
4.1 DDD和中台的本質40
4.2 DDD、中台和微服務的協作41
4.3如何完成中台業務建模43
4.4本章小結46
第二部分DDD基本原理
第5章領域和子域:有效分解問題域49
5.1領域的基本概念49
5.2領域的分解過程50
5.3子域的分類和屬性52
5.4本章小結53
第6章限界上下文:定義領域邊界的利器54
6.1什麼是通用語言54
6.2什麼是限界上下文57
6.3進一步理解限界上下文58
6.4限界上下文和微服務的關係59
6.5限界上下文與子域的關係60
6.6本章小結61
第7章實體和值對象:領域模型的基礎單元62
7.1實體62
7.2值對象64
7.3實體和值對象的關係68
7.4本章小結69
第8章聚合和聚合根:怎樣設計聚合70
8.1聚合70
8.2聚合根71
8.3聚合的設計步驟73
8.4聚合的設計原則74
8.5聚合的設計模式75
8.5.1倉儲模式76
8.5.2工廠模式80
8.6本章小結81
第9章領域事件:解耦微服務的關鍵83
9.1領域事件83
9.1.1微服務內的領域事件84
9.1.2微服務之間的領域事件85
9.2領域事件案例85
9.3領域事件驅動實現機制86
9.4領域事件運行機制89
9.5本章小結90
第10章DDD分層架構91
10.1什麼是DDD分層架構91
10.1.1用戶接口層92
10.1.2應用層93
10.1.3領域層94
10.1.4基礎層94
10.1.5 DDD分層架構的重要原則95
10.2 DDD分層架構如何推動架構演進95
10.2.1微服務架構的演進95
10.2.2微服務內服務的演進96
10.3三層架構如何演進到DDD分層架構97
10.4本章小結98
第11章幾種微服務架構模型對比分析99
11.1洋蔥架構99
11.2六邊形架構100
11.3三種微服務架構模型的對比和分析101
11.4從三種架構模型看中台和微服務設計103
11.4.1中台建設要聚焦領域模型103
11.4.2微服務要有合理的架構分層104
11.4.3應用邏輯與基礎資源的解耦105
11.5本章小結106
第三部分中台領域建模與微服務設計
第12章如何用事件風暴構建領域模型109
12.1事件風暴概述110
12.2基於事件風暴的領域建模111
12.2.1產品願景分析111
12.2.2場景分析112
12.2.3領域建模113
12.2.4微服務拆分與設計115
12.3本章小結116
第13章如何用DDD重構中台業務模型117
13.1傳統企業應用建設分析117
13.2如何避免重複造輪子119
13.3如何構建中台業務模型119
13.3.1自頂向下的策略119
13.3.2自底向上的策略120
13.4業務模型重構過程中的領域對象126
13.5本章小結128
第14章如何用DDD設計微服務代碼模型129
14.1 DDD分層架構與微服務代碼模型129
14.2微服務代碼模型130
14.2.1一級代碼目錄130
14.2.2各層代碼目錄131
14.2.3微服務總目錄結構134
14.3本章小結135
第15章如何保證領域模型與代碼模型一致136
15.1領域對象的整理136
15.2從領域模型到微服務落地137
15.2.1領域層的領域對象138
15.2.2應用層的領域對象140
15.2.3領域對象與代碼對象的映射142
15.3本章小結144
第16章如何實現微服務的架構演進145
16.1演進式架構145
16.2我們設計的是微服務還是小單體146
16.3微服務邊界的作用147
16.4正確理解微服務的邊界149
16.5本章小結149
第17章服務和數據在微服務各層的協作150
17.1服務視圖150
17.1.1服務的類型150
17.1.2服務的調用151
17.1.3服務的封裝與組合153
17.1. 4兩種分層架構的服務依賴關係155
17.2數據視圖158
17.3本章小結160
第18章基於DDD的微服務設計實例161
18.1項目基本信息161
18.2戰略設計161
18.2.1產品願景162
18.2.2場景分析163
18.2.3領域建模165
18.2.4微服務拆分166
18.3戰術設計167
18.3.1分析微服務領域對象167
18.3.2設計微服務代碼結構171
18.4後續的工作173
18.5本章小結173
第19章基於DDD的微服務代碼詳解174
作者介紹
歐創新
某大型保險公司架構師,擁有十多年的軟件架構設計經驗。
熱衷於DDD、中台和分佈式微服務架構設計。
在DDD、中台和分佈式微服務架構設計方面有深厚的積累,擅長分佈式微服務架構設計。
極客時間《DDD實戰課》專欄作者,在InfoQ發表多篇關於DDD、中台、微服務和微前端技術實踐的有深度和影響力文章。
鄧頔
某大型保險公司高級工程師,全國青年崗位能手。
致力於基於DDD的企業級中台微服務架構改造實踐,精通前端開發相關技術棧,擁有豐富的企業級微前端實戰經驗。