—— 持续交付的魅力乔梁@百度 . 项目管理部
– 百度项目管理部  • 高级架构师– InfoQ  • 敏捷社区 特约编辑  • 《持续集成》专栏作者– 《持续交付》的译者                 中文站:www.continuousdelivery.info
Agenda A real story @ Baidu Devops and Continuous Delivery
Context     a complex softwareecosystem
Context一个复杂的软件生态系统
Context 7 Devs + 2 QAs + 0.3 OP c/c++ legacy code (10 years old) 7+ modules few automation tests for a single module ...
6个月前 3个月的大版本发布              Pray 紧急修复较多 紧急需求
now        3 周小版本发布        紧急修复很少        没有紧急需求Play
Pray       Play
6个月前多分支并行
持续集成
主干开发 只在发布时拉分支        release 1.1   release 1.2trunk
6个月前手工测试
内建质量           业务导向的                 演示    功能验收测试     易用性测试支               探索性测试     评持开                        判发        ...
内建质量           业务导向的     自动化           手工                 演示    功能验收测试     易用性测试支               探索性测试     评持开             ...
6个月前手工部署
一切皆版本控制 应用配置信息 环境配置信息 数据信息 环境标准化 单一部署脚本
6个月前铁路警察
 共同的目标 频繁、高效地沟通 共担一些KPI
What we got now
Details            模块级            子系统级         系统级           试运行             发布A   Commit    AcceptanceB   Commit    Accep...
A            每天          每周         三周B   子系统测试        系统测试        试运行        生产环境G        自动                    手动
自动化部署流水线部署流水线(deployment pipeline):   是软件系统的构建、部署、测试和审批过程的自动化实现。    可视化    可跟踪    易审计
持续交付        small feature chunks                               Time1. 每次提交代码的质量都达到生产环境可部署2. 小步增量发布
Lesson learned 软件的发布过程必须是可重复、可信赖的 把几乎所有环节都做成自动化 把所有内容都纳入版本控制 让痛苦提前,并不断练习 内建质量 “完成”就意味着“已发布” 所有人对交付负责 持续改进,需要耐心
Lesson learned 只构建一次二进制包 在每个环境上都使用相同的方式部署 对部署结果进行冒烟测试 每种部署环境都应该尽可能相似 任何地方出现失败,都要立刻停工
devops?
Agile  Continuous  Integration        Value Stream
devopsAgile  Continuous  Integration        Value Stream
devopshttp://en.wikipedia.org/wiki/DevOps
devops = culture + tools
Culture
Tools automation  – environment provisioning     • (Puppet, Chef, ControlTier, etc)  – app deployment & data migration   ...
Q&A     We are hiring now.               Email: pmo@baidu.com@乔梁QLhttp://blog.csdn.net/tony1130qiaoliang.email@gmail.com  ...
持续交付最佳实践——百度技术沙龙201110
Upcoming SlideShare
Loading in …5
×

持续交付最佳实践——百度技术沙龙201110

1,887 views
1,755 views

Published on

release cycle is down to 3 weeks @baidu

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,887
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
62
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

持续交付最佳实践——百度技术沙龙201110

  1. 1. —— 持续交付的魅力乔梁@百度 . 项目管理部
  2. 2. – 百度项目管理部 • 高级架构师– InfoQ • 敏捷社区 特约编辑 • 《持续集成》专栏作者– 《持续交付》的译者 中文站:www.continuousdelivery.info
  3. 3. Agenda A real story @ Baidu Devops and Continuous Delivery
  4. 4. Context a complex softwareecosystem
  5. 5. Context一个复杂的软件生态系统
  6. 6. Context 7 Devs + 2 QAs + 0.3 OP c/c++ legacy code (10 years old) 7+ modules few automation tests for a single module deploy to 170+ boxes
  7. 7. 6个月前 3个月的大版本发布 Pray 紧急修复较多 紧急需求
  8. 8. now  3 周小版本发布  紧急修复很少  没有紧急需求Play
  9. 9. Pray Play
  10. 10. 6个月前多分支并行
  11. 11. 持续集成
  12. 12. 主干开发 只在发布时拉分支 release 1.1 release 1.2trunk
  13. 13. 6个月前手工测试
  14. 14. 内建质量 业务导向的 演示 功能验收测试 易用性测试支 探索性测试 评持开 判发 项 单元测试 非功能验收测试 目过 集成测试 (容量、 的程 系统测试 安全,… …)的 技术导向的
  15. 15. 内建质量 业务导向的 自动化 手工 演示 功能验收测试 易用性测试支 探索性测试 评持开 判发 项 单元测试 非功能验收测试 目过 集成测试 (容量、 的程 系统测试 安全,… …)的 自动化 自动/手工 技术导向的
  16. 16. 6个月前手工部署
  17. 17. 一切皆版本控制 应用配置信息 环境配置信息 数据信息 环境标准化 单一部署脚本
  18. 18. 6个月前铁路警察
  19. 19.  共同的目标 频繁、高效地沟通 共担一些KPI
  20. 20. What we got now
  21. 21. Details 模块级 子系统级 系统级 试运行 发布A Commit AcceptanceB Commit Acceptance Interface Interface . . Ping . . Acceptance performance performanceC Commit Acceptance . . function function . .G Commit Acceptance
  22. 22. A 每天 每周 三周B 子系统测试 系统测试 试运行 生产环境G 自动 手动
  23. 23. 自动化部署流水线部署流水线(deployment pipeline): 是软件系统的构建、部署、测试和审批过程的自动化实现。  可视化  可跟踪  易审计
  24. 24. 持续交付 small feature chunks Time1. 每次提交代码的质量都达到生产环境可部署2. 小步增量发布
  25. 25. Lesson learned 软件的发布过程必须是可重复、可信赖的 把几乎所有环节都做成自动化 把所有内容都纳入版本控制 让痛苦提前,并不断练习 内建质量 “完成”就意味着“已发布” 所有人对交付负责 持续改进,需要耐心
  26. 26. Lesson learned 只构建一次二进制包 在每个环境上都使用相同的方式部署 对部署结果进行冒烟测试 每种部署环境都应该尽可能相似 任何地方出现失败,都要立刻停工
  27. 27. devops?
  28. 28. Agile Continuous Integration Value Stream
  29. 29. devopsAgile Continuous Integration Value Stream
  30. 30. devopshttp://en.wikipedia.org/wiki/DevOps
  31. 31. devops = culture + tools
  32. 32. Culture
  33. 33. Tools automation – environment provisioning • (Puppet, Chef, ControlTier, etc) – app deployment & data migration • (Capistrano, DBdeploy, etc) – logging & monitoring • (Splunk, Nagios, Munin, etc)
  34. 34. Q&A We are hiring now. Email: pmo@baidu.com@乔梁QLhttp://blog.csdn.net/tony1130qiaoliang.email@gmail.com http://www.continuousdelivery.info

×