注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件工程及软件方法学DevOps:原理、方法与实践

DevOps:原理、方法与实践

DevOps:原理、方法与实践

定 价:¥69.00

作 者: 荣国平,张贺,邵栋 等 著
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111581918 出版时间: 2017-11-01 包装: 平装
开本: 16开 页数: 字数:  

内容简介

  本书由南京大学软件学院三位资深教师联合行业一线专家编写而成,系统全面地介绍DevOps——这一互联网时代新型软件开发模式的原理、方法和实践。内容详实、结构清晰、表述浅显易懂,非常适合在校学生学习使用,也可以作为产业界DevOps初学者学习参考。全书第一部分首先从时代背景出发,介绍DevOps模式的渊源;结合云时代运维的特征,进一步阐明DevOps模式是适应当前软件系统开发、部署和维护的必然选择。第二部分介绍了主流软件开发方法及其流程;作为DevOps的基础理论,精益生产和看板方法是这部分的重点。第三部分则重点阐述了DevOps模式下的典型实践,例如:微服务架构、持续集成、持续交付(部署)、虚拟化、Docker容器、自动化等。

作者简介

  荣国平,南京大学软件学院教师,长期从事软件过程改进相关的工作。从2006年开始,多次赴美参加SEI的相关培训,并在当年成为国内唯*的SEI授权PSP培训师和TSP团队教练。在JSS、软件学报等期刊以及包括ICSE、ESEM、ICSSP、EASE、CSEE&T、APSEC等在内的一流国际会议上发表论文40余篇。DevOps中国技术社区发起人之一。张贺,南京大学软件工程教授、博士生导师,入选登峰人才计划(A-层次),澳大利亚联邦科学院(CSIRO)主任科学家。在欧洲和澳洲从事软件工程研究与实践十余年,2013年起就职于南京大学。长期从事软件过程、软件体系结构、服务计算、经验软件工程领域的科研和实践。负责主持爱尔兰(欧盟)、澳大利亚、中国等多个国家*科研基金项目。著有英文专著两部,并在国际重要软件工程学术期刊和会议上发表论文百余篇,其中10篇会议长文获*佳论文奖。邵栋,南京大学软件学院副教授,嵌入式技术系主任,软件学院院长助理。主要从事软件工程教学研究工作,研究方向为软件过程、高科技市场理论、敏捷软件开发、软件工程教育等。2005、2009、2014年三次获得教育部颁发的“国家*教学成果奖二等奖”,是国家*教学团队“软件工程主干课程教学团队”骨干成员,编写教材一部,担任国家精品课程“计算与软件工程”主讲教师,两次获得“南京大学我*喜爱的老师”称号。

图书目录

赞誉

前言
第1章 DevOps概述 …… 1
1.1 互联网时代的转型挑战 …… 1
1.2 独角兽公司 …… 4
1.2.1 Netflix公司 …… 4
1.2.2 Instagram …… 8
1.2.3 成功秘诀 …… 9
1.3 什么是DevOps …… 10
1.3.1 发展渊源 …… 10
1.3.2 价值观 …… 12
1.3.3 原则 …… 13
1.3.4 方法 …… 15
1.3.5 实践 …… 16
1.3.6 工具 …… 16
1.4 DevOps应用与研究现状 …… 17
1.4.1 微服务 …… 17
1.4.2 持续集成和持续交付 …… 19
1.4.3 工具研究和开发 …… 21
本章小结 …… 23
思考题 …… 23
参考文献 …… 23
第2章 云时代的运维 …… 26
2.1 云计算概述 …… 26
2.1.1 IaaS …… 26
2.1.2 PaaS …… 28
2.1.3 SaaS …… 29
2.1.4 XaaS …… 30
2.2 IT服务标准介绍 …… 30
2.2.1 CMMI-SVC …… 30
2.2.2 ITIL …… 33
2.2.3 ISO20000 …… 33
2.2.4 ITSS …… 36
2.3 什么是运维 …… 39
2.3.1 运维的价值 …… 39
2.3.2 运维的技术与技能 …… 40
2.3.3 传统运维的转型之路 …… 40
本章小结 …… 41
思考题 …… 41
参考文献 …… 42
第3章 软件架构演进 …… 44
3.1 软件架构概述 …… 44
3.1.1 什么是软件架构 …… 44
3.1.2 软件架构的目标 …… 46
3.1.3 软件架构的不同视角 …… 46
3.2 软件架构的演进 …… 51
3.2.1 传统软件架构的演进 …… 51
3.2.2 流量爆炸时代的大型互联网软件架构 …… 54
3.2.3 互联网软件架构演进实例 …… 60
本章小结 …… 66
思考题 …… 67
参考文献 …… 67
更多阅读 …… 67
第4章 软件开发过程和方法 …… 68
4.1 软件过程概述 …… 68
4.1.1 软件开发方法发展历史 …… 69
4.1.2 软件过程的多维视角 …… 77
4.2 个体过程和实践 …… 79
4.2.1 PSP过程基本原则 …… 80
4.2.2 PSP过程度量 …… 81
4.2.3 PROBE估算原理 …… 82
4.2.4 PROBE估算流程 …… 83
4.2.5 通用计划框架 …… 85
4.2.6 PSP质量与质量策略 …… 87
4.2.7 评审与测试 …… 88
4.2.8 评审过程质量 …… 89
4.2.9 设计与质量 …… 98
4.2.10 设计过程 …… 100
4.2.11 设计的层次 …… 101
4.3 小组过程和实践 …… 102
4.3.1 XP实践 …… 102
4.3.2 Scrum方法 …… 105
4.3.3 TSP过程 …… 106
4.4 软件过程改进 …… 108
4.4.1 元模型 …… 108
4.4.2 过程改进参考模型与标准 …… 112
4.5 DevOps中的开发过程和方法 …… 121
本章小结 …… 121
思考题 …… 121
参考文献 …… 122
第5章 精益思想和看板方法 …… 124
5.1 从精益思想说起 …… 124
5.1.1 精益起源于丰田 …… 124
5.1.2 精益实践的传播 …… 124
5.1.3 精益作为方法学开始超越生产制造 …… 126
5.1.4 上升至精益的价值观 …… 126
5.2 精益的三个层面 …… 128
5.3 精益产品开发实践体系 …… 129
5.3.1 精益产品开发的目标 …… 129
5.3.2 精益产品开发的原则 …… 130
5.3.3 精益产品开发的运作实践 …… 131
5.4 看板方法的起源 …… 132
5.4.1 看板的中文意思带来误解 …… 132
5.4.2 看板是精益制造系统的核心工具 …… 133
5.4.3 看板形成拉式生产方式 …… 135
5.5 什么是产品开发中的看板方法 …… 136
5.5.1 产品开发中的看板方法的诞生 …… 136
5.5.2 看板方法的第一组实践—建立看板系统的3个实践 …… 136
5.5.3 看板方法的第二组实践—运作看板系统的2个实践 …… 140
本章小结 …… 142
思考题 …… 142
参考文献 …… 143
第6章 微服务软件架构 …… 144
6.1 软件架构的发展 …… 144
6.1.1 单体架构 …… 144
6.1.2 分层架构 …… 144
6.1.3 SOA架构 …… 146
6.1.4 分布式架构 …… 148
6.2 现代应用的12范式 …… 150
6.3 什么是微服务架构 …… 150
6.4 微服务架构的特征 …… 151
6.4.1 通过服务组件化 …… 152
6.4.2 围绕业务能力组织 …… 152
6.4.3 是产品不是项目 …… 153
6.4.4 智能端点和哑管道 …… 153
6.4.5 去中心化治理 …… 154
6.4.6 去中心化数据管理 …… 154
6.4.7 基础设施自动化 …… 155
6.4.8 为失效设计 …… 155
6.4.9 进化式设计 …… 155
6.5 微服务核心模式 …… 156
6.5.1 服务注册与发现 …… 156
6.5.2 配置中心 …… 157
6.5.3 API网关 …… 157
6.5.4 熔断器 …… 158
6.5.5 分布式追踪 …… 160
本章小结 …… 161
思考题 …… 162
参考文献 …… 162
第7章 容器技术基础 …… 163
7.1 内核基础 …… 163
7.1.1 Linux namespace …… 164
7.1.2 Linux CGroup …… 168
7.2 Docker架构概览 …… 169
7.2.1 Client …… 170
7.2.2 Docker Daemon …… 171
7.2.3 Docker Registry …… 172
7.2.4 Graph …… 173
7.2.5 Driver …… 173
7.2.6 libcontainer …… 173
7.3 镜像管理 …… 174
7.3.1 什么是Docker镜像 …… 174
7.3.2 Dockerfile、Docker镜像和Docker容器的关系 …… 174
7.3.3 Dockerfile …… 176
7.4 Docker网络管理 …… 178
7.4.1 Docker网络模式 …… 178
7.4.2 libnetwork和Docker网络 …… 179
7.4.3 Docker的内置Overlay网络 …… 180
7.5 Docker存储 …… 181
7.5.1 Docker存储驱动 …… 181
7.5.2 Docker驱动比较 …… 182
7.6 Docker编排 …… 183
7.6.1 Docker Swarm …… 183
7.6.2 Kubernetes …… 185
本章小结 …… 186
思考题 …… 186
参考文献 …… 187
第8章 基于容器技术的DevOps实践 …… 188
8.1 概述 …… 188
8.2 代码管理 …… 188
8.2.1 Git介绍 …… 190
8.2.2 Git工作流程 …… 191
8.3 持续交付流水线 …… 194
8.3.1 预备步骤 …… 194
8.3.2 实现持续交付流水线 …… 199
8.3.3 持续交付最佳实践 …… 201
8.3.4 检查列表 …… 204
8.4 持续集成工具 …… 205
8.4.1 传统的CI工具 …… 205
8.4.2 云计算环境中的CI工具 …… 206
8.4.3 用于移动应用的CI工具 …… 206
8.4.4 使用Docker的CI工具 …… 207
8.5 Java应用持续交付实践举例 …… 207
8.5.1 持续集成 …… 207
8.5.2 持续部署 …… 209
8.5.3 版本管理 …… 211
本章小结 …… 212
思考题 …… 212
参考文献 …… 212
第9章 DevOps工具集 …… 214
9.1 概述 …… 214
9.2 协同开发工具 …… 215
9.2.1 JIRA …… 215
9.2.2 Kanboard …… 216
9.2.3 Rally …… 218
9.3 持续集成工具 …… 219
9.3.1 Jenkins …… 219
9.3.2 Bamboo …… 220
9.3.3 Travis CI …… 220
9.4 版本管理工具 …… 221
9.4.1 Git …… 221
9.4.2 GitHub …… 223
9.4.3 GitLab …… 223
9.4.4 Subversion …… 223
9.4.5 Mercurial …… 223
9.5 编译工具 …… 224
9.5.1 Ant …… 224
9.5.2 Maven …… 225
9.5.3 Gradle …… 226
9.5.4 MSBuild …… 226
9.6 配置管理工具 …… 227
9.6.1 Chef …… 227
9.6.2 Puppet …… 228
9.6.3 Ansible …… 228
9.7 测试工具 …… 228
9.7.1 JUnit …… 228
9.7.2 Selenium …… 229
9.7.3 Cucumber …… 229
9.7.4 FitNesse …… 230
9.8 监控工具 …… 231
9.8.1 Nagios …… 231
9.8.2 Zabbix …… 231
9.9 工具网址 …… 232

本目录推荐