SlideShare a Scribd company logo
1 of 29
通向敏捷的钥匙
- 持续集成入门
谢列平 2014-2-25
持续集成入门 – 目标


了解
什么是软件持续集成
 为什么在软件开发中要开展持续集成
 如何开展持续集成




能简单使用Jenkins搭建持续集成环境
持续集成入门 – 概要


什么是软件持续集成



为什么要开展持续集成



如何开展持续集成



使用Jenkins部署持续集成环境
什么是软件持续集成

持续

持续
集成
集成
什么是持续集成 – 持续


越频繁越好??



按需
根据软件需求
 配合硬件条件
 结合人员经验

什么是持续集成 – 集成
• 集成 ≠ 打包
• 集成需要验证
• 模块集成
• 功能/性能
• 内部接口
• 系统集成
• 功能/性能/压力/稳定性
• 外部接口
• 用户界面
为什么要开展持续集成
为什么要开展持续集成(续)
为什么要开展持续集成(续)
为什么要开展持续集成(续)
为什么要开展持续集成(续)


更快地发现软件潜在问题



更容易地解决发现的问题



软件质量更透明化



更快速频繁地发布软件
如何开展持续集成 – 持续集成如何工作
如何开展持续集成 – 需要做些什么


搞定人!!!
统一的思想认识
 明确的分工职责
 公平的权利义务




评估
分析现状
 制定短期和长期目标

如何开展持续集成 – 需要做些什么(续)


统一的代码版本管理库
Single source repository



自动化编译,打包和部署
Automate build and deployment



自动化测试
Automate tests



全程对团队透明
Make all transparency
如何开展持续集成 – 需要注意什么


鼓励频繁地提交代码



保持每次构建的稳定性



保持每次构建反馈的及时性



确保每次失败的构建及时修复
持续集成小结
软件工程实践

全面验证

快速反馈

及时修复

统一的版本库

频繁提交代码

全程自动化

透明
使用JENKINS搭建持续集成环境
使用JENKINS搭建持续集成环境(续)


网易杭研 – Jenkins
开源
 丰富的插件
 完善的API
 自由的扩展

使用JENKINS搭建持续集成环境(续)

部署

系统配置

集成

Job配置

流水线配置
配置JENKINS – JOB


Job就是定义了在什么样的情况下,在什么地方做些
什么样的事情


Trigger(什么情况下)



Node(什么地方)



Build(做什么)
Pre-build action
 Build action
 Post-build action

配置JENKINS – JOB – TRIGGER


基于时间



基于事件
SCM
 文件
 其他job

配置JENKINS – JOB – NODE


默认是任意一个可用的节点



可以使用指定的节点
指定一个节点
 指定某些节点
 排除某些节点

配置JENKINS – JOB – BUILD


Pre-build



Build



Post-build
配置JENKINS – 流水线视图
配置JENKINS – 流水线视图(续)


一致的代码
产生一次构建物
 使用同个构建物




串并联相结合
确定关键点
 最大化利用设备
 优化测试用例

持续集成流水线小测验
编译/打包

编译/打包

静态代码
检查

单元测试

单元测试

冒烟测试

冒烟测试

功能测试

冒烟测试

功能测试

静态代码
检查

编译/打包

单元测试

静态代码
检查

非功能测试

功能测试

非功能测试
后续相关课程
持续集成入门

More Related Content

What's hot (7)

與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
 
FrzWorks 機構典藏平台
FrzWorks 機構典藏平台FrzWorks 機構典藏平台
FrzWorks 機構典藏平台
 
前端&服务器
前端&服务器前端&服务器
前端&服务器
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
 
(2020-04)HPE SimpliVity node 關機
(2020-04)HPE SimpliVity node 關機(2020-04)HPE SimpliVity node 關機
(2020-04)HPE SimpliVity node 關機
 
第1章
第1章第1章
第1章
 
2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论 2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论
 

Similar to 持续集成入门

打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
奕孝 陳
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
areyouok
 
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
ITband
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
天青 王
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
netdbncku
 
IBM PureFlex (Traditional Chinese)
IBM PureFlex (Traditional Chinese)IBM PureFlex (Traditional Chinese)
IBM PureFlex (Traditional Chinese)
Jerry Huang
 
J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)
Allan Huang
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
Qiao Liang
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
浒 刘
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
浒 刘
 

Similar to 持续集成入门 (20)

打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
打造完全免費的,JAVA專案持續整合環境_ 2013 java developer_day_by 李書豪
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
2017-refactoring-01-簡介
2017-refactoring-01-簡介2017-refactoring-01-簡介
2017-refactoring-01-簡介
 
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
 
分会场九Windows 7迁移最佳实践
分会场九Windows 7迁移最佳实践分会场九Windows 7迁移最佳实践
分会场九Windows 7迁移最佳实践
 
持续交付最佳实践——百度技术沙龙201110
持续交付最佳实践——百度技术沙龙201110持续交付最佳实践——百度技术沙龙201110
持续交付最佳实践——百度技术沙龙201110
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
IBM PureFlex (Traditional Chinese)
IBM PureFlex (Traditional Chinese)IBM PureFlex (Traditional Chinese)
IBM PureFlex (Traditional Chinese)
 
J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)J2EE Performance Monitor (Profiler)
J2EE Performance Monitor (Profiler)
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac
 
TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學TDD (Test-driven development, 測試驅動開發) 基本教學
TDD (Test-driven development, 測試驅動開發) 基本教學
 

持续集成入门

Editor's Notes

  1. 持续集成是一种软件工程实践,是为了提高软件开发的效率
  2. Automate everything, including compilation/packaging/deployment and all level tests (exploratory testing can be excluded)