內容簡介
本書使
架構師和
軟體工程師能夠快速套用面向交付的知識,提供了解決當今軟體系統關鍵質量屬性和交叉問題(例如安全性、性能、
可伸縮性、彈性、數據和新興技術等)的深入指導。通過一個貫穿全書的案例研究,對每項關鍵技術都進行了演示,反映了作者應對複雜軟體環境的豐富經驗。關鍵主題包括:
創建可持續且具有連貫性的軟體系統,系統滿足功能需求和相關涉眾關心的質量屬性。
將基於團隊的軟體架構和架構方法理解為“決策流”。
總結數據管理、集成和變更的關鍵問題,以及各種數據技術對軟體架構的影響。
面向安全性的軟體架構,包括持續性的風險建模和緩解風險。
使用軟體架構方法來提高持續交付環境中的系統性能。
使用軟體架構方法來成功地套用新興技術。
圖書目錄
讚譽
推薦序
譯者序
前言
致謝
第1章 軟體架構的重要性更勝往昔 1
1.1 本書所說的架構到底是什麼 1
1.2 當今的軟體行業 2
1.3 當前軟體架構的挑戰 4
1.3.1 關注技術細節而不是業務
場景 4
1.3.2 認為“架構不能增加價值” 4
1.3.3 架構實踐也許太慢了 5
1.3.4 一些架構師可能並不適應
雲平台 6
1.4 敏捷化世界裡的軟體架構 6
1.4.1 一切的開始:軟體架構與
極限編程 6
1.4.2 本書究竟在哪一步:架構、
敏捷性還是持續交付 7
1.4.3 未來的方向 7
1.5 持續架構的引入 8
1.5.1 持續架構的定義 8
1.5.2 持續架構的收益 10
1.6 套用持續架構 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 反饋循環:架構演進 27
2.5.1 適應度函式 28
2.5.2 持續測試 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統治地位的消亡:NoSQL和多種持久化 40
3.2.2 可伸縮性和可用性:最終
一致性 43
3.2.3 事件與狀態:事件溯源 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 持續的風險建模和緩解
風險 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 系統可用性 70
4.3.5 安全監控 71
4.3.6 密鑰管理 72
4.3.7 緩解社會工程學攻擊 74
4.3.8 零信任網路 75