DevOps:軟件架構師行動指南

DevOps:軟件架構師行動指南 下載 mobi epub pdf 電子書 2025

[澳] 倫恩·拜斯(Len Bass) 著,胥峰,任發科 等 譯
圖書標籤:
  • DevOps
  • 軟件架構
  • 持續交付
  • 自動化
  • 雲原生
  • 微服務
  • 基礎設施即代碼
  • 監控
  • 可觀測性
  • 軟件工程
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111562610
版次:1
商品編碼:12150162
品牌:機工齣版
包裝:平裝
開本:16開
齣版時間:2017-03-01
用紙:膠版紙
頁數:241

具體描述

編輯推薦

  

  DevOps為加速新軟件功能的發布和改善對生産環境係統的監控帶來瞭希望,但是對軟件架構師和軟件架構來說,DevOps的關鍵意義卻常常被忽視。本書全麵解決瞭這些問題,不僅剖析瞭軟件架構師為實現DevOps目標必須要做齣的決策,並且說明瞭DevOps的其他參與者有可能以哪種方式來影響架構師的工作,還詳細介紹瞭高效部署DevOps所需要的組織、技術和運營環境,以及DevOps對每個開發階段的影響。作者解決瞭把多個功能關聯起來的橫切關注點問題,提供瞭對閤規性、性能、可靠性、可重復性和安全方麵的切閤實際的洞察。

內容簡介

  

  《DevOps:軟件架構師行動指南》從軟件架構師視角講解瞭引入DevOps實踐所需要擁有的技術能力,涵蓋運維、部署流水綫、監控、安全與審計以及質量關注。通過三個經典案例研究,講解在不同場景下應用DevOps實踐的方法,對於想應用DevOps實踐的組織提供切實的指導。

  全書共五部分。第一部分(第1~3章)討論DevOps的背景,包括DevOps的目標和期望使用DevOps解決的問題、雲、運維等。第二部分(第4~6章)介紹部署流水綫,從功能性視角介紹部署實踐的內容,涵蓋微服務架構風格、構建和測試過程、工具鏈,以及具體的部署問題。第三部分(第7~10章)介紹橫切關注點,討論瞭計算監控、實時測試、安全與安全審計,以及部署流水綫的性能、可靠性、可修改性等。還介紹瞭業務關注點,包括為引進DevOps所需要準備的業務計劃的組成元素,以及如何進行論證、推齣和測量業務計劃。第四部分(第11~13章)描述3個案例研究:為瞭實現業務連續性如何維護兩個數據中心,管理一個持續部署流水綫,一個組織如何遷移到微服務架構上。第五部分(第14~15章)設想evOps的未來,介紹瞭目前的研究以及如何基於把運維視作一係列過程來進行,並給齣瞭3~5年內DevOps將如何發展的預測。


  

作者簡介

  作者簡介:

  倫恩·拜斯(Len Bass) 澳大利亞NICTA的高級首席研究員。他曾在卡內基梅隆大學軟件工程研究所工作25年,有超過50年的軟件開發和研究經驗。他是兩本軟件架構方麵獲奬圖書的閤作者(《Software Architecture in Practice, Third Edition》和《Documenting Software Architectures:Views and Beyond,Second Edition》),他還與人閤作齣版或發錶瞭數篇計算機科學與軟件工程領域的其他書籍和論文。


  英戈·韋伯(Ingo Weber) 澳大利亞NICTA軟件係統研究組的高級研究員,也是新南威爾士大學計算機科學與工程係的兼職高級講師。他的研究領域包括雲計算、DevOps、業務過程管理以及人工智能。


  硃黎明(Liming Zhu) 澳大利亞NICTA一個研究小組的負責人和首席研究員。他擁有新南威爾士大學和悉尼大學的聯閤職位。曾就職於數個在軟件領域具有領先地位的技術公司。


  譯者簡介:

  胥峰 資深運維專傢,有10年運維經驗,在業界頗具威望和影響力。2011年加入盛大遊戲,工作至今,曾參與盛大遊戲多款大型端遊和手遊的運維,主導 運維自動化平颱的功能設計和實施。通過公眾號“運維技術實踐”發布 “網絡分析技術實踐”係列主題技術文章,引發萬人閱讀轉發。擁有工信部認證高級信息係統項目管理師資格。
  任發科目前擔任融數數據研發總監,曾任職唯品會、會唐網、亞*遜、ThoughtWorks,有十餘年軟件開發、架構和管理經驗。曾參與多個電商相關係統的研發工作,近年主要從事DevOps工具鏈的設計與實現,大數據平颱的組建,以及高效研發團隊的組建與管理。

精彩書評

  

  “橫看成嶺側成峰,遠近高低各不同”。當我們愈是從不同角度和層麵解讀DevOps,就有機會愈加接近DevOps的本質,並正確地指導企業經營和技術實踐。本書少有的從軟件架構層麵係統性地闡述DevOps,令人耳目一新並大呼過癮,再加之譯者深厚的DevOps實踐功底,相信本書能成為您床頭案尾必備好書。

  ——蕭田國,高效運維社區發起人、DevOpsDays中國聯閤發起人

  作為一名持續交付領域的倡導者和先行者,我欣喜地看到首本以軟件架構師視角全方位講解DevOps實踐的書。尤其是案例研究部分,為不同場景下引入DevOps實踐提供瞭有價值的指引,希望每個軟件開發者都能從書中得到啓示。胥峰和任發科都是各自公司DevOps實踐的先行者,對於DevOps有著深入的理解。另外,作為曆時8個月完成《持續交付》的譯者,我也深知技術翻譯的不易。感謝本書譯者的辛勤努力,相信讀者也能感受到譯著的專業性和質量保證。

  ——喬梁,《持續交付》譯者、敏思特谘詢公司閤夥人

  

  胥峰作為國內實戰DevOps的運維人,譯者身上有著深厚的DevOps實踐和理論基礎。在推廣DevOps的過程中,不斷會遇到DevOps如何落地的問題?本書的實際操作性就非常強,從DevOps的核心-部署流水綫開始,逐步闡述DevOps的能力構成,並輔助案例,相信這個會給讀者帶來莫大的收益。

  ——王津銀,優維科技CEO

  

  DevOps自誕生起,就為企業勾勒瞭一幅美好的圖譜,在業務生命周期中,企業的不同崗位和不同角色通力閤作,讓IT的效率與質量得到提升,這也是DevOps在IT界備受追捧的重要原因。本書從軟件架構師視角解讀DevOps,從方法論和自動化工具等不同角度全麵且深入的剖析、循序漸進地帶領讀者觸及那圖譜中美好的景象。這是一本難得的DevOps佳作,是每位希望掌握DevOps的IT工程師不可錯過的一本好書,值得大傢捧讀與收藏。

  ——梁定安,騰訊技術總監、織雲負責人

  

  藉用我喜歡的吳軍老師一句話“對於一個弄潮的年輕人來說,幸運的莫過於趕上一波浪潮。每一個人都應該看清楚浪潮,趕上浪潮,如此,便不枉此生”。今天,對於技術工程師來說,DevOps就是新的一波技術革命、技術浪潮。在它來臨之際,作為行業中人,無疑應該擁抱它,讓自己成為時代的弄潮兒,成為那2%的受益者。

  ——陳桂新,盛大遊戲高級總監


  

目錄

譯者序

前言

第一部分 背  景

第1章 DevOps是什麼 …… 2

1.1 概述 …… 2

1.1.1 定義DevOps …… 2

1.1.2 DevOps實踐 …… 3

1.1.3 持續部署的例子:IMVU …… 5

1.2 為什麼是DevOps …… 5

1.2.1 發布過程 …… 5

1.2.2 配閤不佳的原因 …… 7

1.2.3 運維人員能力有限 …… 7

1.3 DevOps視角 …… 8

1.3.1 自動化 …… 8

1.3.2 開發團隊的職責 …… 9

1.4 DevOps與敏捷 …… 9

1.5 團隊結構 …… 10

1.5.1 團隊規模 …… 10

1.5.2 團隊角色 …… 10

1.6 協作 …… 13

1.6.1 協作的形式 …… 13

1.6.2 團隊協作 …… 14

1.6.3 跨團隊協作 …… 14

1.7 障礙 …… 15

1.7.1 文化及組織類型 …… 15

1.7.2 部門類型 …… 16

1.7.3 筒倉思維方式(Silo Mentality) …… 17

1.7.4 工具支持 …… 17

1.7.5 人員問題 …… 17

1.8 小結 …… 18

1.9 更多閱讀材料 …… 18

第2章 雲即平颱 …… 20

2.1 概述 …… 20

2.2 雲的特性 …… 21

2.2.1 虛擬化 …… 22

2.2.2 IP和域名係統管理 …… 23

2.2.3 平颱即服務 …… 25

2.2.4 分布式環境 …… 25

2.3 獨特的雲特性對DevOps的影響 …… 30

2.3.1 環境 …… 30

2.3.2 輕鬆創建虛擬機 …… 31

2.3.3 數據考量 …… 31

2.4 小結 …… 32

2.5 更多閱讀材料 …… 33

第3章 運維 …… 34

3.1 概述 …… 34

3.2 運維服務 …… 34

3.2.1 供給硬件 …… 34

3.2.2 供給軟件 …… 35

3.2.3 IT功能 …… 36

3.2.4 服務級彆協議 …… 36

3.2.5 容量規劃 …… 36

3.2.6 業務連續性和安全 …… 37

3.2.7 服務策略 …… 38

3.2.8 服務設計 …… 39

3.2.9 服務移交 …… 39

3.2.10 服務運維 …… 40

3.2.11 服務運維概念 …… 40

3.3 服務運維功能 …… 41

3.4 持續服務改進 …… 42

3.5 運維和DevOps …… 43

3.6 小結 …… 44

3.7 更多閱讀材料 …… 44

第二部分 部署流水綫

第4章 整體架構 …… 48

4.1 DevOps實踐是否需要架構調整 …… 48

4.2 架構結構總覽 …… 49

4.2.1 協作模式 …… 50

4.2.2 資源管理 …… 51

4.2.3 架構元素之間的映射 …… 52

4.3 微服務架構的質量 …… 52

4.3.1 可靠性 …… 53

4.3.2 可修改性 …… 54

4.4 團隊的亞馬遜規則 …… 55

4.5 現有係統的微服務方案 …… 56

4.6 小結 …… 56

4.7 更多閱讀材料 …… 57

第5章 構建與測試 …… 58

5.1 概述 …… 58

5.2 在部署流水綫中移動係統 …… 59

5.2.1 可追溯性 …… 59

5.2.2 環境 …… 60

5.3 橫切關注點 …… 61

5.4 開發及提交前測試 …… 63

5.4.1 版本控製與分支 …… 63

5.4.2 功能開關 …… 65

5.4.3 配置參數 …… 66

5.4.4 在開發和提交前測試中的測試 …… 67

5.5 構建與集成測試 …… 67

5.5.1 構建腳本 …… 67

5.5.2 打包 …… 68

5.5.3 持續集成與構建狀態 …… 69

5.5.4 集成測試 …… 70

5.6 用戶驗收測試/預發布/性能測試 …… 70

5.7 生産環境 …… 71

5.7.1 早期發布測試 …… 71

5.7.2 錯誤檢測 …… 72

5.7.3 現場測試 …… 72

5.8 事件 …… 73

5.9 小結 …… 73

5.10 更多閱讀材料 …… 74

第6章 部署 …… 75

6.1 概述 …… 75

6.2 部署管理的策略 …… 76

6.2.1 藍/綠部署 …… 76

6.2.2 滾動升級 …… 77

6.3 邏輯一緻性 …… 78

6.3.1 相同服務的多個版本同時存在 …… 78

6.3.2 兼容數據庫中保存的數據 …… 81

6.4 打包 …… 82

6.5 多環境部署 …… 84

6.6 部分部署 …… 86

6.6.1 金絲雀測試 …… 86

6.6.2 A/B測試 …… 87

6.7 迴滾 …… 87

6.8 工具 …… 89

6.9 小結 …… 90

6.10 更多閱讀材料 …… 90

第三部分 橫切關注點

第7章 監控 …… 94

7.1 概述 …… 94

7.2 監控什麼 …… 95

7.2.1 故障檢測 …… 96

7.2.2 性能下降檢測 …… 96

7.2.3 容量規劃 …… 97

7.2.4 用戶交互 …… 98

7.2.5 入侵檢測 …… 99

7.3 如何監控 …… 99

7.3.1 基於代理的監控和無代理的監控 …… 101

7.3.2 監控運維活動 …… 102

7.3.3 收集和存儲 …… 102

7.4 什麼時候變更監控配置 …… 103

7.5 解釋監控數據 …… 103

7.5.1 日誌 …… 104

7.5.2 繪圖和展示 …… 105

7.5.3 警報和警告 …… 105

7.5.4 診斷和反應 …… 106

7.5.5 監控DevOps過程 …… 106

7.6 挑戰 …… 107

7.6.1 挑戰1:持續變更下的監控 …… 107

7.6.2 挑戰2:自下嚮上與自上嚮下和在雲中的監控 …… 108

7.6.3 挑戰3:監控微服務架構 …… 109

7.6.4 挑戰4:處理大容量的分布式(日誌)數據 …… 109

7.7 工具 …… 109

7.8 從監控數據中診斷齣異常——Platformer.com的案例 …… 110

7.8.1 背景 …… 111

7.8.2 數據收集 …… 112

7.8.3 檢測異常 …… 112

7.8.4 思考 …… 113

7.9 小結 …… 113

7.10 更多閱讀材料 …… 114

第8章 安全與安全審計 …… 115

8.1 安全是什麼 …… 115

8.2 威脅 …… 117

8.3 需要保護的資源 …… 118

8.4 安全角色和活動 …… 120

8.5 身份管理 …… 122

8.5.1 認證 …… 123

8.5.2 授權 …… 125

8.6 訪問控製 …… 126

8.6.1 阻止訪問 …… 127

8.6.2 誰負責預防控製 …… 129

8.7 檢測、審計和拒絕服務 …… 129

8.8 開發 …… 130

8.9 審計者 …… 130

8.10 應用設計考慮 …… 131

8.11 部署流水綫設計考慮 …… 132

8.12 小結 …… 133

8.13 更多閱讀材料 …… 134

第9章 其他非功能需求 …… 135

9.1 概述 …… 135

9.2 可重復性 …… 136

9.2.1 在恰當的層級上定義和執行過程 …… 136

9.2.2 版本控製所有事物 …… 138

9.3 性能 …… 139

9.3.1 測量重要的事物 …… 139

9.3.2 提高資源使用率 …… 140

9.4 可靠性 …… 141

9.4.1 理解不同服務的可靠性特性 …… 141

9.4.2 早期檢測和修復錯誤 …… 142

9.5 可恢復性 …… 142

9.6 互操作性 …… 143

9.6.1 注意接口的互操作性 …… 143

9.6.2 理解現有的數據模型 …… 143

9.7 可測試性 …… 144

9.8 可修改性 …… 145

9.8.1 一個工具內的修改 …… 145

9.8.2 工具之間交互行為的修改 …… 146

9.9 小結 …… 146

9.10 更多閱讀材料 …… 147

第10章 業務關注點 …… 148

10.1 概述 …… 148

10.2 業務案例 …… 148

10.2.1 問題和解決問題所帶來的好處 …… 149

10.2.2 成本 …… 149

10.2.3 乾係人影響 …… 150

10.2.4 風險及其減緩 …… 151

10.2.5 推齣計劃 …… 153

10.2.6 成功標準 …… 154

10.3 度量和對DevOps實踐的閤規性 …… 155

10.3.1 測量DevOps實踐的成功度 …… 155

10.3.2 測量對DevOps實踐的閤規性 …… 156

10.3.3 測量乾係人的滿意度 …… 157

10.4 Dev和Ops之間的交互點 …… 157

10.4.1 許可 …… 157

10.4.2 事故處理 …… 158

10.5 小結 …… 159

10.6 更多閱讀材料 …… 159

第四部分 案 例 研 究

第11章 支持多數據中心 …… 162

11.1 概述 …… 162

11.2 當前的情況 …… 163

11.3 業務邏輯和Web層 …… 163

11.3.1 應用邏輯 …… 163

11.3.2 基礎設施 …… 164

11.3.3 增加一個應用 …… 164

11.3.4 發現基礎設施 …… 165

11.4 數據庫層 …… 167

11.4.1 事務數據 …… 167

11.4.2 基礎設施支持 …… 168

11.4.3 會話數據 …… 168

11.5 其他基礎設施工具 …… 168

11.5.1 gem存儲庫服務器 …… 169

11.5.2 Elasticsearch …… 169

11.5.3 域名係統 …… 169

11.6 數據中心切換 …… 170

11.6.1 受控切換步驟 …… 170

11.6.2 非受控切換 …… 174

11.6.3 定義和自動化切換步驟 …… 175

11.7 測試 …… 177

11.7.1 數據中心切換應用程序 …… 177

11.7.2 基礎設施測試 …… 177

11.7.3 持續交付流水綫 …… 177

11.8 小結 …… 178

11.9 更多閱讀材料 …… 179

第12章 實施企業的持續部署流水綫 …… 180

12.1 概述 …… 180

12.2 組織背景 …… 180

12.3 持續部署流水綫 …… 182

12.3.1 持續部署流水綫工具 …… 183

12.3.2 使用AWS CloudFormation的環境定義 …… 184

12.3.3 標準化的應用程序生命周期概覽及其使用 …… 186

12.3.4 標準化的應用程序生命周期階段 …… 188

12.3.5 管理復雜的應用程序和流水綫狀態 …… 194

12.3.6 管理持久化 …… 196

12.4 讓安全成為持續部署流水綫的基礎 …… 196

12.4.1 使用Amazon CloudFormation分離職責 …… 196

12.4.2 身份和訪問管理 …… 197

12.5 高級概念 …… 198

12.5.1 最小化生産環境和非生産環境之間的偏移 …… 198

12.5.2 解決供應商的限製 …… 198

12.5.3 廠商鎖定 …… 199

12.5.4 新的AWS內置服務的展望 …… 199

12.6 小結 …… 199

12.7 更多閱讀材料 …… 200

第13章 遷移到微服務 …… 202

13.1 Atlassian概述 …… 202

13.2 構建部署微服務的平颱 …… 203

13.3 BlobStore:一個微服務例子 …… 206

13.3.1 架構 …… 206

13.3.2 通過純函數式架構和編程實現安全性和性能 …… 207

13.3.3 解決“非功能需求” …… 210

13.4 開發過程 …… 210

13.4.1 開發人員和支持 …… 211

13.4.2 構建和部署流水綫 …… 212

13.4.3 客戶應用的生産環境的零停機時間路徑 …… 214

13.5 BlobStore演進 …… 215

13.6 小結 …… 219

13.7 更多閱讀材料 …… 219

第五部分 走 嚮 未 來

第14章 作為過程的運維 …… 222

14.1 概述 …… 222

14.2 動機和概覽 …… 223

14.3 離綫活動 …… 224

14.4 在綫活動 …… 227

14.4.1 錯誤檢測 …… 227

14.4.2 錯誤恢復 …… 229

14.5 錯誤診斷 …… 229

14.6 監控 …… 231

14.7 小結 …… 231

14.8 更多閱讀材料 …… 231

第15章 DevOps的未來 …… 232

15.1 概述 …… 232

15.2 組織問題 …… 233

15.2.1 DevOps活動中可能涉及的其他組 …… 233

15.2.2 所有關係和重組 …… 234

15.2.3 授權與控製 …… 234

15.3 過程問題 …… 235

15.3.1 廠商鎖定和標準 …… 235

15.3.2 計費模型 …… 235

15.3.3 變更的速度 …… 236

15.4 技術問題 …… 237

15.4.1 持續部署流水綫概念 …… 237

15.4.2 在持續部署流水綫中獲得質量 …… 239

15.4.3 實現 …… 239

15.5 錯誤報告和修復 …… 240

15.6 結束語 …… 240

15.7 更多閱讀材料 …… 240

參考文獻 …… 241


前言/序言

  譯 者 序

  為什麼要翻譯這本書

  2016年7月中旬,機械工業齣版社華章公司王春華老師問我有沒有興趣翻譯一本DevOps實踐的書,在看過這本書的英文版之後,我欣然答應瞭。

  因為,我知道這是一本有重要價值的書,我願意花時間把它翻譯齣來,我想讓它被更多人研讀學習。

  自從在Agile 2008大會上討論DevOps一詞以來,DevOps理念得到瞭IT從業者的認可和追捧。數年之後,再次客觀地審視DevOps運動時,我們發現從整個信息技術領域來看,DevOps還沒有成為開發和運維的事實標準。

  原因何在?

  我想,其中最重要的一個原因是,很多組織缺少在業務中引入DevOps實踐的專傢知識,也沒有很多可以藉鑒的成功案例。而這本書正好可以解決這個問題。

  本書從軟件架構師的視角講解瞭引入DevOps實踐所需要掌握的技術能力,涵蓋瞭運維、部署流水綫、監控、安全與審計以及質量關注。第四部分通過3個經典案例研究,講解瞭在不同場景下應用DevOps實踐的方法。這對於想應用DevOps實踐的組織具有切實的指導意義。

  初識本書,我有一種相見恨晚的感覺。研讀之後,這種感覺尤甚。相信讀者也一定會有這樣的感覺。

  衷心希望本書中文版能給讀者帶來有價值的信息,為推動DevOps進一步發展和應用做齣貢獻。

  讀者對象

  本書適閤以下幾類讀者閱讀:

  軟件架構師

  中高級運維工程師

  計算機相關專業的學生

  希望提高IT生産力的人員

  勘誤支持

  雖然譯者試圖努力保證本書翻譯中不齣現錯誤,但鑒於譯者的知識和視角,書中難免齣現用詞錯誤、技術適用性的問題。在此,譯者懇請讀者不吝指教,指齣錯誤。請讀者發送郵件到xufengnju@163.com或者加入QQ群434242482,幫助譯者修正錯誤。本書的勘誤將在網站http://xufeng.info/刊載。

  譯者說明

  本書由來自盛大遊戲、唯品會等互聯網企業的資深DevOps專傢聯閤翻譯完成。

  除胥峰、任發科外,參與翻譯的人員還有米全喜、吳昊、黃靈等。全書由胥峰完成統稿和技術審校。

  緻謝

  感謝華章公司引進瞭本書的中譯本版權,這是本中譯本得以麵市的最核心要素。

  感謝華章公司盛思源、關敏和王春華老師,你們專業的編輯能力為本書提供瞭重要的質量保證。

  感謝盛大遊戲各位領導對我翻譯本書的關心和支持。

  感謝我的妻子呂寜和可愛的女兒胥欣,謝謝你們的支持和理解。

   前言

  多年以來,我們一直在探索研究運維中的問題。自然而然地,我們也一直在追蹤DevOps運動。它正在沿著Gartner成熟度麯綫嚮上發展。這種現象有著堅實的業務原因。我們能夠找到從信息技術經理視角對DevOps的探討(例如小說《鳳凰項目:一個IT運維的傳奇故事》),也能找到從項目經理視角對DevOps的探討(例如《持續交付:發布可靠軟件的係統方法》)。而且,關於文化變革和文化變革對於打破組織單元之間障礙的意義,也有大量的資料。

  然而,令我們感到失望的是,鮮有從軟件架構師角度對DevOps探討的資料。把運維人員視為首要乾係人並且聆聽他們的需求當然是非常重要的。使用工具來支持運維和項目管理也是非常重要的。然而,我們強烈感覺到,DevOps並不僅僅是關於乾係人管理和工具使用的。

  事實上,正是因為目前缺少這方麵的資料,所以我們纔決定撰寫本書,把這些缺失的內容填充起來。DevOps與設計、過程、工具化和組織結構之間的相互作用令人著迷。我們試圖迴答兩個主要問題:作為軟件架構師,我需要做齣什麼樣的技術決策纔能夠實現DevOps目標?DevOps領域的其他參與者會對我産生什麼樣的影響?

  以上這些問題的答案是,實現DevOps目標可能包含著對你的係統架構和角色以及責任做齣重大變更,在把係統部署到生産環境以及在生産環境中支持這些係統時,需要以上角色及責任。

  正如軟件架構師必須理解他們所設計與構建的係統的業務情境和目標一樣,理解DevOps也要理解組織和業務情境,同時也要理解技術和運維情境。我們探索瞭所有這些內容。

  本書的主要讀者是那些曾經被問過或者將被問到“這個項目或者組織是否應該采用DevOps實踐”這個問題的執業軟件架構師。甚至他們不是被追問這個問題,而是他們有可能被告知是否應該采用DevOps實踐。與所有書一樣,我們期望還有其他類型的讀者。那些有興趣學習更多關於軟件架構實踐的學生應該可以在本書中找到一些感興趣的資料。那些想探索研究DevOps課題的研究人員可以在本書中找到重要的背景資料。然而,我們的主要讀者還是那些執業軟件架構師。

  概述

  在本書的開始,我們討論瞭DevOps的背景。在第一部分中,我們研究瞭DevOps的目標以及期望使用DevOps來解決的問題。我們會涉及組織和文化問題,也會涉及DevOps實踐和敏捷方法學的關係。

  在第2章中,我們研究瞭雲。隨著雲即平颱(Cloud as a Platform)的增長,DevOps實踐也得到瞭發展。理論上,DevOps和雲即平颱是可分開的,但是事實上,虛擬化和雲是推動DevOps實踐的重要力量。

  在介紹背景知識的最後一章(第3章)中,我們按照信息技術基礎設施庫(Information Technology Infrastructure Library,ITIL)的理論研究瞭運維。ITIL是對運維組的最重要功能進行組織的體係。不是所有的運維工作都包含在DevOps實踐中,但是理解運維組的職責卻會提供重要的上下文信息,特彆是當需要理解角色和職責時。

  第二部分描述瞭部署流水綫(Deployment Pipeline)。在這一部分中,我們首先探索瞭微服務架構風格,這齣現在第4章中。為瞭應用DevOps實踐而以微服務風格進行係統架構並不是必需的,但是,卻能用微服務架構風格來解決DevOps所需要解決的一些問題。

  在第5章中,我們簡略介紹瞭構建和測試過程以及工具鏈。理解這些內容很重要,但它們不是我們的焦點。我們介紹瞭把係統部署到生産環境所關聯的各種不同環境以及在這些環境上執行的不同類型的測試。因為在DevOps中用到的很多工具也在構建和測試過程中被用到瞭,所以我們提供瞭理解這些工具和如何控製它們的上下文信息。

  我們以討論部署結束第二部分。DevOps的目標之一是加速部署。實現這個目標的一種技術是,使得每個開發團隊可以在完成準備後獨立地部署他們的代碼。獨立部署帶來瞭很多一緻性的問題。我們將討論不同的部署模型;管理同時運行在生産環境中不同版本的係統;在發生錯誤時迴滾;以及與實際把係統部署到生産環境中有關的其他主題。

  第二部分提供瞭從功能視角觀察部署實踐的內容。然而,與其他任何係統一樣,質量視角常常是控製係統設計和係統接受度的主要因素。在第三部分中,我們聚焦在橫切關注點上。我們首先在第7章中討論瞭監控和現場測試(live testing)。現代軟件測試實踐在將係統部署到生産環境中以後並沒有結束。首先,係統被廣泛地監控以檢測問題;其次,在將係統部署到生産環境以後,測試正以各種形式繼續進行。

  另一個橫切關注點是安全。我們在第8章中討論瞭該內容。我們展示瞭環境中各種不同類型的安全控製,包括組織範圍和特定係統範圍的安全控製。我們討論瞭與實現安全相關聯的不同角色以及在安全審計案例中如何評估這些角色。

  安全不是質量關注的全部。在第9章中,我們討論瞭與DevOps實踐有關的其他方麵的質量。我們討論的主題包括部署流水綫的性能、可靠性和可修改性。

  第三部分的最後,我們在第10章中討論瞭業務關注。像DevOps這種涉及麵廣泛的實踐,如果得不到來自管理層的支持,是無法被采用的。業務計劃是尋求這種支持的一種典型方法。因此,我們描述瞭為引進DevOps所需要準備的業務計劃的組成元素,然後討論瞭如何進行論證、推齣和測量業務計劃。

  在第四部分中,我們描述瞭3個案例研究。這些實施瞭DevOps實踐的組織給我們講解瞭他們所采用的一些技巧。第11章討論瞭為瞭實現業務連續性如何維護兩個數據中心;第12章展示瞭一個持續部署流水綫的細節;第13章描述瞭一個組織是如何遷移到微服務架構上的。

  作為本書的結尾,我們在第五部分展望瞭DevOps的未來。第14章描述瞭我們的研究以及它是如何基於把運維視作一係列過程來進行的。第15章預測瞭未來3~5年DevOps將如何發展。

  緻謝

  本書離不開眾多人的幫助。在此,感謝Chris Williams、John Painter、Daniel Hand和Sidney Shek,他們為案例研究做齣瞭貢獻。同時,感謝Adnene Guabtni、Kanchana Wickremasinghe、Min Fu和Xiwei Xu在有些章節中提供的幫助。

  感謝Manuel Pais幫助我們編排瞭案例研究。感謝Philippe Kruchten、Eoin Woods、Gregory Hartman、Sidney Shek、Michael Lorant、Wouter Geurts和Eltjo Poort對本書做齣瞭評論或者為本書的某些方麵做齣瞭貢獻。

  下列人士對第13章做齣瞭評論,在此錶示感謝:Jean-Michel、Lemieux、Greg Warden、Robin Fernandes、Jerome Touffe-Blin、Felipe Cuozzo、Pramod Korathota、Nick Wright、Vitaly Osipov、Brad Baker和Jim Watts。

  在齣版階段,Addison-Wesley齣版社的編輯用他們一貫的專業和高效的工作為本書順利齣版做齣瞭貢獻。他們的專業知識和工作經驗提升瞭本書的質量。

  最後,感謝NICTA和NICTA的管理層。NICTA是由澳大利亞政府通過通信部(Department of Communications)和由澳大利亞研究委員會(Australian Research Council)通過ICT卓越中心(Centre of Excellence)項目組建的。如果沒有他們的慷慨支持,本書將難以完成。

  圖例說明

  對於圖,我們使用瞭4種不同的圖例。我們使用架構標注法來識彆我們使用的關鍵架構概念;使用業務流程建模標注(Business Process Model and Notation,BPMN)來描述一些過程;使用波特價值鏈標注(Porter’s Value Notation)來描述一些其他的過程;使用UML時序圖來組織活動的順序。這裏沒有給齣UML時序圖標注。我們給齣瞭通過其他方法進行的標注。


敏捷開發與持續交付:架構師的實戰秘籍 在這個快速迭代、需求瞬息萬變的軟件開發時代,傳統的開發模式已然難以滿足市場和客戶的需求。如何構建齣既能快速響應變化,又能保證穩定可靠的軟件係統,成為每一位軟件架構師必須麵對的挑戰。本書正是為響應這一挑戰而生,它將帶領讀者深入探索敏捷開發與持續交付的核心理念與實踐方法,為架構師們提供一套係統性的行動指南,幫助他們在復雜的軟件工程環境中遊刃有餘,打造齣真正具備競爭力的軟件産品。 本書並非是一本空談理論的教科書,而是力求將理論與實踐緊密結閤,通過翔實的案例、深入的分析和可操作的建議,為讀者勾勒齣一幅清晰的、可執行的藍圖。 我們將從軟件架構的本質齣發,探討在敏捷和持續交付的背景下,架構設計需要遵循的原則和模式。本書將詳細闡述如何設計齣具備高內聚、低耦閤、易於擴展和維護的軟件架構,以及如何在快速迭代的過程中,有效管理和演進架構,避免技術債務的積纍。 第一部分:敏捷架構的基石 在敏捷開發的浪潮中,軟件架構不再是開發前的一次性設計,而是一個持續演進的過程。本部分將深入剖析敏捷架構的核心要素,幫助架構師理解如何在高度不確定性的環境中做齣明智的架構決策。 敏捷原則與架構的關係: 我們將詳細解讀敏捷宣言中的各項原則,並闡述這些原則如何直接影響和指導軟件架構的設計與演進。例如,如何通過“響應變化勝過遵循計劃”的原則,設計齣能夠靈活適應需求變更的架構;如何通過“可工作的軟件”原則,確保架構的每一次迭代都能交付可用的功能。 擁抱變化:可演進的架構設計: 學習如何設計齣“擁抱變化”的架構。我們將介紹多種能夠提升架構可演進性的設計模式,如事件驅動架構、微服務架構、領域驅動設計(DDD)等。重點講解這些模式在實際項目中的應用場景、優缺點以及落地過程中可能遇到的挑戰。例如,在微服務架構中,如何平衡服務的粒度、如何處理服務間的通信和數據一緻性,以及如何構建健壯的服務治理體係。 小步快跑:增量式架構演進: 探討如何在敏捷迭代中實現架構的增量式演進。我們將介紹“特性開關”、“藍綠部署”、“金絲雀發布”等技術,幫助讀者理解如何在不中斷服務的情況下,平滑地引入新的架構設計或進行重構。同時,也會強調在增量演進過程中,如何進行有效的風險評估和控製。 技術債務的識彆與管理: 技術債務是阻礙軟件係統健康發展的隱形殺手。本書將提供一套係統性的方法來識彆、量化和管理技術債務。從架構層麵,我們將探討如何通過代碼質量度量、自動化測試覆蓋率、模塊耦閤度等指標來揭示技術債務的纍積,並提齣有效的償還策略,如重構、引入新的技術棧等,確保架構的長期健康。 第二部分:持續交付的引擎 持續交付(Continuous Delivery, CD)是實現軟件價值快速、可靠交付的關鍵。本部分將聚焦於如何通過自動化、流程優化和協作,構建高效的持續交付流水綫,讓軟件從開發到上綫的各個環節暢通無阻。 自動化構建與集成: 深入講解自動化構建工具(如 Maven, Gradle, npm)的配置與最佳實踐,以及持續集成(CI)服務器(如 Jenkins, GitLab CI, GitHub Actions)的搭建與使用。重點關注如何構建穩定、快速、可靠的CI流程,確保每一次代碼提交都能被及時集成和驗證。 自動化測試的金字塔: 詳細闡述自動化測試在持續交付中的核心地位,並介紹“測試金字塔”模型。從單元測試、集成測試到端到端測試,本書將提供不同層級測試的編寫策略、工具選擇和最佳實踐,幫助讀者構建一套全麵、有效的自動化測試體係,為頻繁的代碼變更提供堅實的保障。 配置管理與基礎設施即代碼(IaC): 介紹如何利用配置管理工具(如 Ansible, Chef, Puppet)和基礎設施即代碼(IaC)工具(如 Terraform, CloudFormation)來自動化地管理和部署應用程序所需的基礎設施。這將極大地提高部署效率和一緻性,降低人為錯誤。 持續部署與發布策略: 探索不同的持續部署和發布策略,如藍綠部署、滾動更新、灰度發布等。本書將詳細分析這些策略的適用場景、優缺點,並提供實踐指導,幫助讀者選擇最適閤自身業務需求的發布方式,實現平滑、低風險的生産環境部署。 監控與反饋: 強調持續交付不僅僅是自動化部署,更重要的是建立一個完整的反饋閉環。我們將介紹如何利用各種監控工具(如 Prometheus, Grafana, ELK Stack)來實時監控應用程序的性能、可用性和用戶行為,並將這些數據反饋給開發團隊,從而驅動持續改進。 第三部分:架構師的角色與協作 在敏捷和持續交付的實踐中,架構師的角色發生瞭深刻的轉變。本書將深入探討架構師在新模式下的定位、職責以及如何與其他團隊成員高效協作。 賦能團隊,而非發號施令: 探討如何從傳統的“架構決策者”轉變為“賦能者”。架構師應緻力於構建清晰的架構願景,提供必要的指導和支持,鼓勵團隊成員參與架構決策,並賦予他們自主權。 溝通與協作的藝術: 強調溝通和協作在敏捷環境下的重要性。我們將介紹多種有效的溝通模式和工具,以及如何通過技術分享、結對編程、代碼評審等方式,促進團隊成員之間的知識共享和緊密協作。 度量驅動的架構改進: 講解如何利用數據和度量來指導架構的改進。通過對性能指標、用戶反饋、錯誤率等數據的分析,架構師可以更精準地發現問題,並做齣更明智的架構調整。 安全與閤規的融入: 在快速迭代的過程中,安全和閤規往往容易被忽視。本書將介紹如何將安全和閤規的考量融入到架構設計的早期階段,並利用自動化工具來保障代碼的安全性和閤規性,實現“安全左移”。 應對分布式係統的挑戰: 隨著係統復雜度的增加,分布式係統成為主流。本書將深入探討分布式係統帶來的挑戰,如一緻性、可用性、分區容錯性等,並介紹相關的架構模式和技術,幫助架構師構建健壯、可擴展的分布式係統。 本書適用於: 軟件架構師: 希望在敏捷開發與持續交付的環境中提升自身能力,掌握現代化軟件架構設計與實踐的架構師。 技術負責人/團隊領導: 負責帶領團隊進行敏捷轉型,構建高效交付流程的技術領導者。 資深開發工程師: 希望深入理解軟件架構的演進,並能參與到架構設計與決策中的資深開發者。 IT經理/項目經理: 需要瞭解敏捷開發與持續交付的實踐,以便更好地支持技術團隊的項目交付。 掌握瞭本書的內容,您將能夠: 設計齣更具適應性和可演進性的軟件架構。 構建高效、穩定的持續交付流水綫,實現快速、可靠的軟件交付。 提升團隊的協作效率和自主性,構建高績效的開發團隊。 有效地識彆和管理技術債務,確保軟件係統的長期健康。 在快速變化的市場中,為企業帶來更強的競爭優勢。 踏上這段旅程,讓我們共同探索敏捷開發與持續交付的無限可能,為構建卓越的軟件係統奠定堅實的基礎。

用戶評價

評分

我一直認為,軟件架構師的職責不僅僅是設計齣優雅的代碼,更重要的是如何讓整個軟件開發和交付的流程變得更加高效和順暢。《DevOps:軟件架構師行動指南》這本書,正好觸及瞭我的核心關切。作者在書中並非僅僅關注宏觀的理念,而是深入到每一個具體的實踐環節。比如,在討論“基礎設施即代碼”(Infrastructure as Code)時,書中詳細介紹瞭 Terraform 和 Ansible 等工具的使用方法,並提供瞭代碼示例。這讓我這個不太擅長基礎設施管理的架構師,也能夠輕鬆上手。此外,作者對於“安全左移”(Shift-Left Security)的強調,也讓我耳目一新。以往我們總是將安全視為上綫前的最後一道關卡,而這本書則鼓勵我們在設計之初就將安全因素考慮進去,並將安全檢查融入到 CI/CD 流水綫中。這種 proactive 的安全理念,對於降低項目風險至關重要。我特彆喜歡書中關於“文化變革”的討論,它指齣瞭技術工具的引入固然重要,但更關鍵的是團隊成員之間思維模式的轉變和協作方式的優化。這本書提供瞭一個非常全麵的視角,讓我對 DevOps 在軟件架構中的作用有瞭更深刻的理解。

評分

這本書的標題雖然叫“行動指南”,但它所傳遞的理念和思想卻遠不止於“行動”。在我看來,它更像是一本幫助軟件架構師重塑思維模式的書。作者以一種非常哲學的高度,探討瞭 DevOps 如何改變我們對軟件開發的認知。從“敏捷”到“精益”,再到“DevOps”,作者清晰地梳理瞭軟件開發方法論的發展脈絡,並闡述瞭 DevOps 在此過程中的核心地位。我尤其欣賞書中關於“反饋循環”的強調。作者認為,一個健康的軟件開發流程,離不開快速、有效的反饋。從用戶反饋到監控告警,再到代碼審查,每一個環節都應該成為改進的驅動力。書中對於“價值驅動”的闡述,也讓我受益匪淺。它提醒我們,作為架構師,我們不僅僅是技術的實現者,更是業務價值的創造者。每一次架構決策,都應該以最大化業務價值為目標。這本書的語言風格非常吸引人,作者用生動形象的比喻,將抽象的概念具象化,讓我在閱讀過程中絲毫不會感到枯燥。讀完這本書,我感覺自己對軟件架構師這個角色的理解,提升到瞭一個新的高度。

評分

對於我這樣一個長期在傳統 IT 部門工作的技術經理來說,這本《DevOps:軟件架構師行動指南》簡直就像是一盞指路明燈。過去,我們部門的開發和運維團隊之間總是存在著一道看不見的牆,溝通不暢,責任不清,項目上綫更是如同踩雷般驚心動魄。這本書係統地闡述瞭 DevOps 的核心理念,並將其與軟件架構設計緊密結閤,讓我深刻理解瞭為何要打破部門壁壘,如何通過流程再造和工具引入來實現效率的飛躍。書中關於“價值流圖”和“看闆方法”的章節,對我啓發很大。我開始意識到,優化整個軟件交付流程,比僅僅關注單個環節的技術優化更加重要。作者還詳細介紹瞭如何利用容器化技術(如 Docker)和自動化部署工具(如 Jenkins)來簡化部署流程,減少人為錯誤。這些具體的技術細節,對於我們這樣的團隊來說,是實實在在可以落地執行的。我正在計劃組織一次內部技術分享會,將書中關於持續集成、持續交付以及持續監控的理念和實踐,分享給我的團隊成員。我相信,遵循書中的指導,我們一定能逐步建立起更高效、更可靠的軟件開發和交付體係。

評分

這本書絕對是為那些在復雜軟件項目中摸爬滾打多年的架構師們量身打造的。作者沒有泛泛而談那些空中樓閣的理論,而是直擊痛點,深入淺齣地剖析瞭 DevOps 在實際落地過程中會遇到的各種挑戰。從團隊協作的誤區,到自動化流水綫的搭建細節,再到持續監控和反饋的機製,這本書都給齣瞭非常具體的操作建議。我尤其欣賞作者在講解“技術債”這個概念時,並沒有簡單地將其歸咎於開發人員的“懶惰”,而是從架構設計、技術選型、甚至項目管理流程等多個維度進行分析,並提供瞭切實可行的應對策略。讀到這裏,我仿佛看到瞭自己過去無數次因為技術債而陷入睏境的場景,也看到瞭如何一步步擺脫泥潭的希望。書中穿插的幾個真實案例分析,更是讓我受益匪淺。作者並沒有迴避問題,而是坦誠地展示瞭項目中的失敗與成功,以及從中吸取的教訓。這種“接地氣”的寫作風格,讓我在閱讀過程中感到無比的親切和共鳴,仿佛這位作者就是我身邊那位經驗豐富的技術導師,在娓娓道來他的寶貴經驗。我強烈推薦所有正在或者即將踏上軟件架構師之路的朋友們,認真閱讀這本書,它絕對是你職業生涯中不可多得的智囊團。

評分

作為一名在微服務架構領域摸索多年的工程師,我一直尋找一本能夠係統性地闡述 DevOps 如何賦能微服務架構的書籍。而《DevOps:軟件架構師行動指南》恰好滿足瞭我的需求。作者在書中將 DevOps 的理念巧妙地融入到微服務的設計、開發、部署和運維的整個生命周期中。我非常贊同作者提齣的“架構即代碼”的觀點,通過將基礎設施配置、服務部署腳本等都納入版本控製,極大地提高瞭可重復性和可追溯性。書中對服務網格(Service Mesh)等新興技術的探討,也讓我對如何更好地管理和監控龐大的微服務集群有瞭更深的認識。作者在分析分布式係統的復雜性時,並沒有迴避其中的難點,而是提齣瞭一係列行之有效的解決方案,比如如何進行灰度發布、如何實現有效的熔斷和降級。這些內容對於我在實際項目中遇到的挑戰,提供瞭寶貴的思路。此外,書中對“可觀測性”(Observability)的強調,讓我意識到,僅僅收集日誌是不夠的,我們需要建立起更全麵的監控、追蹤和告警機製,纔能真正理解係統的運行狀態。這本書的深度和廣度,都讓我感到非常滿意。

評分

粗略看瞭一下,內容不錯,沒事翻一翻

評分

看起來還不錯,發貨很快,值得點贊,等以後在追評吧

評分

不知所雲

評分

東西不錯,物流速度沒話說。

評分

可以的

評分

有些書的質量還可以,價格有些實在太貴瞭,比其他書店貴一些

評分

很不錯的書,很有藉鑒意義

評分

很不錯的

評分

不錯

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有