Upload
liang-bo
View
344
Download
0
Embed Size (px)
Citation preview
持续集成梁博 [email protected]
COURSE INTRODUCTION
DAY 01• 持续集成概述• 持续集成实现• 持续集成案例• Gerrit介绍• Jenkins介绍
DAY 02• 持续集成流程• 使用持续集成环境
• Lab
梁博 在云计算领域有8年以上的项⺫⽬目经验,Python, Golang资深开发⼈人员,熟悉包括OpenStack、Docker在内的云计算相关产品的架构, 具有在中⼤大型集成项⺫⽬目容器、虚拟化和⺴⽹网络虚拟化相关架构设计和项⺫⽬目实施经验,曾负责设计实施过国内⾸首个基于OpenStack的公有云平台和Docker的集成,并在OpenStack⾹香港峰会、Docker Meetup上做过专题报告,有丰富的培训和咨询服务经验。
[email protected]://github.com/onetownhttp://liangbo.me
Infrastructure 90%
Storage, Network, Virtualization ,Container 40%
Front-end, HTML, CSS, Javascript 60%
Python, C Sharp, Go-lang Development 90%Liang Bo (TRYSTACK.CN架构师)
CI介绍
课程介绍
•传统的开发方式•持续集成的意义•课程范围
开发模型
• Waterfall 瀑布
开发模型
• Scrum
Scrum Roles
• Scrum Master• Product Owner• Team
持续集成
为什么 CI
•快速反馈•减少项目风险•每个人都是项目的Owner•持续开发•将一些重复的事情交给机器去做
CI最佳实践
•单一代码仓库•经常提交 (Commit Often)•让你的Build可以自动化测试•自动构建•快速构建
持续集成的实现
Developer: 提交
Developer: Review
Review
Demo 1
• Simple Project• Add Issue• Add Tests• Commit code• Review• Submit
持续集成案例OpenStack Development
OpenStack -‐ Gerrit
Review with Jenkins Gate
OpenStack CI Practice
• Launchpad• Git• Gerrit• Zuul• Jenkins
Workflow
Jenkins 介绍
什么是Jenkins
• Open Source CI-‐Server•配置简单•可扩展• 300+插件• 全球20,000多个部署
为什么使用Jenkins
•图形化界面管理•活跃的社区和生态系统•分布式构建•开源并且免费!!
谁在使用Jenkins
快速增长的Jenkins
人才需求
基本功能
• Notice Change•自动Check out 代码•执行构建或测试•纪录并发布执行结果•通知开发人员或者测试人员
CI Overview
Notice a Change
•定期构建•依赖关系•关联代码版本控制工具• Push & Pull
Check out代码
• SVN• CVS• Git• Mercurial
执行构建和测试
• Java• Ant• Maven• Gradle
• .NET• MSBuild• PowerShell
• Scripts• Python • Ruby• PHP
纪录并发布执行结果
• JUnit• TestNG• FindBugs• CheckStyle
通知
• Twitter• Email• RSS• IM• IDE
Zuul介绍
什么是Zuul
Gating
Trigger
•当事件发生时出发某一任务• Timer 定时出发•可以基于内部事件生成新的任务
Merger
•将Change合并到主分支
Gerrit介绍
什么是Gerrit
•源自Android的项目管理•基于SSH•通过Hook的方式关联ID
为什么使用Gerrit
•设定开发流程•强制审核•使用开发者分支
开发实践
Questions?