持續(xù)架構實踐:敏捷和DevOps時代下的軟件架構
定 價:99 元
叢書名:架構師書庫
- 作者:[美]穆拉特·埃爾德(Murat Erder),[美]皮埃爾·普約爾(Pierre Pureur),[美]伊恩·伍茲(Eoin Woods)
- 出版時間:2023/1/1
- ISBN:9787111717744
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:219
- 紙張:
- 版次:
- 開本:16
本書軟件系統(tǒng)架構領域的開創(chuàng)性著作,是三位在軟件架構領域多年豐富經驗的結晶。圍繞可持續(xù)性架構主題,為在現實環(huán)境中利用連續(xù)架構方法提供了實踐建議,并闡明了架構在敏捷、DevOps和云平臺時代不斷變化的角色。將幫助技術人員更新架構實踐以應對新的軟件挑戰(zhàn)
贊譽
推薦序
譯者序
前言
致謝
第1章 軟件架構的重要性更勝往昔 1
1.1 我們所說的架構到底是什么 1
1.2 當今的軟件行業(yè) 2
1.3 當前軟件架構的挑戰(zhàn) 4
1.3.1 關注技術細節(jié)而不是業(yè)務
場景 4
1.3.2 認為“架構不能增加價值” 4
1.3.3 架構實踐也許太慢了 5
1.3.4 一些架構師可能并不適應
云平臺 6
1.4 敏捷化世界里的軟件架構 6
1.4.1 一切的開始:軟件架構與
極限編程 6
1.4.2 我們究竟在哪一步:架構、
敏捷性還是持續(xù)交付 7
1.4.3 未來的方向 7
1.5 持續(xù)架構的引入 8
1.5.1 持續(xù)架構的定義 8
1.5.2 持續(xù)架構的收益 10
1.6 應用持續(xù)架構 11
1.7 案例研究介紹 12
1.8 本章小結 14
第2章 架構實踐:基本活動 15
2.1 基本活動概述 16
2.2 架構決策 17
2.2.1 架構決策的制定和治理 18
2.2.2 敏捷項目中的架構決策 19
2.3 質量屬性 21
2.3.1 質量屬性和架構策略 22
2.3.2 使用質量屬性 22
2.3.3 構建質量屬性效用樹 23
2.4 技術債務 23
2.4.1 捕獲技術債務 25
2.4.2 如何管理技術債務 26
2.5 反饋循環(huán):架構演進 27
2.5.1 適應度函數 28
2.5.2 持續(xù)測試 29
2.6 當今軟件架構實踐中的共同
主題 30
2.6.1 以準則為架構指南 30
2.6.2 由團隊負責的架構 31
2.6.3 模型與符號 32
2.6.4 模式和風格 33
2.6.5 架構作為決策流 33
2.7 本章小結 34
第3章 數據架構 36
3.1 數據即架構的考慮 37
3.1.1 什么是數據 37
3.1.2 通用語言 38
3.2 關鍵技術趨勢 39
3.2.1 SQL統(tǒng)治地位的消亡:NoSQL和多種持久化 40
3.2.2 可伸縮性和可用性:終
一致性 43
3.2.3 事件與狀態(tài):事件溯源 45
3.2.4 數據分析:來自信息的智慧
和知識 47
3.3 其他架構考慮事項 51
3.3.1 數據所有權和元數據 51
3.3.2 數據集成 53
3.3.3 數據(模式)演進 55
3.4 本章小結 56
3.5 拓展閱讀 57
第4章 架構之安全性 59
4.1 架構場景中的安全性 59
4.1.1 當今的安全形勢正在變化 60
4.1.2 我們所說的安全性到底是
什么 61
4.1.3 從無到有建立安全性 61
4.1.4 安全性左移 62
4.2 面向安全性設計架構 62
4.2.1 什么是安全風險 62
4.2.2 持續(xù)的風險建模和緩解
風險 63
4.2.3 風險識別技術 64
4.2.4 劃分風險等級 67
4.2.5 其他方法 68
4.3 緩解風險的架構策略 68
4.3.1 身份驗證、授權和審計 68
4.3.2 信息的隱私和完整性 69
4.3.3 拒絕抵賴 70
4.3.4 系統(tǒng)可用性 70
4.3.5 安全監(jiān)控 71
4.3.6 密鑰管理 72
4.3.7 緩解社會工程學攻擊 74
4.3.8 零信任網絡 75
4.3.9 實現TFX的安全性 75
4.4 維持安全性 78
4.4.1 安全性的實施 78
4.4.2 人員、流程和技術 79
4.4.3 薄弱的一環(huán) 79
4.4.4 持續(xù)提供安全性 79
4.4.5 為不可避免的失敗做好
準備 80
4.4.6 安全舞臺與安全實現 81
4.5 本章小結 81
4.6 拓展閱讀 82
第5章 架構之可伸縮性 84
5.1 架構場景中的可伸縮性 85
5.1.1 什么改變了:可伸縮性的
假設 86
5.1.2 影響可伸縮性的因素 87
5.1.3 可伸縮性的類型和誤解 88
5.1.4 云計算的影響 91
5.2 可伸縮性架構:架構策略 92
5.2.1 TFX可伸縮性需求 93
5.2.2 數據庫可伸縮性 94
5.2.3 數據分發(fā)、復制和分區(qū) 96
5.2.4 面向可伸縮性的緩存 97
5.2.5 使用異步通信實現可伸
縮性 99
5.2.6 其他應用程序架構的注意
事項 101
5.2.7 實現TFX的可伸縮性 105
5.3 本章小結 107
5.4 拓展閱讀 109
第6章 架構之性能 111
6.1 架構場景中的性能 111
6.1.1 影響性能的因素 112
6.1.2 架構關注點 112
6.2 性能架構 114
6.2.1 新興趨勢對性能的影響 114
6.2.2 圍繞性能建模和測試構建
應用程序 116
6.2.3 現代應用程序的性能策略 118
6.2.4 現代數據庫的性能策略 121
6.2.5 實現TFX的性能 124
6.3 本章小結 128
6.4 拓展閱讀 128
第7章 架構之彈性 131
7.1 架構場景中的彈性 132
7.1.1 變化:失敗的必然性 133
7.1.2 直面系統(tǒng)失敗的可靠性 133
7.1.3 業(yè)務場景 134
7.1.4 MTTR,不僅是MTBF 134
7.1.5 MTBF和MTTR與RPO
和RTO的對比 135
7.1.6 逐漸好轉 136
7.1.7 彈性組織 137
7.2 面向彈性的架構設計 137
7.2.1 允許失敗 137
7.2.2 測量與學習 139
7.3 面向彈性的架構策略 140
7.3.1 故障識別策略 141
7.3.2 隔離策略 142
7.3.3 保護策略 145
7.3.4 緩解策略 148
7.3.5 實現TFX的彈性 151
7.4 維護彈性 152
7.4.1 運營的可見性 153
7.4.2 面向彈性的測試 153
7.4.3 DevOps的角色 154
7.4.4 檢測與恢復、預測與緩解 155
7.4.5 事故處理 155
7.4.6 災難恢復 156
7.5 本章小結 157
7.6 拓展閱讀 157
第8章 軟件架構與新興技術 159
8.1 使用架構處理新技術引入的
技術風險 160
8.2 人工智能、機器學習和深度
學習簡介 160
8.2.1 機器學習的類型 161
8.2.2 什么是深度學習 162
8.3 在TFX中使用機器學習 163
8.3.1 機器學習解決的問題類型、
先決條件和架構考慮 163
8.3.2 在TFX中使用文檔分類 164
8.3.3 在TFX中實現一個聊天
機器人 169
8.4 在TFX中使用共享分類賬 174
8.4.1 共享分類賬、區(qū)塊鏈和分布
式分類賬技術簡介 174
8.4.2 共享分類賬解決的問題類型、
先決條件和架構考慮 175
8.4.3 共享分類賬的能力 176
8.4.4 在TFX中實現一個共享
分類賬 178
8.4.5 架構導向方法的好處 182
8.5 本章小結 183
8.6 拓展閱讀 183
第9章 持續(xù)架構實踐的結論 185
9.1 變與不變 185
9.2 更新架構實踐 186
9.3 數據 187
9.4 關鍵的質量屬性 188
9.4.1 安全性 189
9.4.2 可伸縮性 189
9.4.3 性能 190
9.4.4 彈性 190
9.5 當今時代的架構 190
9.6 實踐中的持續(xù)架構 191
附錄A 案例研究 192
附錄B 共享分類賬技術實現對比 212
術語表 214