计算机
类型
6.8
豆瓣评分
可以朗读
语音朗读
115千字
字数
2019-04-01
发行日期
展开全部
主编推荐语
软件工程生产力独到见解,Jenkins pipeline入门实践,持续集成与交付,ChatOps自动化运维。
内容简介
本书首先介绍笔者对软件工程生产力的独到见解。其次通过一个Hello world带领初学者入门Jenkins pipeline。接着详细介绍Jenkins pipeline的语法,以及在Jenkins pipeline中如何实现持续集成、持续交付中各个阶段,包括构建、测试、制品管理、部署等;在发现现有pipeline的步骤不能满足需求时,扩展Jenkins pipeline多种方式。本书第17章介绍了Jenkins如何整合多个第三方系统,以实现ChatOps及自动化运维。为避免读者“不知从哪下手”的情况,本书通过一个简单的案例介绍从无到有的设计pipeline。
目录
- 封面
- 作者简介
- 版权页
- 前言
- 目录
- 1 关于软件工程生产力
- 1.1 从另一个角度看“提高软件工程生产力”
- 1.1.1 从劳动力要素考虑提高软件工程生产力
- 1.1.2 从劳动对象要素考虑提高软件工程生产力
- 1.1.3 从生产工具要素考虑提高软件工程生产力
- 1.1.4 生产力三要素的意义
- 1.2 Jenkins介绍
- 1.3 Jenkins与DevOps
- 1.4 本章小结
- 2 pipeline入门
- 2.1 pipeline是什么
- 2.2 Jenkinsfile又是什么
- 2.3 pipeline语法的选择
- 2.4 创建第一个pipeline
- 2.5 从版本控制库拉取pipeline
- 2.6 使用Maven构建Java应用
- 2.7 本章小结
- 3 pipeline语法讲解
- 3.1 必要的Groovy知识
- 3.2 pipeline的组成
- 3.2.1 pipeline最简结构
- 3.2.2 步骤
- 3.3 post部分
- 3.4 pipeline支持的指令
- 3.5 配置pipeline本身
- 3.6 在声明式pipeline中使用脚本
- 3.7 pipeline内置基础步骤
- 3.7.1 文件目录相关步骤
- 3.7.2 制品相关步骤
- 3.7.3 命令相关步骤
- 3.7.4 其他步骤
- 3.7.5 小贴士
- 3.8 本章小结
- 4 环境变量与构建工具
- 4.1 环境变量
- 4.1.1 Jenkins内置变量
- 4.1.2 自定义pipeline环境变量
- 4.1.3 自定义全局环境变量
- 4.2 构建工具
- 4.2.1 构建工具的选择
- 4.2.2 tools指令介绍
- 4.2.3 JDK环境搭建
- 4.2.4 Maven
- 4.2.5 Go语言环境搭建
- 4.2.6 Python环境搭建
- 4.3 利用环境变量支持更多的构建工具
- 4.4 利用tools作用域实现多版本编译
- 4.5 本章小结
- 5 代码质量
- 5.1 静态代码分析
- 5.1.1 代码规范检查
- 5.1.2 使用PMD进行代码规范检查
- 5.1.3 各静态代码分析器之间的区别
- 5.2 单元测试
- 5.2.1 JUnit单元测试报告
- 5.2.2 JaCoCo实现代码覆盖率
- 5.2.3 代码覆盖率越高,软件的质量就越高吗
- 5.3 性能测试
- 5.3.1 准备性能测试环境
- 5.3.2 运行JMeter测试
- 5.4 SonarQube:持续代码质量检查
- 5.4.1 Maven与SonarQube集成
- 5.4.2 Jenkins与SonarQube集成
- 5.4.3 使用SonarQube Scanner实现代码扫描
- 5.4.4 SonarQube集成p3c
- 5.4.5 将分析报告推送到GitLab
- 5.5 Allure测试报告:更美观的测试报告
- 5.5.1 Allure测试报告介绍
- 5.5.2 集成Allure、Maven、Jenkins
- 5.6 当我们谈质量时,谈的是什么
- 5.7 本章小结
- 6 触发pipeline执行
- 6.1 什么是触发条件
- 6.2 时间触发
- 6.2.1 定时执行:cron
- 6.2.2 轮询代码仓库:pollSCM
- 6.3 事件触发
- 6.3.1 由上游任务触发:upstream
- 6.3.2 GitLab通知触发
- 6.3.3 在pipeline中实现GitLab trigger
- 6.4 将构建状态信息推送到GitLab
- 6.5 使用Generic Webhook Trigger插件实现触发
- 6.5.1 从Webhook请求中提取参数值
- 6.5.2 触发具体某个Jenkins项目
- 6.5.3 根据请求参数值判断是否触发Jenkins项目执行
- 6.5.4 控制打印内容
- 6.5.5 控制响应
- 6.6 本章小结
- 7 多分支构建
- 7.1 创建多分支pipeline
- 7.2 根据分支部署到不同的环境
- 7.3 when指令的用法
- 7.4 GitLab trigger对多分支pipeline的支持
- 7.5 Generic Webhook Trigger插件在多分支pipeline场景下的应用
- 7.6 本章小结
- 8 参数化pipeline
- 8.1 什么是参数化pipeline
- 8.2 使用parameters指令
- 8.2.1 parameters指令支持的参数类型
- 8.2.2 多参数
- 8.3 由另一个pipeline传参并触发
- 8.4 使用Conditional BuildStep插件处理复杂的判断逻辑
- 8.5 使用input步骤
- 8.5.1 input步骤的简单用法
- 8.5.2 input步骤的复杂用法
- 8.6 小贴士
- 8.6.1 获取上游pipeline的信息
- 8.6.2 设置手动输入步骤超时后,pipeline自动中止
- 8.7 本章小结
- 9 凭证管理
- 9.1 为什么要管理凭证
- 9.2 凭证是什么
- 9.3 创建凭证
- 9.4 常用凭证
- 9.4.1 Secret text
- 9.4.2 Username with password
- 9.4.3 Secret file
- 9.4.4 SSH Username with private key
- 9.5 优雅地使用凭证
- 9.6 使用HashiCorp Vault
- 9.6.1 HashiCorp Vault介绍
- 9.6.2 集成HashiCorp Vault
- 9.7 在Jenkins日志中隐藏敏感信息
- 9.8 本章小结
- 10 制品管理
- 10.1 制品是什么
- 10.2 制品管理仓库
- 10.3 过渡到制品库
- 10.4 管理Java栈制品
- 10.4.1 使用Maven发布制品到Nexus中
- 10.4.2 使用Nexus插件发布制品
- 10.5 使用Nexus管理Docker镜像
- 10.5.1 Nexus:创建Docker私有仓库
- 10.5.2 创建Docker私有仓库凭证
- 10.5.3 构建并发布Docker镜像
- 10.5.4 小贴士
- 10.6 管理原始制品
- 10.6.1 创建raw仓库
- 10.6.2 上传制品,获取制品
- 10.7 从其他pipeline中拷贝制品
- 10.8 版本号管理
- 10.8.1 语义化版本
- 10.8.2 版本号的作用
- 10.8.3 方便生成版本号的Version Number插件
- 10.9 小贴士
- 10.9.1 Nexus匿名用户权限问题
- 10.9.2 制品库的容量要大
- 10.10 本章小结
- 11 可视化构建及视图
- 11.1 Green Balls插件
- 11.2 Build Monitor View插件
- 11.3 使用视图
- 11.3.1 使用项目的维度建立视图
- 11.3.2 设置默认视图
- 11.4 本章小结
- 12 自动化部署
- 12.1 关于部署有什么好说的
- 12.1.1 部署不等于发布
- 12.1.2 什么是自动化部署
- 12.1.3 自动化运维工具解决的问题
- 12.2 Jenkins集成Ansible实现自动化部署
- 12.2.1 Ansible介绍
- 12.2.2 Jenkins与Ansible集成
- 12.2.3 Ansible插件详解
- 12.3 手动部署比自动化部署更可靠吗
- 12.4 如何开始自动化部署
- 12.5 小贴士
- 12.6 本章小结
- 13 通知
- 13.1 邮件通知
- 13.1.1 使用Jenkins内置邮件通知功能
- 13.1.2 使用Email Extension插件发送通知
- 13.2 钉钉通知
- 13.3 HTTP请求通知
- 13.4 本章小结
- 14 分布式构建与并行构建
- 14.1 Jenkins架构
- 14.2 增加agent
- 14.2.1 对agent打标签
- 14.2.2 通过JNLP协议增加agent
- 14.2.3 通过JNLP协议增加Windows agent
- 14.2.4 通过Swarm插件增加agent
- 14.2.5 agent部分详解
- 14.2.6 小结
- 14.3 将构建任务交给Docker
- 14.3.1 在Jenkins agent上安装Docker
- 14.3.2 使用Docker
- 14.3.3 配置Docker私有仓库
- 14.4 并行构建
- 14.4.1 在不同的分支上应用并行构建
- 14.4.2 并行步骤
- 14.4.3 并行阶段与并行步骤之间的区别
- 14.5 本章小结
- 15 扩展pipeline
- 15.1 为什么要扩展pipeline
- 15.2 在pipeline中定义函数
- 15.3 使用共享库扩展
- 15.3.1 创建共享库
- 15.3.2 使用共享库
- 15.3.3@Library的更多用法
- 15.3.4 共享库结构详细介绍
- 15.3.5 使用共享库实现pipeline模板
- 15.4 通过Jenkins插件实现pipeline步骤
- 15.4.1 生成Jenkins插件代码骨架
- 15.4.2 启动Jenkins测试:mvn hpi:run
- 15.4.3 在Jenkinsfile中使用 greet步骤
- 15.4.4 全局配置插件
- 15.5 本章小结
- 16 Jenkins运维
- 16.1 认证管理
- 16.1.1 使用Jenkins自带的用户数据库
- 16.1.2 使用LDAP认证
- 16.2 授权管理
- 16.2.1 使用Role-based Authorization Strategy插件授权
- 16.2.2 管理角色
- 16.2.3 权限大全
- 16.2.4 角色分配
- 16.2.5 小结
- 16.3 Jenkins监控
- 16.3.1 使用Monitoring插件监控
- 16.3.2 使用Prometheus监控
- 16.4 Jenkins备份
- 16.4.1 JENKINS_HOME介绍
- 16.4.2 使用Periodic Backup插件进行备份
- 16.5 汉化
- 16.6 Jenkins配置即代码
- 16.7 使用init.groovy配置Jenkins
- 16.8 本章小结
- 17 自动化运维经验
- 17.1 小团队自动化运维实践经验
- 17.1.1 先做监控和告警
- 17.1.2 一开始就应该做配置版本化
- 17.1.3 Jenkins化:将打包工作交给Jenkins
- 17.1.4 将制品交给Nexus管理
- 17.1.5 让Jenkins帮助我们执行Ansible
- 17.1.6 小结
- 17.2 ChatOps实践
- 17.2.1 Rocket.Chat
- 17.2.2 Hubot
- 17.2.3 Hubot与Jenkins集成
- 17.2.4 Jenkins推送消息到Rocket.Chat
- 17.3 本章小结
- 18 如何设计pipeline
- 18.1 设计pipeline的步骤
- 18.2 以X网站为例,设计pipeline
- 18.3 X网站pipeline详解
- 18.3.1 尽可能将所有的具体操作都隐藏到共享库中
- 18.3.2 只生成一次制品
- 18.3.3 对不同环境采用同一种部署方式
- 18.3.4 配置版本化
- 18.3.5 系统集成测试
- 18.3.6 如何实现指定版本部署
- 18.3.7 主干开发,分支发布
- 18.4 本章小结
- 后记
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。