《DevOps实践》朝向想要担负更大义务的开发者和计算机管理员,也很合适想要尽快适用开发者的运维管理工作人员。不必一切DevOps专业知识就可以迅速入门!
从这书上将会学得
√了解DevOps和持续交付的实质并见到DevOps怎样适用灵巧步骤
√掌握系统软件怎样互相配对并构成一个更大的总体
√建立并了解让DevOps更高效率的专用工具
√用DevOps的观念设计方案一个合适不断布署的系统软件
√用例如Git、Gerrit和GitLab等不一样方法高效率地储存和管理方法编码
√配备一个搭建CRUD运用示例的每日任务
√根据Jenkins和Selenium应用自动化技术回归测试来测试代码
√应用例如Puppet、Ansible、PalletOps、Chef和Vagrant等专用工具布署编码
√探寻Trac的工作中方法——一个用作难题追踪的专用工具
目录
- 前言 XIII
- 1 DevOps 和持续交付简介 1
- DevOps 简介 1
- 多快才算快? 3
- 敏捷之轮 4
- 敏捷不只是形式 5
- DevOps 和ITIL(信息技术基础架构库) 7
- 总结 8
- 2 洞察全局 9
- DevOps 流程和持续交付——概览 9
- 开发人员 10
- 版本控制系统 12
- 构建服务器 13
- 工件库 13
- 包管理器 13
- 测试环境 14
- 预发布/生产 15
- 发布管理 15
- Scrum、看板和交付流水线 16
- 圆满结束——一个完整的例子 17
- 识别瓶颈 18
- 总结 18
- 3 DevOps 如何影响架构 19
- 介绍软件架构 19
- 单块系统场景 20
- 架构经验法则 21
- 关注点分离 21
- 内聚原则 21
- 耦合 22
- 回到单块系统场景 22
- 一个真实例子 22
- 三层系统 23
- 表示层 23
- 业务层 24
- 数据层 24
- 处理数据库迁移 24
- 滚动升级 25
- Liquibase 的Hello world 26
- 变更记录文件 27
- pom.xml 文件 27
- 手动安装 29
- 微服务 30
- 小插曲——康威定律 31
- 如何保持服务接口向上兼容 32
- 微服务和数据层 33
- DevOps、架构和弹性 33
- 总结 34
- 4 一切皆代码 35
- 源代码控制的必要性 35
- 源代码管理历史 36
- 角色和代码 37
- 哪一个源代码管理系统? 38
- 源代码管理系统迁移之言 39
- 选择分支策略 39
- 分支问题域 41
- 工件版本命名 42
- 选择一个客户端 43
- 创建一个基本的Git 服务器 44
- 共享认证 45
- 托管Git 服务器 45
- 大的二进制文件 46
- 尝试不同的Git 服务器实现 47
- 中场休息,插播Docker 48
- Gerrit 49
- 安装git-review 包 49
- 历史修正主义的价值 50
- 拉请求模型 52
- GitLab 52
- 总结 54
- 5 构建代码 55
- 我们为什么要构建代码 55
- 构建系统的各个方面 56
- Jenkins 构建服务器 57
- 管理构建依赖 60
- 最终工件 61
- 用FPM 取巧 62
- 持续集成 63
- 持续交付 64
- Jenkins 插件 64
- 托管服务器 66
- 构建从机 66
- 主机上的软件 67
- 触发器 68
- 任务链和构建流水线 68
- Jenkins 文件系统结构概览 69
- 构建服务器和基础设施即代码 70
- 按依赖顺序构建 70
- 构建阶段 71
- 可选的构建服务器 72
- 校验质量指标 72
- 构建状态可视化 73
- 严肃对待构建错误 74
- 健壮性 74
- 总结 75
- 6 测试代码 77
- 人工测试 77
- 自动化测试的优缺点 78
- 单元测试 80
- 一般的JUnit 和特殊的JUnit 81
- 一个JUnit 的例子 82
- Mocking 82
- 测试覆盖率 83
- 自动化集成测试 84
- 在自动化测试中使用Docker 84
- Arquillian 85
- 性能测试 85
- 自动化接受测试 86
- 自动化GUI 测试 88
- 在Jenkins 中集成Selenium 测试 89
- JavaScript 测试 90
- 测试后端集成点 91
- 测试驱动开发 93
- REPL(交互式命令行)驱动开发 93
- 一个完整的自动化测试场景 94
- 人工测试web 应用 94
- 运行自动化测试 97
- 查找缺陷 98
- 测试巡礼 98
- 用Docker 处理棘手的依赖 102
- 总结 103
- 7 部署代码 105
- 为什么有这么多的部署系统 105
- 配置基础操作系统 106
- 描述集群 107
- 为系统交付包 107
- 虚拟化栈 109
- 在客户端执行代码 111
- 有关练习的注意事项 111
- Puppet 服务器和Puppet 代理 112
- Ansible 113
- PalletOps 117
- 用Chef 做部署 117
- 用SaltStack 做部署 118
- 从执行的模型来比较Salt、Ansible、Puppet 和PalletOps 120
- Vagrant 121
- 用Docker 做部署 123
- 对比表 124
- 云计算解决方案 124
- AWS 125
- Azure 126
- 总结 126
- 8 监控代码 127
- Nagios 127
- Munin 134
- Ganglia 138
- Graphite 142
- 日志处理 144
- 客户端日志类库 145
- ELK 147
- 总结 149
- 9 问题跟踪 151
- 用问题跟踪器做什么? 151
- 工作流和问题的一些例子 152
- 我们需要从问题跟踪器里得到什么? 154
- 问题跟踪器激增所带来的问题 157
- 所有的跟踪器 158
- Bugzilla 158
- Trac 164
- Redmine 172
- GitLab 问题跟踪器 178
- Jira 181
- 总结 183
- 10 物联网和DevOps 185
- IoT 和DevOps 简介 185
- 从市场的角度看物联网的未来 188
- 机器到机器的通信 190
- 物联网的部署影响软件架构 191
- 物联网部署的安全性 191
- 好啦,但是DevOps 和物联网有什么关系? 192
- DevOps 的物联网设备动手实验室 193
- 总结 199