首页>参考读物>计算机科学与技术>综合

DevOps实战:VMware管理员运维方法、工具及最佳实践
作者 : (美)小特雷弗 A. 罗伯茨(Trevor A. Roberts, Jr.),乔希·阿特韦尔(Josh Atwell),埃格勒·西格勒(Egle Sigler),依弗·范·多恩(Yvo van Doorn)著
译者 : 姚军 译
出版日期 : 2016-01-11
ISBN : 978-7-111-52478-6
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 274
开本 : 16
原书名 : DevOps for VMware Administrators
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

VMware资深专家撰写,是第一本写给VMware管理员的DevOps权威指南
既系统介绍DevOps的基础概念和流行的工具,又详细讲解改变管理系统和交付服务的方法,涵盖DevOps环境配置、维护、编排、管理的各个环节,包含大量实例

本书是第一本以结合VMware技术使用DevOps工具与实践为焦点的书籍。作者介绍了来自第三方和VMware自身的高价值工具,指导读者使用它们增强虚拟系统和应用程序的性能。读者将领略配置管理的自动化和优化、配给、日志管理、持续集成等技术过程。
本书还循序渐进地讲解利用Docker容器及Google Kubernetes大规模部署和管理应用程序的方法,并介绍了VMware最新的DevOps倡议,包括VMware vRealize Automation和VMware vRealize Code Stream。

通过阅读本书,你将学到:
理解DevOps工具和实践可以帮助VMware管理员解决的难题
使用Vagrant快速部署匹配生产系统规格的开发和测试环境
编写Chef“食谱”,合理化服务器配置和维护
用Ansible简化Unix/Linux配置管理和编排
采用Docker容器,实现更快速、更易行的应用程序管理
用Razor自动化全生命期配给
集成Microsoft PowerShell预期状态配置(DSC)和VMware PowerCLI,自动化关键Windows Server和vSphere VM管理任务
使用Puppet自动化基础设施配给、配置、编排和报告
用ELK(Elasticsearch、Logstash、Kibana)强化日志管理
用Git支持DevOps源代码管理,用Jenkins实现持续集成
用VMware vRealize Code Stream实现持续集成、交付和部署



本书由VMware资深技术专家撰写,是第一本写给VMware管理员的DevOps权威指南。书中既系统介绍了DevOps的基础概念和流行的工具,涵盖DevOps环境配置、维护、编排、管理的各个环节,又详细讲解改变管理系统和交付服务的方法,并且包含大量实例,可以帮助你快速了解并掌握DevOps工具、方法及最佳实践。
全书共19章,第1章讨论DevOps的概念;第2章介绍DevOps从业人员的一些流行工具;第3章介绍测试环境的建立;第4~6章介绍Puppet配置管理解决方案;第7~9章介绍Chef配置管理解决方案;第10章和第11章介绍Ansible配置管理和编排解决方案,第12章介绍Powershell预期状态配置;第13章探索VMware管理员在其环境中实施PowerShell DSC的方法;第14章讨论Linux容器的使用;第15章进一步讨论Linux容器,介绍Google Kubernetes;第16章描述如何安装、配置和使用Razor;第17章介绍Elasticsearch、Logstash和Kibana(ELK)栈;第18章介绍用于持续集成的Jenkins,讨论在代码提交到源代码库之后如何自动交付;第19章讨论VMware自身的DevOps倡议。


Trevor A. Roberts, Jr. VMware高级技术市场经理,拥有CCIE数据中心认证,是VMware数据中心设计和管理集中化认证高级专家。他因对IT社区的卓越贡献,曾被授予VMware vExpert、Cisco Data Center Champion和EMC Elect的称号。
Josh Atwell SolidFire的云架构师,专注于VMware和自动化解决方案。他是虚拟化社区的活跃分子,是CIPTUG、VMUG和UCS等技术用户组的领导人。
Egle Sigler 现为Rackspace的首席架构师。
Yvo van Doorn 是Chef解决方案架构师和新员工培训团队的负责人,有十多年的系统管理经验。

图书前言

什么是DevOps?是可以从供应商那里买到,解决所有IT问题的产品吗?是分析师用来引起CIO注意的行业流行词吗?虽然IT社区对DevOps的介绍接近于大肆追捧,但那更多的是因为DevOps确实能够带来好处,而不仅仅只是行业的广告宣传。
DevOps这一术语指的是一组帮助各种规模的组织更快地从IT投资中获得价值的方法、理念和工具。这个词的确切含义是什么?
想象一下,在你的组织中为了将软件项目从概念阶段、软件开发一直推进到生产部署,需要多少时间和过程?这个过程越长,IT组织向整个公司展示价值所需的时间就越长。由于技术无处不在,客户期待IT服务的交付像移动应用商店那么容易。他们不愿意为了一项功能的实现而等待数年,对客户的要求反应迟钝的公司难以获得长期的成功。
DevOps如何解决客户交付速度问题?例如,配置管理技术可以避免服务器配置漂移,加速在线购买新服务器处理客户请求快速增长的过程。持续集成可以确保自动化测试在开发者提交源代码时进行。这只是本书所讨论技术的两个例子。
网络规模IT组织(如Etsy、Netflix和Amazon Web Services)被视为DevOps的典范。但是,Gene Kim的DevOps企业峰会参与者的数量证明DevOps也能给传统IT组织带来价值。
所以,做好思想准备,DevOps正在来临。好消息是,你可以为所在IT组织DevOps行动的成功做出贡献。本书的目标不仅是介绍DevOps的概要思路,还将提供DevOps工具和技术的实例。
关于本书
在我们的经验中,DevOps的概念和工具可以显著地改进IT运营。虽然Amazon和Rackspace等大型IT组织已经在它们的环境中实施DevOps并取得成效,但是许多企业级IT组织对DevOps实践仍处于熟悉阶段。
本书的目标是为读者提供上述IT组织获得成功所借助的DevOps工具的实操示例。
本书的读者
本书是为具备VMware vSphere虚拟化管理程序(hypervisor)和Linux操作系统使用经验的系统管理员所写。我们将循序渐进地介绍DevOps从业者所使用软件解决方案的使用方法,每章都提供后续研究所需的额外资源。
本书内容
本书介绍的主题从虚拟化专业人士如何获得DevOps实践知识的概述开始,然后讨论DevOps从业人员使用的各种工具。
第1章讨论DevOps的概念,包括这一术语的定义以及DevOps相关实践有助于IT组织成功的原因。
第2章介绍DevOps从业人员使用的一些流行工具。第3章准备建立测试环境,以使用本书中的示例代码。
第4~6章介绍Puppet配置管理解决方案,包括简介、多层次应用部署,以及Puppet与VMware vSphere服务器和虚拟机管理集成的介绍。
第7~9章介绍Chef配置管理解决方案,包括简介、常见系统管理任务,以及Chef和VMware vSphere环境管理集成的介绍。
第10章和第11章介绍Ansible配置管理和编排解决方案,包括这种技术和各种应用程序部署的基本知识。
第12章介绍PowerShell 预期状态配置(PowerShell Desired State Configuration,DSC)的基础知识,包括Microsoft Windows PowerShell这一新功能的架构和主要用例。为了阐述DSC的基本功能、解释组成该功能的不同组件,提供了样板代码。
第13章探索VMware管理员在其环境中实施PowerShell DSC的方法。本章包括专门针对VMware管理员(可能不是Windows系统管理员)使用DSC提供额外价值及能力的用例。本章讨论了不同的方法,相应地强调和讨论了每种方法的建议和局限。
第14章讨论对企业IT组织来说相对新颖的一种应用程序部署范型:Linux容器的使用。本章用实操示例讨论Docker容器管理系统的基础知识。
第15章进一步讨论Linux容器,介绍Google Kubernetes,这是一种在数据中心大规模管理容器的开源工具。
第16章描述如何安装、配置和使用Razor——一种全生命期自动配给工具,组合了安装、服务器管理和配置工具。
第16章详细介绍Razor的所有关键概念和组件,首先描述Razor的工作原理和入门使用方法。一旦了解了Razor的概念和结合DevOps工具用于自动化配给的方法,你就能够发现Razor的不同功能组件。最后,本章介绍了Razor的最优安装和配置方法。
第17章介绍Elasticsearch、Logstash和Kibana(ELK)栈。这些工具都可以单独使用,但是结合使用可以成为日志管理的完美组合。本章单独介绍每一种工具,以及如何组合它们、最大限度地利用它们的能力提升日志管理的效率。
第18章介绍用于持续集成的Jenkins,讨论如何在代码提交到源代码库之后自动交付。
第19章讨论VMware自身的DevOps倡议,包括VMware vRealize Automation与DevOps工具的集成,以及新的VMware vRealize Code Stream解决方案。

上架指导

计算机\硬件

封底文字

本书是第一本以结合VMware技术使用DevOps工具与实践为焦点的书籍。作者介绍了来自第三方和VMware自身的高价值工具,指导读者使用它们增强虚拟系统和应用程序的性能。读者将领略配置管理的自动化和优化、配给、日志管理、持续集成等技术过程。
本书还循序渐进地讲解利用Docker容器及Google Kubernetes大规模部署和管理应用程序的方法,并介绍了VMware最新的DevOps倡议,包括VMware vRealize Automation和VMware vRealize Code Stream。
通过阅读本书,你将学到:
 理解DevOps工具和实践可以帮助VMware管理员解决的难题
 使用Vagrant快速部署匹配生产系统规格的开发和测试环境
 编写Chef“食谱”,合理化服务器配置和维护
 用Ansible简化Unix/Linux配置管理和编排
 采用Docker容器,实现更快速、更易行的应用程序管理
 用Razor自动化全生命期配给
 集成Microsoft PowerShell预期状态配置(DSC)和VMware PowerCLI,自动化关键Windows Server和vSphere VM管理任务
 使用Puppet自动化基础设施配给、配置、编排和报告
 用ELK(Elasticsearch、Logstash、Kibana)强化日志管理
 用Git支持DevOps源代码管理,用Jenkins实现持续集成
 用VMware vRealize Code Stream实现持续集成、交付和部署

作者简介

(美)小特雷弗 A. 罗伯茨(Trevor A. Roberts, Jr.),乔希·阿特韦尔(Josh Atwell),埃格勒·西格勒(Egle Sigler),依弗·范·多恩(Yvo van Doorn)著:暂无简介

译者简介

姚军 译:暂无简介

译者序

互联网已经成为世界经济的焦点区域,越来越多的Web服务成为企业日常经营活动的核心,这对IT运营和开发都形成了巨大的挑战。
在传统的瀑布方法中,开发各阶段与运营之间是弱耦合的,开发阶段搜集的需求几乎不考虑运营,这也决定了在运营阶段发现的问题将成为久拖不决的痼疾,而且,传统方法无法适应Web服务频繁的更新换代。在此背景之下,以敏捷技术为代表的新型开发方法大行其道,同时,由于运营在业务中的地位越来越突出,IT与运营之间的“竖井”必须打破,于是DevOps应运而生。
DevOps的核心思想之一便是IT与运营团队的相互融合,运营人员参与开发全过程,指导开发人员生成运营友好的应用程序;开发人员参与运营环节,了解运营需求并及时消除代码中不利于运营的缺陷。在这种指导思想下,实现了开发环境、测试环境和生产环境的高相似度,可编程、自动化的全生命期配置维护管理,从而适应现代Web环境的高变动性以及高可用性、高可靠性要求。
虚拟化技术是现代云环境的基石,由于基础设施在很大程度上实现了软件化,自动化配置维护比以前更便于实现,而且硬件设施的安装、配置和维护也变成软件代码的一部分,可以像开发产品一样置于版本控制之下,因此,虚拟化技术与DevOps的有机整合成为令人期待的趋势。
本书由VMware的资深专家编著,系统介绍了DevOps的基础概念和流行的工具,这些工具包括最流行的第三方工具(如Vagrant、Chef、Ansible、Razor、Docker、Microsoft PowerShell等)和VMware自身提供的持续集成、交付和部署产品(如VMware vRealize Automation),涵盖了DevOps环境配置、维护、编排、管理的各个环节,书中介绍的大量例子可以帮助读者快速了解工具的概念、使用以及如何与VMware虚拟化环境结合。对于想要试水DevOps的读者来说,这是一本不可多得的参考书。DevOps是一个快速变化的领域,有了这本入门书籍,读者有望跟上它的脚步,并在实践中不断提高,建设属于自己的理想世界。在翻译过程中,我们也深深感受到短短十年之间技术和理念变化带来的震撼。由于译者水平所限,书中难免存在不足,希望读者谅解并提出宝贵意见。
本书的翻译工作主要由姚军完成,徐锋、刘建林、陈志勇、宁懿、白龙、陈美娜、谢志雄、方翊等也为翻译工作做出了贡献,在此衷心感谢机械工业出版社的编辑关敏老师和其他有关人员为本书所提的宝贵意见。

译者

图书目录

译者序
前言
致谢
关于作者
关于评审人员
关于贡献者
第一部分 DevOps概述
第1章 DevOps简介 2
1.1 DevOps原则概述 2
1.2 采用系统思维 3
1.2.1 改变团队的互动方式 4
1.2.2 改变基础设施部署方法 5
1.2.3 改变软件开发和部署方法 6
1.2.4 经常收集和响应有用的系统反馈并相应调整 6
1.3 增进DevOps知识和技能 6
1.4 小结 7
参考文献 7
第2章 DevOps工具 8
2.1 为成功而组织:看板 8
2.2 服务器部署 11
2.3 配置管理 11
2.4 持续集成 12
2.5 日志分析 12
2.6 小结 12
参考文献 12
第3章 建立DevOps配置管理测试环境 13
3.1 用AutoLab进行环境配给 13
3.2 用Vagrant进行环境配给 14
3.3 用Packer创建映像 18
3.4 管理源代码 18
3.5 小结 24
参考文献 24
第二部分 Puppet
第4章 Puppet简介 26
4.1 Puppet架构 26
4.1.1 独立部署 27
4.1.2 主机-代理部署 27
4.2 准备Puppet测试实验室 28
4.3 Puppet资源 29
4.4 Puppet清单 30
4.5 Puppet模块 35
4.5.1 Puppet Forge 37
4.5.2 创建第一个Puppet模块 37
4.5.3 Puppet模块初始化清单(init.pp) 38
4.5.4 模板 39
4.5.5 使用Puppet模块 42
4.5.6 最后一步:版本控制提交 42
4.6 小结 42
参考文献 42
第5章 Puppet系统管理任务 43
5.1 用数据分离优化Web层 43
5.1.1 参数类(params.pp) 45
5.1.2 Hiera 48
5.1.3 节点分类 51
5.2 应用层 51
5.3 数据库层 53
5.4 实施生产建议措施 53
5.5 部署应用程序环境 54
5.6 小结 54
参考文献 54
第6章 用Puppet进行VMware vSphere管理 55
6.1 Puppet的VMware vSphere云配给器 55
6.1.1 准备VM模板 55
6.1.2 准备Puppet主服务器 56
6.2 VMware的管理模块 58
6.3 小结 63
参考文献 63
第三部分 Chef
第7章 Chef简介 66
7.1 什么是Chef 66
7.2 Chef的核心思想 67
7.2.1 食谱的顺序 67
7.2.2 幂等性 67
7.2.3 基于API的服务器 67
7.2.4 客户端进行所有搜集工作 68
7.2.5 测试驱动基础设施 68
7.3 Chef术语 68
7.3.1 食谱 68
7.3.2 烹调书 68
7.3.3 属性 68
7.3.4 角色 68
7.3.5 运行列表 69
7.3.6 资源 69
7.3.7 环境 69
7.4 托管Chef和Chef Server之间的差别 69
7.4.1 托管Chef 69
7.4.2 Chef Server 69
7.5 ChefDK简介 70
7.5.1 ChefDK是什么 70
7.5.2 安装ChefDK 70
7.6 使用Knife 72
7.7 创建第一个“你好,世界”的Chef食谱 73
7.8 小结 76
第8章 使用Chef完成系统管理任务 77
8.1 注册托管Chef 78
8.2 社区烹调书 81
8.3 设置系统管理 81
8.3.1 准备/设置系统管理任务1:管理时间 82
8.3.2 准备/设置系统管理任务2:管理根密码 83
8.4 配置虚拟客户机 84
8.5 系统管理任务 86
8.6 管理根密码 89
8.6.1 创建两个环境文件 89
8.6.2 将环境文件上传到托管Chef组织 90
8.6.3 为每个服务器分配一个环境 91
8.6.4 修改每个服务器的运行列表,以运行Managedroot烹调书 91
8.6.5 对节点应用更改 92
8.6.6 校验实施的策略 93
8.7 小结 94
参考文献 94
第9章 用Chef管理VMware vSphere 95
9.1 Knife插件 96
9.1.1 knife-vsphere入门 97
9.1.2 配置knife.rb文件 97
9.1.3 校验配置 99
9.1.4 组合 99
9.2 Chef配给 101
9.2.1 Chef配给架构 102
9.2.2 Chef配给入门 102
9.2.3 启动某些节点 103
9.3 小结 105
第四部分 Ansible
第10章 Ansible简介 108
10.1 Ansible架构 108
10.2 准备Ansible测试实验室 109
10.3 Ansible组 110
10.4 Ansible临时命令执行 110
10.4.1 Ping模块 111
10.4.2 Command模块 111
10.4.3 User模块 111
10.4.4 Setup模块 112
10.5 Ansible剧本 112
10.6 Ansible角色 117
10.7 Ansible Galaxy 121
10.8 小结 121
参考文献 121
第11章 Ansible系统管理任务 122
11.1 Web服务器部署 122
11.2 应用层 123
11.3 数据库层 124
11.4 角色结构优化 126
11.5 VMware资源管理 128
11.6 小结 132
参考文献 132
第五部分 PowerShell
第12章 PowerShell预期状态配置简介 134
12.1 什么是PowerShell DSC 134
12.2 PowerShell DSC需求 135
12.3 PowerShell DSC组件 136
12.3.1 原生命令集 136
12.3.2 托管对象格式文件 136
12.3.3 本地配置管理器 137
12.4 PowerShell DSC配置 138
12.5 PowerShell DSC模式 140
12.5.1 本地推送模式 140
12.5.2 远程推送模式 140
12.5.3 拉取模式 141
12.6 PowerShell DSC资源 142
12.7 小结 144
参考文献 144
第13章 PowerShell DSC实施策略 145
13.1 PowerShell DSC在VMware环境中的用例 145
13.2 用PowerCLI进行脚本化VM部署 146
13.3 在VM模板中加入PowerShell DSC 148
13.4 对新VM实施PowerShell DSC配置所面临的挑战 148
13.4.1 PowerCLI Invoke-VMscript 149
13.4.2 PowerCLI Copy-VMGuestFile 150
13.5 经验教训总结 151
13.6 未来PowerShell DSC在VMware环境中的用例 151
13.7 小结 152
参考文献 152
第六部分 利用容器进行应用程序部署
第14章 Docker应用容器简介 154
14.1 什么是应用程序 154
14.1.1 隐藏的复杂性 154
14.1.2 依赖性和配置冲突 155
14.2 Linux容器 155
14.2.1 控制组 155
14.2.2 命名空间 156
14.2.3 容器管理 157
14.3 使用Docker 157
14.3.1 安装Docker 157
14.3.2 Docker守护进程 158
14.3.3 Docker客户端 158
14.3.4 Docker索引 158
14.3.5 运行Docker容器 158
14.3.6 列出运行的容器 159
14.3.7 连接到运行的容器 159
14.3.8 构建和分发Docker容器 161
14.3.9 Dockerfile 161
14.3.10 Docker Hub 162
14.3.11 Docker与虚拟机的对比 163
14.3.12 Docker与配置管理的对比 163
14.4 小结 163
参考文献 163
第15章 大规模运行Docker容器 164
15.1 容器编排 164
15.2 Kubernetes 165
15.3 Kubernetes部署 166
15.3.1 CoreOS和Kubernetes群集管理工具 166
15.3.2 CoreOS群集部署 167
15.3.3 etcd服务器配置 171
15.3.4 Flannel网络覆盖 172
15.3.5 Kubernetes群集节点 172
15.3.6 Kubernetes服务部署 174
15.3.7 Kubernetes工作负载部署 175
15.4 用Docker实现平台即服务 178
15.5 小结 179
参考文献 179
第七部分 DevOps工具链
第16章 使用Razor配给服务器 182
16.1 Razor的工作原理 182
16.2 使用Razor 184
16.2.1 Razor集合和操作 186
16.2.2 构建Razor集合 192
16.3 使用Razor API 201
16.4 Razor组件 203
16.4.1 Razor服务器 203
16.4.2 Razor微内核 203
16.4.3 Razor客户端 203
16.5 安装Razor 203
16.5.1 PE Razor 204
16.5.2 Puppet安装 204
16.5.3 从来源安装 204
16.5.4 人工安装发行版本 204
16.5.5 其他服务 204
16.6 小结 206
参考文献 206
第17章 ELK——Elasticsearch、Logstash和Kibana简介 207
17.1 Elasticsearch概述 207
17.1.1 入门 208
17.1.2 理解索引 208
17.1.3 使用数据 209
17.1.4 安装插件 212
17.1.5 使用客户端 214
17.2 Logstash概述 215
17.2.1 入门 216
17.2.2 配置Logstash输入 216
17.2.3 应用过滤器 218
17.2.4 理解输出 219
17.3 Kibana概述 219
17.3.1 共享和保存 223
17.3.2 自定义数据视图 223
17.4 小结 223
参考文献 224
第18章 用Jenkins实现持续集成 225
18.1 持续集成概念 225
18.1.1 持续集成还是持续部署 226
18.1.2 测试自动化 226
18.2 Jenkins架构 227
18.3 Jenkins部署 228
18.4 Jenkins工作流 230
18.4.1 Jenkins服务器配置 230
18.4.2 Jenkins构建任务 232
18.4.3 Git钩子 235
18.4.4 你的第一次构建 237
18.5 质量保证团队 239
18.5.1 验收测试 239
18.5.2 开发团队 239
18.5.3 构建/测试基础设施 239
18.6 小结 239
参考文献 239
第八部分 VMware DevOps实践
第19章 DevOps环境中的VMware vRealize Automation 242
19.1 DevOps的出现 242
19.2 稳定的敏捷性 243
19.3 人、过程和Conway法则 243
19.4 vRealize Automation 244
19.5 vRealize Application Services 245
19.6 Puppet集成 247
19.7 Code Stream 252
19.8 小结 256
参考文献 256

教学资源推荐
作者: (美)M. Morris Mano; Charles R. Kime 著
作者: 艾冬梅 李艳晴 张丽静 刘琳 编著
作者: [美]怀亚特·S. 纽曼(Wyatt S. Newman) 著
作者: 朱鸣华 等编著
参考读物推荐
作者: 武新华 陈艳艳 王英英 等编著
作者: 钟文枫 编著
作者: (美)Johnny Cache,Joshua Wright, Vincent Liu 著