創(chuàng)新驅(qū)動(dòng)設(shè)計(jì):單體與微服務(wù)混合架構(gòu)策略與實(shí)踐
定 價(jià):115 元
- 作者:(美)Vaughn Vernon(沃恩·弗農(nóng)),(法)Tomasz Jaskula(托馬什·亞斯庫瓦)
- 出版時(shí)間:2024/3/1
- ISBN:9787121473517
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.5
- 頁碼:288
- 紙張:
- 版次:01
- 開本:16開
選擇微服務(wù)還是單體,這似乎是一個(gè)無須討論的話題,這個(gè)年代還有單體的存身之地嗎?沃恩和托馬什對此的回答是,不僅有,而且許多組織適合使用單體架構(gòu)。兩位作者用一個(gè)貫穿全書的例子深入探討了面向戰(zhàn)略創(chuàng)新的架構(gòu)設(shè)計(jì)問題。本書共12章,分4部分。第1部分從戰(zhàn)略高度介紹了架構(gòu)決策的重要性及其帶來的影響,以及幾種戰(zhàn)略學(xué)習(xí)工具和事件優(yōu)先建模。第2部分講述了推動(dòng)業(yè)務(wù)創(chuàng)新的幾種工具,并對DDD進(jìn)行了簡單的介紹。第3部分具體談?wù)摿耸录䞍?yōu)先架構(gòu)和實(shí)現(xiàn)它的幾種方式。第4部分回答了微服務(wù)還是單體這個(gè)有爭議性的問題,討論了單體和微服務(wù)之間的比較與權(quán)衡,還探討了如何將單體遷移到微服務(wù),并且為讀者可能采用的任何一種選擇都提供了合適的指南。本書適合需要進(jìn)行架構(gòu)決策的人閱讀,也適合想要精進(jìn)業(yè)務(wù)的架構(gòu)師和程序員閱讀。
沃恩·弗農(nóng)是一位企業(yè)家、軟件開發(fā)者和架構(gòu)師,擁有超過35年的豐富跨領(lǐng)域業(yè)務(wù)經(jīng)驗(yàn)。沃恩是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、反應(yīng)式架構(gòu)與編程方面的頂尖專家,倡導(dǎo)簡單性。他的工作坊學(xué)員一直對他所教授的廣度和深度以及獨(dú)特的教學(xué)方法給予高度評價(jià),許多人在參加他的一次工作坊后,就成為他的其他知名工作坊的長期學(xué)員。沃恩提供有關(guān)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、反應(yīng)式軟件開發(fā)以及事件風(fēng)暴和事件驅(qū)動(dòng)架構(gòu)的咨詢和培訓(xùn),幫助團(tuán)隊(duì)和組織發(fā)掘業(yè)務(wù)驅(qū)動(dòng)和反應(yīng)式系統(tǒng)的潛力。他的專業(yè)知識(shí)和經(jīng)驗(yàn)幫助許多企業(yè)從遺留的技術(shù)驅(qū)動(dòng)的實(shí)現(xiàn)方法過渡到業(yè)務(wù)驅(qū)動(dòng)的現(xiàn)代方法。沃恩是4本書的作者,包括你現(xiàn)在正在閱讀的這本。他的圖書和他的沃恩·弗農(nóng)系列圖書均由Addison-Wesley出版。托馬什·亞斯庫瓦是巴黎軟件咨詢公司Luteceo的CTO和聯(lián)合創(chuàng)始人。托馬什有超過20年的開發(fā)者和軟件架構(gòu)師專業(yè)經(jīng)驗(yàn),曾在許多電子商務(wù)、工業(yè)、保險(xiǎn)和金融領(lǐng)域的公司工作過。他主要專注于創(chuàng)造真正產(chǎn)生業(yè)務(wù)價(jià)值、與戰(zhàn)略業(yè)務(wù)舉措保持一致、提供具有明確競爭優(yōu)勢的軟件解決方案。托馬什也是.NET平臺(tái)開源項(xiàng)目XOOM的主要貢獻(xiàn)者之一。在業(yè)余時(shí)間,托馬什會(huì)練習(xí)吉他演奏,并與家人共度時(shí)光。
婁麒麟,Thoughtworks專家級咨詢師,海外項(xiàng)目交付安全負(fù)責(zé)人,思特沃克技術(shù)雷達(dá)第28期中文主編。擅長函數(shù)式編程、事件驅(qū)動(dòng)架構(gòu)、云原生設(shè)計(jì)、風(fēng)險(xiǎn)管理,以及DevSecOps。有著近10年的研發(fā)團(tuán)隊(duì)管理經(jīng)驗(yàn),曾主導(dǎo)某大型跨國銀行的微服務(wù)改造工程,和某頭部科技金融公司的遺留系統(tǒng)改造工程。近來在研究產(chǎn)品研發(fā)的全生命周期風(fēng)險(xiǎn)控制和AI賦能。馬建勛,Thoughtworks專家級咨詢師,IT從業(yè)10余年,曾領(lǐng)導(dǎo)和參與多家海內(nèi)外不同規(guī)模項(xiàng)目的研發(fā)和改造,涉及ERP、互聯(lián)網(wǎng)、銀行等領(lǐng)域。主要研究興趣在于敏捷開發(fā),領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),軟件架構(gòu)演進(jìn)以及項(xiàng)目管理。姚琪琳,Thoughtworks專家級咨詢師,遺留系統(tǒng)現(xiàn)代化解決方案負(fù)責(zé)人,極客時(shí)間《遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)》專欄作者,技術(shù)書籍譯者,CAC認(rèn)證敏捷教練。擁有超過16年的軟件行業(yè)從業(yè)經(jīng)驗(yàn),對開發(fā)、設(shè)計(jì)和架構(gòu)有著深入的理解。擅長領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、敏捷軟件開發(fā)、整潔代碼和重構(gòu),并通過理論指導(dǎo)、實(shí)戰(zhàn)演練等方式為企業(yè)研發(fā)團(tuán)隊(duì)賦能。參與翻譯或?qū)徯6啾炯夹g(shù)書籍,包括《重構(gòu)到微服務(wù)》、《領(lǐng)域特定語言》、《.NET性能優(yōu)化》、《深入理解C#》等。張渝,Thoughtworks專家級咨詢師。曾領(lǐng)導(dǎo)和參與多個(gè)海內(nèi)外項(xiàng)目,涉及私有云,支付,視頻等多個(gè)領(lǐng)域。擅長敏捷軟件開發(fā),領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),云原生設(shè)計(jì),測試驅(qū)動(dòng)開發(fā)以及重構(gòu)。
第1部分 通過實(shí)驗(yàn)學(xué)習(xí)轉(zhuǎn)型戰(zhàn)略
第1章 業(yè)務(wù)目標(biāo)和數(shù)字化轉(zhuǎn)型 5
數(shù)字化轉(zhuǎn)型的目標(biāo)是什么 6
軟件架構(gòu)概覽 8
為什么軟件項(xiàng)目會(huì)出問題 9
債務(wù)隱喻 10
軟件熵 11
大泥球 11
案例研究 13
當(dāng)前的業(yè)務(wù)背景 14
商機(jī) 15
企業(yè)與康威定律 16
知識(shí)傳遞 17
知識(shí)不是實(shí)物 17
電話游戲 18
艱難的一致 19
但是一切皆有可能 20
(重新)思考軟件戰(zhàn)略 22
思考 22
反思 24
單體系統(tǒng)一定不好嗎 27
微服務(wù)一定好嗎 28
善待敏捷 30
擺脫困境 33
小結(jié) 34
第2章 基本戰(zhàn)略學(xué)習(xí)工具 35
決策的早晚和對錯(cuò) 36
文化和團(tuán)隊(duì) 39
失敗而不是死亡 40
失敗文化不是指責(zé)文化 41
康威定律的正確用法 43
啟用安全實(shí)驗(yàn) 46
模塊化優(yōu)先 47
部署放最后 50
介于兩者之間的一切 52
業(yè)務(wù)能力、業(yè)務(wù)流程和戰(zhàn)略目標(biāo) 52
針對性的戰(zhàn)略交付 56
利用Cynefin進(jìn)行決策 60
你的意大利面條在哪里,煮得有多快 63
戰(zhàn)略架構(gòu) 64
應(yīng)用工具 65
小結(jié) 67
第3章 事件優(yōu)先的實(shí)驗(yàn)和發(fā)現(xiàn) 68
命令與事件 69
使用軟件模型 71
利用事件風(fēng)暴快速學(xué)習(xí) 72
當(dāng)需要遠(yuǎn)程事件風(fēng)暴會(huì)議時(shí) 74
主持會(huì)議 75
宏觀建模 79
應(yīng)用工具 82
小結(jié) 88
第2部分 推動(dòng)業(yè)務(wù)創(chuàng)新
第4章 獲得領(lǐng)域驅(qū)動(dòng)的成果 94
領(lǐng)域和子域 96
小結(jié) 99
第5章 專業(yè)知識(shí)上下文 101
限界上下文和統(tǒng)一語言 101
核心子域 105
支撐子域、通用子域和技術(shù)機(jī)制 106
支撐子域 107
通用子域 107
技術(shù)機(jī)制 108
業(yè)務(wù)能力和上下文 108
別太大,也別太小 110
小結(jié) 112
第6章 映射的兩面:成功還是失敗 113
上下文映射圖 113
合作關(guān)系 115
共享內(nèi)核 117
客戶方-供應(yīng)方開發(fā) 118
遵奉者 120
防腐層 122
開放主機(jī)服務(wù) 123
發(fā)布語言 128
另謀他路 130
地形建模 130
失敗之道與成功之徑 133
應(yīng)用工具 136
小結(jié) 141
第7章 建模領(lǐng)域概念 142
實(shí)體 143
值對象 144
聚合 145
領(lǐng)域服務(wù) 146
函數(shù)式行為 147
應(yīng)用工具 149
小結(jié) 150
第3部分 事件優(yōu)先架構(gòu)
第8章 基礎(chǔ)架構(gòu) 155
架構(gòu)風(fēng)格、模式和決策 157
端口-適配器架構(gòu) 157
模塊化 163
REST請求-響應(yīng) 166
質(zhì)量屬性 168
安全性 168
隱私性 171
性能 173
可伸縮性 175
彈性:可靠性和容錯(cuò)性 175
復(fù)雜性 177
應(yīng)用工具 177
小結(jié) 178
第9章 消息驅(qū)動(dòng)和事件驅(qū)動(dòng)架構(gòu) 179
基于消息和事件的REST 183
事件日志 183
訂閱者輪詢 185
服務(wù)器發(fā)送事件 186
事件驅(qū)動(dòng)和流程管理 187
事件溯源 189
CQRS 193
無服務(wù)器架構(gòu)和功能即服務(wù) 195
應(yīng)用工具 197
小結(jié) 197
第4部分 兩條通向目標(biāo)架構(gòu)之路
第10章 構(gòu)造單體 203
歷史回顧 205
慎終于始 207
業(yè)務(wù)能力 208
架構(gòu)決策 210
是與非 215
隨變化而變化 217
解耦 220
堅(jiān)持正確的步伐 224
小結(jié) 225
第11章 從單體到微服務(wù) 227
做好心理建設(shè) 227
從模塊化單體到微服務(wù) 230
從大泥球單體到微服務(wù) 234
用戶交互 235
協(xié)調(diào)數(shù)據(jù)變化 237
決定絞殺什么 242
拔掉遺留單體 244
小結(jié) 245
第12章 平衡要求,管控需求 246
質(zhì)量屬性平衡 246
戰(zhàn)略和目標(biāo) 247
業(yè)務(wù)目標(biāo)呼喚數(shù)字化轉(zhuǎn)型 247
使用戰(zhàn)略學(xué)習(xí)工具 248
事件驅(qū)動(dòng)的輕量級建模 249
推動(dòng)業(yè)務(wù)創(chuàng)新 249
事件優(yōu)先架構(gòu) 250
單體架構(gòu)作為首要關(guān)注點(diǎn) 250
有針對性地將單體拆分為微服務(wù) 251
平衡是不偏不倚的,創(chuàng)新是必不可少的 252
小結(jié) 252