99cloud openstack ci

Preview:

Citation preview

持续集成梁博 liangbo@trystack.cn

COURSE INTRODUCTION

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

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

• Lab

梁博 在云计算领域有8年以上的项⺫⽬目经验,Python, Golang资深开发⼈人员,熟悉包括OpenStack、Docker在内的云计算相关产品的架构, 具有在中⼤大型集成项⺫⽬目容器、虚拟化和⺴⽹网络虚拟化相关架构设计和项⺫⽬目实施经验,曾负责设计实施过国内⾸首个基于OpenStack的公有云平台和Docker的集成,并在OpenStack⾹香港峰会、Docker Meetup上做过专题报告,有丰富的培训和咨询服务经验。

liangbo@trystack.cnhttp://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?

Recommended