《DevOps 软件架构师行动指南》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(澳)伦恩·拜斯(LenBass),英戈·韦伯(IngoWeber),朱黎明著;胥峰等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111562610
  • 页数:244 页
图书介绍:本书从软件架构师视角讲解了引入DevOps实践所需要掌握的技术能力,涵盖了运维、部署流水线、监控、安全与审计以及质量关注。通过3个经典案例研究,讲解了在不同场景下应用DevOps实践的方法。这对于想应用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

第二部分 部署流水线 48

第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

第三部分 横切关注点 94

第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

第四部分 案例研究 162

第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

第五部分 走向未来 222

第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.1DevOps活动中可能涉及的其他组 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