当前位置:主页 > 计算机电子书 > 其它 > DevOps下载
DevOps:软件架构师行动指南

DevOps:软件架构师行动指南 PDF 扫描完整版

  • 更新:2020-05-01
  • 大小:99.1 MB
  • 类别:DevOps
  • 作者:伦恩·拜斯(Len、Bass)、英戈·韦
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书从软件架构师视角讲解了引入DevOps实践所需要掌握的技术能力,涵盖了运维、部署流水线、监控、安全与审计以及质量关注。通过3个经典案例研究,讲解了在不同场景下应用DevOps实践的方法。这对于想应用DevOps实践的组织具有切实的指导意义。

目录

  • 译者序
  • 前言
  • 第一部分 背  景
  • 第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

资源下载

资源下载地址1:https://pan.baidu.com/s/1gjO5d18PipCr6spr07_XPw

相关资源

网友留言