SlideShare a Scribd company logo
持续集成
梁博 liangbo@trystack.cn
COURSE INTRODUCTION
DAY 01
• 持续集成概述
• 持续集成实现
• 持续集成案例
• Gerrit 介绍
• Jenkins介绍
DAY 02
• 持续集成流程
• 使用持续集成环
境
• Lab
梁博 在云计算领域有8年以上的项⺫⽬目经验,Python, Golang资深开发⼈人员,熟悉
包括OpenStack、Docker在内的云计算相关产品的架构, 具有在中⼤大型
集成项⺫⽬目容器、虚拟化和⺴⽹网络虚拟化相关架构设计和项⺫⽬目实施经验,曾负责
设计实施过国内⾸首个基于OpenStack的公有云平台和Docker的集成,并在
OpenStack⾹香港峰会、Docker Meetup上做过专题报告,有丰富的培训和
咨询服务经验。
liangbo@trystack.cn
http://github.com/onetown
http://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?

More Related Content

What's hot

認識 Docker
認識 Docker認識 Docker
認識 Docker
協哲 蔡
 
Coscup 2018
Coscup 2018Coscup 2018
Coscup 2018
Yi Tseng
 
容器式基礎架構介紹
容器式基礎架構介紹容器式基礎架構介紹
容器式基礎架構介紹
Philip Zheng
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
Philip Zheng
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
Philip Zheng
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
 
Kubernetes project update and how to contribute
Kubernetes project update and how to contributeKubernetes project update and how to contribute
Kubernetes project update and how to contribute
inwin stack
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgitRhythm Sun
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
Philip Zheng
 
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
 
Build your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource typeBuild your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource type
inwin stack
 
認識程式交易
認識程式交易認識程式交易
認識程式交易
Philip Zheng
 
理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享
Philip Zheng
 
[China merge world tour] Perforce Introducing Git Fusion
[China   merge world tour] Perforce Introducing Git Fusion[China   merge world tour] Perforce Introducing Git Fusion
[China merge world tour] Perforce Introducing Git Fusion
Perforce
 
20170905 dev ops in hiiir
20170905 dev ops in hiiir20170905 dev ops in hiiir
20170905 dev ops in hiiir
Isaac Tseng
 
GDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML APIGDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML API
Duran Hsieh
 
Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法
Philip Zheng
 
Qt gui编程
Qt gui编程Qt gui编程
Qt gui编程
hangang123
 
OpenStack ecosystem
OpenStack ecosystemOpenStack ecosystem
OpenStack ecosystem
OpenCity Community
 

What's hot (20)

認識 Docker
認識 Docker認識 Docker
認識 Docker
 
Coscup 2018
Coscup 2018Coscup 2018
Coscup 2018
 
容器式基礎架構介紹
容器式基礎架構介紹容器式基礎架構介紹
容器式基礎架構介紹
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
 
Kubernetes project update and how to contribute
Kubernetes project update and how to contributeKubernetes project update and how to contribute
Kubernetes project update and how to contribute
 
First meetingwithgit
First meetingwithgitFirst meetingwithgit
First meetingwithgit
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
 
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
 
Build your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource typeBuild your own kubernetes apiserver and resource type
Build your own kubernetes apiserver and resource type
 
認識程式交易
認識程式交易認識程式交易
認識程式交易
 
理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享
 
[China merge world tour] Perforce Introducing Git Fusion
[China   merge world tour] Perforce Introducing Git Fusion[China   merge world tour] Perforce Introducing Git Fusion
[China merge world tour] Perforce Introducing Git Fusion
 
20170905 dev ops in hiiir
20170905 dev ops in hiiir20170905 dev ops in hiiir
20170905 dev ops in hiiir
 
GDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML APIGDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML API
 
Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法
 
Qt gui编程
Qt gui编程Qt gui编程
Qt gui编程
 
Thesis Defense
Thesis DefenseThesis Defense
Thesis Defense
 
OpenStack ecosystem
OpenStack ecosystemOpenStack ecosystem
OpenStack ecosystem
 

Similar to 99cloud openstack ci

美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
美团点评技术团队
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
Tianwei Liu
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践
YuLing Liu
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
Wei Tung
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
ChinaNetCloud
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
Ray Lin
 
玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
Poy Chang
 
微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践
Weibo Corporation
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
Guangya Liu
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
Ko Ko
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
Miles Chou
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
Chen-Tien Tsai
 
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
Philip Zheng
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
twMVC
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Edward Kuo
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
Larry Cai
 
微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势
微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势
微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势
damacheng2
 
用简单语言构建复杂系统
用简单语言构建复杂系统用简单语言构建复杂系统
用简单语言构建复杂系统
Leo Zhou
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
Alex Su
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
Perry Tsai
 

Similar to 99cloud openstack ci (20)

美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
 
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
 
玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
 
微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
 
Langchain and Azure ML and Open AI
Langchain and Azure ML and Open AILangchain and Azure ML and Open AI
Langchain and Azure ML and Open AI
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势
微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势
微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势, 微服务眼中持续交付的最佳姿势
 
用简单语言构建复杂系统
用简单语言构建复杂系统用简单语言构建复杂系统
用简单语言构建复杂系统
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 

More from Liang Bo

99cloud training material
99cloud training material99cloud training material
99cloud training material
Liang Bo
 
Your first c# app on OpenStack
Your first c# app on OpenStackYour first c# app on OpenStack
Your first c# app on OpenStack
Liang Bo
 
99cloud Docker Training module 2
99cloud Docker Training module 299cloud Docker Training module 2
99cloud Docker Training module 2
Liang Bo
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
OpenStack Neutron Introduction
OpenStack Neutron IntroductionOpenStack Neutron Introduction
OpenStack Neutron Introduction
Liang Bo
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
Liang Bo
 
Docker with openstack
Docker with openstackDocker with openstack
Docker with openstack
Liang Bo
 

More from Liang Bo (7)

99cloud training material
99cloud training material99cloud training material
99cloud training material
 
Your first c# app on OpenStack
Your first c# app on OpenStackYour first c# app on OpenStack
Your first c# app on OpenStack
 
99cloud Docker Training module 2
99cloud Docker Training module 299cloud Docker Training module 2
99cloud Docker Training module 2
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
OpenStack Neutron Introduction
OpenStack Neutron IntroductionOpenStack Neutron Introduction
OpenStack Neutron Introduction
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
 
Docker with openstack
Docker with openstackDocker with openstack
Docker with openstack
 

99cloud openstack ci