持續架構實踐:敏捷和 DevOps 時代下的軟件架構 Continuous Architecture in Practice: Software Architecture in the Age of Agility and Devops

Murat Erder,Pierre Pureur, Eoin Woods 譯 茹炳晟//劉驚驚//於君澤//曹洪偉

買這商品的人也買了...

商品描述

本書為在現實環境中利用持續架構方法提供了實踐指南,
並闡明了架構在敏捷、DevOps和雲平台時代不斷變化的角色。
本書將幫助技術人員更新其架構實踐,以應對新的軟件挑戰。
本書使架構師和軟件工程師能夠快速應用面向交付的知識。
它包括了解決當今軟件系統關鍵質量屬性和交叉問題的深入指導,
例如安全性、性能、可伸縮性、彈性、數據和新興技術等。
通過一個貫穿全書的案例研究,對每項關鍵技術都進行了演示,
反映了作者應對複雜軟件環境的豐富經驗。

作者簡介

Murat Erder
“持續架構”之父,德意志銀行董事、行政辦公室CTO、數據辦公室主管,
在軟件研發和架構領域有超過25年的經驗,是一位資深的軟件架構專家和管理顧問。
於2015年在與穆拉特·埃爾德(Murat Erder)合著的《持續架構:敏捷中的持續架構》一書中提出“持續架構”的概念,
自此之後,一直在世界範圍內以實踐、寫作、演講、諮詢等方式進行持續架構的深化和佈道工作。


Pierre Pureur
“持續架構”之父,有近35年的軟件開發和架構經驗,IEEE會員。
擅長企業架構、應用架構、信息架構、解決方案架構等幾乎所有與架構相關的領域,
曾擔任某大型金融服務公司的首席企業架構師,在金融領域有豐富的技術和服務經驗。
於2015年在與穆拉特·埃爾德(Murat Erder)合著的
《持續架構:敏捷中的持續架構》一書中提出“持續架構”的概念,
並與其共同在世界範圍內開展持續架構的佈道工作。

Eoin Woods
紐交所上市跨國軟件公司Endava的CTO,有超過30年的軟件開發和架構經驗。
英國工程技術學會(IET)特許會員,英國計算機協會(BSC)特許會員。
於2018年獲得獲得由卡內基·梅隆大學的美國軟件工程研究所
(CMU SEI,全球軟件工程領域最權威機構)頒發的Linda M. Northrup軟件架構大獎。
著有《軟件系統架構》《軟件架構指標》等架構領域的暢銷著作。

目錄大綱

讚譽
推薦序
譯者序
前言
致謝
第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
4.3.9 實現TFX的安全性75
4.4 維持安全性78
4.4.1 安全性的實施78
4.4.2 人員、流程和技術79
4.4.3 薄弱的一環79
4.4.4 持續提供安全性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 數據分發、複製和分區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 直面系統失敗的可靠性133
7.1.3 業務場景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 共享分類賬、區塊鍊和分佈
式分類賬技術簡介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章持續架構實踐的結論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 實踐中的持續架構191
附錄A 案例研究192
附錄B 共享分類賬技術實現對比212
術語表214