DevOps 实践
  • 推荐0
  • 收藏7
  • 浏览1.5K

DevOps 实践

Joakim Verona (作者)  高清华 (译者)

  • 书  号:978-7-121-29812-7
  • 出版日期:2016-09-20
  • 页  数:216
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Practical DevOps
  • 原书号:9781785882876
  • 维护人:张春雨
本书详细讲解了DevOps的相关知识,可以更好地促进IT团队与软件开发者之间的全方位合作,提高团队效率来确保软件正常的开发和运营。
本书的主要内容有:对DevOps和持续交付的简单介绍,DevOps如何影响架构,如何创建企业Java应用程序,如何使用不同的代码库,如何使用一些简单的工具执行代码测试,如何成功配置你的测试,如何监测代码异常以及如何处理日志以及跟踪影响进程的事件。
你将会学到:了解DevOps和持续交付的优点以及DevOps如何支持敏捷过程;了解如何将所有系统组装成一个大的整体;安装和熟悉所有你可以用来提高效率的DevOps工具;使用Devops设计一款适合持续部署系统的应用程序;使用不同的选项高效地储蓄和管理代码,例如Git、Gerrit和 Gitlab;配置job来创建CRUD应用样本;使用Jenkins Selenium回归测试测试代码;使用工具来配置你的代码,例如:Puppet、Ansible、Palletops、Chef和Vagrant;使用Nagios、Munin和 Graphite监控代码运行状态;探索Trac(一个跟踪事件的工具)的工作方式。
面向实战首作问世——驭Devops之力强化技术栈并优化IT运行
前言
DevOps 领域在近年来变得流行而普遍。它是那么的流行,以至于很容易忘记在 2008年以前,当 Patrick Debois 组织起第一个 DevOps 之日大会时,几乎没人曾经听说过该词。由开发(developers)和运维(operations)组成的 DevOps 这个词,到底意味着什么?为什么它能造成如此巨大的狂热?本书的任务就是回答这个看起来很简单的问题。
简短的答案就是:DevOps 旨在将不同的社区,比如开发和运维社区,联合起来变成一个更有效率的整体。
这也反映在本书中。它探索了许多在 DevOps 工作中有用的工具,还有那些更加凝聚人们的工具,这些工具比起那些在人之间划清边界的工具来说更令人喜爱。我们用来进行软件开发的流程也是工具,所以将 DevOsp 相关的不同敏捷流派的各个方面包含进来也是很自然的事。
本书也希望做到像标题说的那样,注重实战。让我们在 DevOps 之路上开始旅程吧!
本书主要内容
第 1 章,DevOps 和持续交付简介,涉及了 DevOps 的背景,并介绍它是怎样融入到敏捷开发的广袤世界的。
第 2 章,洞察全局,它会帮助你了解 DevOps 使用的多个系统如何协同工作,组成一个大整体。
第 3 章,DevOps 如何影响架构,描述了软件架构的各个方面,以及当我们以 DevOps的视角工作时它对我们的意义。
第 4 章,一切皆代码,解释了如何实现一切皆代码。而且,你需要一个地方来存储代码,这个地方就是组织里的源代码管理系统。
第 5 章,构建代码,解释了为何需要系统来构建代码,介绍了这些系统。
第 6 章,测试代码,展示了如果需要及早发布或者经常性发布代码,我们就得对代码的质量有信心。因此我们需要自动化回归测试。
第 7 章,部署代码,展示了当完成了代码的构建和测试,你需要将其部署到服务器上,这样客户就能使用新部署的特性了。
第 8 章,监控代码,涵盖了代码如何通过选择的部署方案来安全地部署到服务器上。你需要监护着它以使其正常工作。
第 9 章,问题跟踪,介绍了处理组织内开发流程的系统,例如问题跟踪软件。在实现敏捷流程时,这样的系统是很重要的帮手。
第 10 章,物联网和 DevOps,描述了 DevOps 如何在物联网的新兴领域帮助我们。
本书的使用要求
本书包含了许多实用例子。为了融会贯通这些例子,你需要一台机器,最好是基于GNU/Linux 的操作系统,例如 Fedora。
本书的读者
本书面向那些想要承担更大责任,并了解基础设施如何做到构建现代企业的开发者。本书也面向那些想要更好地支持开发者的运维人员。自动化测试的技术人员也是本书的目标受众。本书主要是包含了许多实例的技术文档,适合那些想要学习实现具体工作代码的人员。尽管如此,前两章的实践性并不强。它们交代了有助于了解其余章节的背景和概览。

目录

前言 ............................................................................................................ 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
DevOps 实践
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
DevOps 实践
任务链和构建流水线 ........................................................................................................... 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
DevOps 实践
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

读者评论

下载资源

相关博文

  • DevOps和持续交付

    DevOps和持续交付

    管理员账号 2016-11-04

    小编说:DevOps 领域在近年来变得流行而普遍。由开发(developers)和运维(operations)组成的“共同协作”,归根结底,就是为了提高产品质量。 本文选自《DevOps实践》,您将了解如何在大规模敏捷背景和不同的敏...

    管理员账号 2016-11-04
    1746 3 0 0
  • 当DevOps撞上物联网

    当DevOps撞上物联网

    管理员账号 2016-12-23

    小编说:DevOps 领域在近年来变得流行而普遍。它强调不同的角色之间共同协作,以及如何工作得更加紧密,就像这个词语的词根暗示的那样——开发和运维。但是DevOps和物联网有什么关系? 本文选自《DevOps实践》,将与您探讨Dev...

    管理员账号 2016-12-23
    1274 1 1 0

相关图书

Terraform:多云、混合云环境下实现基础设施即代码(第2版)

Yevgeniy Brikman ( (作者) 白宇 (译者)

Terraform工具已经成为DevOps领域的关键角色。在各种云平台和虚拟化环境(如AWS、Goolge Cloud、Azure等)中,可以对基础设施即代码(...

¥108.00

DevOps安全:云安全服务

Julien Vehent (作者) 覃宇 (译者)

本书主要介绍了 DevOps 实践中最容易被忽视的一环——安全,并且对云原生服务的安全保障也做了全面的阐述。书中详细介绍了 Web 攻击防范、权限验证、日志监控...

¥108.00

企业级DevOps技术与工具实战

刘淼 张笑梅 (作者)

本书包含DevOps理论的介绍,深入浅出地解析了DevOps体系所包括的Agile/Lean/ITSM/TPS各种方法的精粹和脉络,为DevOps爱好者提供了较...

 

SRE生存指南:系统中断响应与正常运行时间最大化

Nat Welch (作者) 冯文辉 冯文辉 (译者)

站点可靠性工程(Site Reliability Engineering,简称SRE)是一个令人兴奋的新兴领域,它专注于如何确保系统稳定、可靠地运行。本书基于一...

 

Zabbix企业级分布式监控系统(第2版)

吴兆松 (作者)

本书基于稳定版本Zabbix 4.0,对Zabbix的各项功能进行了详细而深入的讲解,包括监控系统规划、安装包定制、架构高可用、性能调优、指标数据采集、自动化处...

 

Nginx实战:基于Lua语言的配置、开发与架构详解

王力 王力 (作者)

本书主要讲解了Nginx在反向代理和应用开发中的作用,阅读本书可以了解Nginx在互联网开发中扮演的多个角色,充分利用这些角色的各项功能有助于提升服务的整体性能...

¥47.40