44
续集成 梁博 [email protected]

99cloud openstack ci

Embed Size (px)

Citation preview

Page 1: 99cloud openstack ci

持续集成梁博 [email protected]

Page 2: 99cloud openstack ci

COURSE INTRODUCTION

DAY 01• 持续集成概述• 持续集成实现• 持续集成案例• Gerrit介绍• Jenkins介绍

DAY 02• 持续集成流程• 使用持续集成环境

• Lab

Page 3: 99cloud openstack ci

梁博 在云计算领域有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架构师)

Page 4: 99cloud openstack ci

CI介绍

Page 5: 99cloud openstack ci

课程介绍

•传统的开发方式•持续集成的意义•课程范围

Page 6: 99cloud openstack ci

开发模型

• Waterfall  瀑布

Page 7: 99cloud openstack ci

开发模型

• Scrum  

Page 8: 99cloud openstack ci

Scrum  Roles

• Scrum  Master• Product  Owner• Team

Page 9: 99cloud openstack ci

持续集成

Page 10: 99cloud openstack ci

为什么 CI

•快速反馈•减少项目风险•每个人都是项目的Owner•持续开发•将一些重复的事情交给机器去做

Page 11: 99cloud openstack ci

CI最佳实践

•单一代码仓库•经常提交 (Commit  Often)•让你的Build可以自动化测试•自动构建•快速构建

Page 12: 99cloud openstack ci

持续集成的实现

Page 13: 99cloud openstack ci

Developer:  提交

Page 14: 99cloud openstack ci

Developer:  Review

Page 15: 99cloud openstack ci

Review

Page 16: 99cloud openstack ci

Demo  1

• Simple  Project• Add  Issue• Add  Tests• Commit  code• Review• Submit

Page 17: 99cloud openstack ci

持续集成案例OpenStack  Development  

Page 18: 99cloud openstack ci

OpenStack  -­‐ Gerrit

Page 19: 99cloud openstack ci

Review  with  Jenkins  Gate

Page 20: 99cloud openstack ci

OpenStack  CI  Practice

• Launchpad• Git• Gerrit• Zuul• Jenkins

Page 21: 99cloud openstack ci

Workflow

Page 22: 99cloud openstack ci

Jenkins  介绍

Page 23: 99cloud openstack ci

什么是Jenkins

• Open  Source  CI-­‐Server•配置简单•可扩展• 300+插件• 全球20,000多个部署

Page 24: 99cloud openstack ci

为什么使用Jenkins

•图形化界面管理•活跃的社区和生态系统•分布式构建•开源并且免费!!

Page 25: 99cloud openstack ci

谁在使用Jenkins

Page 26: 99cloud openstack ci

快速增长的Jenkins

Page 27: 99cloud openstack ci

人才需求

Page 28: 99cloud openstack ci

基本功能

• Notice  Change•自动Check  out  代码•执行构建或测试•纪录并发布执行结果•通知开发人员或者测试人员

Page 29: 99cloud openstack ci

CI  Overview

Page 30: 99cloud openstack ci

Notice  a  Change

•定期构建•依赖关系•关联代码版本控制工具• Push  &  Pull

Page 31: 99cloud openstack ci

Check  out代码

• SVN• CVS• Git• Mercurial

Page 32: 99cloud openstack ci

执行构建和测试

• Java• Ant• Maven• Gradle

• .NET• MSBuild• PowerShell

• Scripts• Python  • Ruby• PHP

Page 33: 99cloud openstack ci

纪录并发布执行结果

• JUnit• TestNG• FindBugs• CheckStyle

Page 34: 99cloud openstack ci

通知

• Twitter• Email• RSS• IM• IDE

Page 35: 99cloud openstack ci

Zuul介绍

Page 36: 99cloud openstack ci

什么是Zuul

Page 37: 99cloud openstack ci

Gating

Page 38: 99cloud openstack ci

Trigger

•当事件发生时出发某一任务• Timer  定时出发•可以基于内部事件生成新的任务

Page 39: 99cloud openstack ci

Merger

•将Change合并到主分支

Page 40: 99cloud openstack ci

Gerrit介绍

Page 41: 99cloud openstack ci

什么是Gerrit

•源自Android的项目管理•基于SSH•通过Hook的方式关联ID

Page 42: 99cloud openstack ci

为什么使用Gerrit

•设定开发流程•强制审核•使用开发者分支

Page 43: 99cloud openstack ci

开发实践

Page 44: 99cloud openstack ci

Questions?