百度持续交付之旅 -百度技术沙龙16

30
持续交付的魅力 乔梁@百度.项目管理部 百度持续集成经验分享

Transcript of 百度持续交付之旅 -百度技术沙龙16

Page 1: 百度持续交付之旅 -百度技术沙龙16

持续交付的魅力

乔梁@百度.项目管理部

百度持续集成经验分享

Page 2: 百度持续交付之旅 -百度技术沙龙16

2

自我介绍

– 百度项目管理部

• 高级架构师

– InfoQ

• 敏捷社区 特约编辑

• 《持续集成》专栏作者

– 曾就职于ThoughtWorks多年

• 资深咨询师

• 产品Go的交付经理

– 《Continuous Delivery》的译者

乔梁

Page 3: 百度持续交付之旅 -百度技术沙龙16

3

什么是持续集成

Page 4: 百度持续交付之旅 -百度技术沙龙16

4

持续集成是

• 一项软件开发实践

• 团队的成员频繁集成他们的工作

• 通常每人每天至少集成一次

• 每次集成都通过自动化构建验证

Page 5: 百度持续交付之旅 -百度技术沙龙16

5

Outline

- 持续集成,从哪里开始1

2 - 持续交付,追求卓越

Page 6: 百度持续交付之旅 -百度技术沙龙16

6

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 7: 百度持续交付之旅 -百度技术沙龙16

7

1- 持续集成,从哪里开始

Page 8: 百度持续交付之旅 -百度技术沙龙16

8

原有的开发模式

Page 9: 百度持续交付之旅 -百度技术沙龙16

9

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 10: 百度持续交付之旅 -百度技术沙龙16

10

主干开发,分支发布

参见:http://www.infoq.com/cn/articles/devops-not-legend

Page 11: 百度持续交付之旅 -百度技术沙龙16

11

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 12: 百度持续交付之旅 -百度技术沙龙16

12

六步提交法

二级构建阶段

提交构建

第二次本地验证第一次本地验证

1

23

4

4’

5

6

其他人员的提交

图片来自 InfoQ的文章《持续集成之戏说Check-in Dance》

链接为 http://www.infoq.com/cn/news/2011/01/ci-check-in-dance

关键在于:提交之前要做本地验证。

Page 13: 百度持续交付之旅 -百度技术沙龙16

13

编译依赖本地管理

Page 14: 百度持续交付之旅 -百度技术沙龙16

14

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 15: 百度持续交付之旅 -百度技术沙龙16

15

测试代码与产品代码同源

Page 16: 百度持续交付之旅 -百度技术沙龙16

16

自动化测试分级

系统测试

模块测试

单元测试

参见http://www.infoq.com/cn/news/2011/02/ci-test-triangle

Page 17: 百度持续交付之旅 -百度技术沙龙16

17

Analysis+Design

Development

Test + Demo

0 1 N N+1迭代

Agile Team

Hardening

Centralized QA

Release and Operations

IT Operator

图片由Jez Humble提供

最后一公里

效果

Page 18: 百度持续交付之旅 -百度技术沙龙16

18

2- 持续交付,追求卓越

Page 19: 百度持续交付之旅 -百度技术沙龙16

19

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 20: 百度持续交付之旅 -百度技术沙龙16

20

一键式部署

参见:http://www.infoq.com/cn/news/2011/07/ci-automatic-deployment

Page 21: 百度持续交付之旅 -百度技术沙龙16

21

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 22: 百度持续交付之旅 -百度技术沙龙16

22

脚本及配置放入版本库

参见:http://www.infoq.com/cn/news/2011/07/ci-automatic-deployment

Page 23: 百度持续交付之旅 -百度技术沙龙16

23

持续交付

配置管理

发布管理

环境与

部署

测试

数据管理

构建集成

配置与发布管理模型,来自《持续交付》第15章,参见

http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/

Page 24: 百度持续交付之旅 -百度技术沙龙16

24

配置开关项

Page 25: 百度持续交付之旅 -百度技术沙龙16

25

• 建立了全自动的、可靠的持续发布流水线

• 产品发布周期从9天缩短到3天

Page 26: 百度持续交付之旅 -百度技术沙龙16

26

由Jez Humble提供

持续交付,追求卓越

持续且有节奏地向生产环境部署

Development

Testing

Deployment

Page 27: 百度持续交付之旅 -百度技术沙龙16

27

小结

• 主干开发

• 代码同源

• 分级测试

• 所有内容版本控制

• 功能开关

• 一键式部署

Page 28: 百度持续交付之旅 -百度技术沙龙16

28

让持续交付成为现实

• 持续集成和版本控制

• 全流程自动化

• 环境标准化

• 通过版本控制一键式发布更多实践与方法,请参见

《持续交付:Continuous Delivery》。

Page 29: 百度持续交付之旅 -百度技术沙龙16

29

Q&A

微博: http://weibo.com/2036045341

博客: http://blog.csdn.net/tony1130

邮件: [email protected]

MSN: [email protected]

中文站:www.continuousdelivery.info

乔梁

Page 30: 百度持续交付之旅 -百度技术沙龙16

关注我们:t.baidu-tech.com

资料下载和详细介绍:infoq.com/cn/zones/baidu-salon

InfoQ 策划·组织·实施

关注我们:weibo.com/infoqchina

“畅想•交流•争鸣•聚会”是百度技术沙龙的宗旨。 百度技术沙龙是由百度与InfoQ中文站定期组织的线下技术交流活动。目的是让中高端技术人员有一个相对自由的思想交流和交友沟通的的平台。主要分讲师分享和OpenSpace两个关键环节,每期只关注一个焦点话题。 讲师分享和现场Q&A让大家了解百度和其他知名网站技术支持的先进实践经验,OpenSpace环节是百度技术沙龙主题的升华和展开,提供一个自由交流的平台。针对当期主题,参与者人人都可以发起话题,展开讨论。