《解決方案架構師修煉之道》是2021年機械工業出版社出版的圖書。
基本介紹
- 中文名:解決方案架構師修煉之道
- 作者:[印]所羅伯·斯里瓦斯塔瓦,[印]內拉賈利·斯里瓦斯塔夫
- 出版社:機械工業出版社
- 出版時間:2021年
- ISBN:9787111694441
內容簡介,圖書目錄,
內容簡介
本書首先介紹解決方案架構的基本原理、設計原則和屬性,這些內容將幫助你理解解決方案架構如何使跨企業的軟體項目受益。你將了解雲遷移和應用程式現代化框架,並將使用微服務、事件驅動、基於快取和無伺服器模式來設計健壯的架構。然後,你將探索架構設計的主要考量,包括性能、可伸縮性、成本最佳化、安全性、卓越運營和DevOps。此外,你還將學習與大數據、機器學習和物聯網相關的先進概念。書末,你將掌握架構設計文檔和成為更好的解決方案架構師所必需的軟技能。
圖書目錄
第1章 解決方案架構的含義 1
1.1 什麼是解決方案架構 2
1.2 解決方案架構的演進 4
1.3 解決方案架構為何如此重要 5
1.4 解決方案架構的益處 5
1.4.1 滿足業務需求和交付質量 7
1.4.2 選擇技術平台 7
1.4.3 處理解決方案的約束和問題 7
1.4.4 協助資源和成本管理 8
1.4.5 管理解決方案交付和項目生命周期 8
1.4.6 解決非功能性需求 8
1.5 公有雲中的解決方案架構 9
1.5.1 什麼是公有雲 9
1.5.2 公有雲、私有雲和混合雲 10
1.5.3 公有雲架構 10
1.5.4 公有雲供應商和雲服務產品 11
1.6 小結 12
第2章 組織中的解決方案架構師 14
2.1 解決方案架構師角色的類型 15
2.1.1 企業解決方案架構師 17
2.1.2 解決方案架構師 17
2.1.3 技術架構師 18
2.1.4 雲架構師 18
2.1.5 架構師布道者 18
2.1.6 基礎設施架構師 19
2.1.7 網路架構師 19
2.1.8 數據架構師 20
2.1.9 安全架構師 21
2.1.10 DevOps架構師 21
2.2 理解解決方案架構師的職責 22
2.2.1 分析用戶需求 22
2.2.2 定義非功能性需求 23
2.2.3 與利益相關者的接觸與合作 25
2.2.4 處理各種架構約束 25
2.2.5 技術選型 27
2.2.6 概念驗證和原型開發 27
2.2.7 設計解決方案並持續交付 28
2.2.8 確保發布後的可操作性和可維護性 29
2.2.9 擔任技術布道者 30
2.3 敏捷組織中的解決方案架構師 30
2.3.1 為什麼選擇敏捷方法論 30
2.3.2 敏捷宣言 31
2.4 小結 35
第3章 解決方案架構的屬性 36
3.1 可伸縮性和彈性 37
3.1.1 容量伸縮困境 38
3.1.2 架構伸縮 38
3.1.3 靜態內容伸縮 40
3.1.4 伺服器機群彈性 40
3.1.5 資料庫伸縮 40
3.2 高可用性和韌性 41
3.3 容錯和冗餘 43
3.4 災難恢復與業務連續性 44
3.5 可擴展性與可重用性 45
3.6 易用性與可訪問性 46
3.7 可移植性與互操作性 47
3.8 卓越運維與可維護性 48
3.9 安全性與合規性 49
3.9.1 認證和授權 49
3.9.2 Web安全 50
3.9.3 網路安全 50
3.9.4 基礎設施安全 50
3.9.5 數據安全 50
3.10 成本最佳化與預算 51
3.11 小結 52
第4章 解決方案架構的設計原則 53
4.1 工作負載的伸縮 54
4.1.1 可預測伸縮 54
4.1.2 被動伸縮 56
4.2 構建有韌性的架構 56
4.3 性能設計 58
4.4 使用可替換資源 59
4.5 考慮松耦合 60
4.6 考慮服務而非伺服器 62
4.7 根據合理的需求選擇合適的存儲 63
4.8 考慮數據驅動的設計 65
4.9 克服約束 65
4.10 安全無處不在 67
4.11 自動化一切 67
4.12 小結 68
第5章 雲遷移和混合雲架構設計 70
5.1 雲原生架構的好處 71
5.2 創建雲遷移策略 72
5.2.1 Lift and Shift方法 73
5.2.2 雲原生方法 75
5.2.3 Retain or Retire方法 76
5.3 雲遷移的步驟 77
5.3.1 發現工作負載 78
5.3.2 分析信息 79
5.3.3 制訂遷移計畫 80
5.3.4 設計應用程式 83
5.3.5 執行應用程式遷移上雲 85
5.3.6 集成、驗證和切換 87
5.3.7 運維雲應用程式 89
5.3.8 雲上應用程式最佳化 90
5.4 創建混合雲架構 91
5.5 設計雲原生架構 92
5.6 主流的公有雲 94
5.7 小結 95
5.8 進一步閱讀 95
第6章 解決方案架構設計模式 96
6.1 構建N層架構 97
6.1.1 Web層 97
6.1.2 套用層 99
6.1.3 資料庫層 99
6.2 創建基於SaaS的多租戶架構 99
6.3 構建無狀態和有狀態的架構 101
6.4 理解SOA 103
6.4.1 基於SOAP的Web服務架構 103
6.4.2 RESTful Web服務架構 105
6.4.3 構建基於SOA的電子商務網站架構 106
6.5 構建無伺服器架構 107
6.6 創建微服務架構 109
6.7 構建基於佇列的架構 111
6.7.1 佇列鍊表模式 112
6.7.2 作業觀察者模式 113
6.8 創建事件驅動架構 114
6.8.1 發布者/訂閱者模型 114
6.8.2 事件流模型 115
6.9 構建基於快取的架構 116
6.9.1 三層Web架構中的快取分發模式 117
6.9.2 重命名分發模式 119
6.9.3 快取代理模式 120
6.9.4 重寫代理模式 121
6.9.5 套用快取模式 122
6.10 理解斷路器模式 123
6.11 實現隔板模式 124
6.12 構建浮動IP模式 125
6.13 使用容器部署應用程式 126
6.13.1 容器的好處 127
6.13.2 容器化部署 128
6.14 應用程式架構中的資料庫處理 129
6.15 避免解決方案架構中的反模式 132
6.16 小結 133
第7章 性能考量 134
7.1 架構性能的設計原則 134
7.1.1 降低延遲 135
7.1.2 提高吞吐量 136
7.1.3 處理並發問題 137
7.1.4 使用快取 138
7.2 性能最佳化的技術選型 139
7.2.1 計算能力選型 139
7.2.2 選擇存儲 144
7.2.3 選擇資料庫 147
7.2.4 選擇網路 149
7.3 管理性能監控 152
7.4 小結 153
第8章 安全考量 155
8.1 架構安全的設計原則 155
8.1.1 實現認證和授權控制 156
8.1.2 安全無處不在 156
8.1.3 縮小爆炸半徑 157
8.1.4 時刻監控和審計一切 157
8.1.5 自動化一切 157
8.1.6 數據保護 157
8.1.7 事件回響準備 158
8.2 架構安全技術選型 158
8.2.1 用戶身份和訪問管理 158
8.2.2 處理網路安全問題 165
8.2.3 保護應用程式及其基礎設施 169
8.2.4 數據安全 173
8.3 安全和合規認證 178
8.4 雲的共享安全責任模型 178
8.5 小結 180
第9章 架構可靠性考量 182
9.1 架構可靠性的設計原則 182
9.1.1 使系統自愈 183
9.1.2 實現自動化 183
9.1.3 創建分散式系統 184
9.1.4 容量監控 184
9.1.5 驗證恢復過程 184
9.2 架構可靠性的技術選型 185
9.2.1 規劃RTO和RPO 185
9.2.2 數據複製 186
9.2.3 規劃災難恢復 188
9.2.4 災難恢復的實踐 195
9.3 利用雲來提高可靠性 196
9.4 小結 197
第10章 卓越運維考量 198
10.1 卓越運維的設計原則 199
10.1.1 自動化運維 199
10.1.2 進行增量和可逆的變更 199
10.1.3 預測並回響故障 200
10.1.4 從錯誤中學習並改進 200
10.1.5 持續更新運維手冊 200
10.2 卓越運維的技術選型 201
10.2.1 卓越運維的規劃階段 201
10.2.2 卓越運維的執行階段 204
10.2.3 卓越運維的改進階段 210
10.3 在公有雲中實現卓越運維 212
10.4 小結 213
第11章 成本考量 215
11.1 成本最佳化的設計原則 215
11.1.1 計算總擁有成本 216
11.1.2 規劃預算和預測 217
11.1.3 管理需求和服務目錄 218
11.1.4 跟蹤支出 219
11.1.5 持續成本最佳化 219
11.2 成本最佳化的技術選型 220
11.2.1 降低架構複雜度 220
11.2.2 提高IT效率 221
11.2.3 實現標準化和架構治理 222
11.2.4 成本監控和報告 224
11.3 公有雲上的成本最佳化 227
11.4 小結 228
第12章 DevOps和解決方案架構框架 230
12.1 DevOps介紹 231
12.2 DevOps的好處 231
12.3 DevOps的組成部分 232
12.3.1 CI/CD 233
12.3.2 持續監控和改進 234
12.3.3 基礎設施即代碼 235
12.3.4 配置管理 235
12.4 什麼是DevSecOps 236
12.5 結合DevSecOps和CI/CD 237
12.6 實施CD策略 238
12.6.1 就地部署 238
12.6.2 滾動部署 238
12.6.3 藍綠部署 238
12.6.4 紅黑部署 239
12.6.5 不可變部署 240
12.7 在CI/CD流水線中實施持續測試 240
12.8 CI/CD的DevOps工具 242
12.8.1 代碼編輯器 243
12.8.2 原始碼管理 243
12.8.3 CI伺服器 243
12.8.4 代碼部署 245
12.8.5 代碼流水線 246
12.9 實施DevOps實踐 247
12.10 小結 248
第13章 數據工程和機器學習 249
13.1 什麼是大數據架構 250
13.2 大數據處理流水線設計 251
13.3 數據攝取 252
13.3.1 數據攝取的技術選型 253
13.3.2 數據攝取上雲 254
13.4 數據存儲 255
13.5 數據處理和分析 262
13.6 數據可視化 265
13.7 理解物聯網 266
13.8 什麼是機器學習 267
13.9 使用數據科學和機器學習 268
13.10 評估機器學習模型:過擬合與欠擬合 270
13.11 了解監督學習和無監督學習 270
13.12 小結 272
第14章 遺留系統架構設計 273
14.1 遺留系統面臨的挑戰 274
14.1.1 難以滿足用戶需求 274
14.1.2 維護和更新費用較高 275
14.1.3 缺乏技能和文檔 275
14.1.4 存在安全風險 276
14.1.5 無法兼容其他系統 276
14.2 遺留系統現代化改造策略 277
14.2.1 系統現代化改造的好處 277
14.2.2 遺留系統的評估 279
14.2.3 現代化改造方案 279
14.2.4 文檔和支持 280
14.3 遺留系統現代化改造技術 280
14.3.1 封裝、重新託管和重新平台化 281
14.3.2 重構和重新架構 282
14.3.3 重新設計和替換 282
14.4 遺留系統的雲遷移策略 283
14.5 小結 284
第15章 解決方案架構文檔 285
15.1 文檔目的 285
15.2 文檔視圖 286
15.3 文檔結構 288
15.3.1 解決方案概述 289
15.3.2 業務上下文 290
15.3.3 概念解決方案概述 291
15.3.4 解決方案架構 292
15.3.5 解決方案交付 295
15.3.6 解決方案管理 295
15.3.7 附錄 296
15.4 解決方案架構的IT採購文檔 296
15.5 小結 297
第16章 學習軟技能,成為更優秀的解決方案架構師 298
16.1 掌握售前技能 299
16.2 向企業高管匯報 300
16.3 主人翁意識和責任心 301
16.4 定義戰略執行以及目標與關鍵成果 301
16.5 著眼於大局 302
16.6 靈活性和適應性 303
16.7 設計思維 303
16.8 做一個動手寫代碼的程式設計師 305
16.9 持續學習,不斷進步 306
16.10 成為他人的導師 307
16.11 成為技術布道者和思想領袖 308
16.12 小結 308