持续交付的魅力
百度持续集成经验分享

  乔梁@百度.项目管理部
自我介绍
                              2


乔梁
 – 百度项目管理部
     • 高级架构师

 – InfoQ
     • 敏捷社区 特约编辑
     • 《持续集成》专栏作者

 – 曾就职于ThoughtWorks多年
     • 资深咨询师
     • 产品Go的交付经理

 – 《Continuous Delivery》的译者
什么是持续集成
          3
持续集成是
                   4


• 一项软件开发实践
• 团队的成员频繁集成他们的工作
• 通常每人每天至少集成一次
• 每次集成都通过自动化构建验证
Outline
                    5




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



 2   - 持续交付,追求卓越
6


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
7




1- 持续集成,从哪里开始
原有的开发模式
          8
9


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
主干开发,分支发布
                                                       10




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


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
六步提交法
                                                                 12


其他人员的提交
                                            二级构建阶段
                                  6

  1           4             5         提交构建


      2
          3       4’
          第一次本地验证 第二次本地验证


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


                  图片来自 InfoQ的文章《持续集成之戏说Check-in Dance》
                  链接为 http://www.infoq.com/cn/news/2011/01/ci-check-in-dance
编译依赖本地管理
           13
14


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
测试代码与产品代码同源
              15
自动化测试分级
                                                        16




          系统测试

          模块测试


          单元测试




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



             Agile Team


          Analysis+Design         Centralized QA         IT Operator

            Development             Hardening        Release and Operations

             Test + Demo
                                                   最后一公里
迭代    0       1     N       N+1




                                                      图片由Jez Humble提供
18




2- 持续交付,追求卓越
19


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
一键式部署
                                                             20




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


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
脚本及配置放入版本库
                                                            22




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


              配置
              管理

构建                           发布
集成                           管理

             持续
             交付
数据                          环境与
管理                           部署

              测试


     配置与发布管理模型,来自《持续交付》第15章,参见
     http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
配置开关项
        24
25


•   建立了全自动的、可靠的持续发布流水线
•   产品发布周期从9天缩短到3天
持续交付,追求卓越
                         26




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



                     由Jez Humble提供
小结
             27


• 主干开发
• 代码同源
• 分级测试
• 所有内容版本控制
• 功能开关
• 一键式部署
让持续交付成为现实
                                    28


• 持续集成和版本控制
• 全流程自动化
• 环境标准化
                     更多实践与方法,请参见
• 通过版本控制一键式发布
                《持续交付:Continuous Delivery》。
Q&A
                                          29



  乔梁

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

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

      邮件: qiaoliang.email@gmail.com

      MSN: sagittatius@hotmail.com

      中文站:www.continuousdelivery.info
关注我们:t.baidu-tech.com

          资料下载和详细介绍:infoq.com/cn/zones/baidu-salon
“畅想•交流•争鸣•聚会”是百度技术沙龙的宗旨。 百度技术沙龙是由百度与InfoQ中文站定期组织的线下技术交流活动。目
的是让中高端技术人员有一个相对自由的思想交流和交友沟通的的平台。主要分讲师分享和OpenSpace两个关键环节,每期
只关注一个焦点话题。

讲师分享和现场Q&A让大家了解百度和其他知名网站技术支持的先进实践经验,OpenSpace环节是百度技术沙龙主题的升华
和展开,提供一个自由交流的平台。针对当期主题,参与者人人都可以发起话题,展开讨论。



                  InfoQ 策划·
                          组织·
                            实施
                  关注我们:weibo.com/infoqchina

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

  • 1.
  • 2.
    自我介绍 2 乔梁 – 百度项目管理部 • 高级架构师 – InfoQ • 敏捷社区 特约编辑 • 《持续集成》专栏作者 – 曾就职于ThoughtWorks多年 • 资深咨询师 • 产品Go的交付经理 – 《Continuous Delivery》的译者
  • 3.
  • 4.
    持续集成是 4 • 一项软件开发实践 • 团队的成员频繁集成他们的工作 • 通常每人每天至少集成一次 • 每次集成都通过自动化构建验证
  • 5.
    Outline 5 1 - 持续集成,从哪里开始 2 - 持续交付,追求卓越
  • 6.
    6 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 7.
  • 8.
  • 9.
    9 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 10.
    主干开发,分支发布 10 参见:http://www.infoq.com/cn/articles/devops-not-legend
  • 11.
    11 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 12.
    六步提交法 12 其他人员的提交 二级构建阶段 6 1 4 5 提交构建 2 3 4’ 第一次本地验证 第二次本地验证 关键在于:提交之前要做本地验证。 图片来自 InfoQ的文章《持续集成之戏说Check-in Dance》 链接为 http://www.infoq.com/cn/news/2011/01/ci-check-in-dance
  • 13.
  • 14.
    14 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 15.
  • 16.
    自动化测试分级 16 系统测试 模块测试 单元测试 参见http://www.infoq.com/cn/news/2011/02/ci-test-triangle
  • 17.
    效果 17 Agile Team Analysis+Design Centralized QA IT Operator Development Hardening Release and Operations Test + Demo 最后一公里 迭代 0 1 N N+1 图片由Jez Humble提供
  • 18.
  • 19.
    19 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 20.
    一键式部署 20 参见:http://www.infoq.com/cn/news/2011/07/ci-automatic-deployment
  • 21.
    21 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 22.
    脚本及配置放入版本库 22 参见:http://www.infoq.com/cn/news/2011/07/ci-automatic-deployment
  • 23.
    23 配置 管理 构建 发布 集成 管理 持续 交付 数据 环境与 管理 部署 测试 配置与发布管理模型,来自《持续交付》第15章,参见 http://www.continuousdelivery.info/index.php/2011/07/19/CDMM-V1/
  • 24.
  • 25.
    25 • 建立了全自动的、可靠的持续发布流水线 • 产品发布周期从9天缩短到3天
  • 26.
    持续交付,追求卓越 26 Development Testing Deployment 持续且有节奏地向生产环境部署 由Jez Humble提供
  • 27.
    小结 27 • 主干开发 • 代码同源 • 分级测试 • 所有内容版本控制 • 功能开关 • 一键式部署
  • 28.
    让持续交付成为现实 28 • 持续集成和版本控制 • 全流程自动化 • 环境标准化 更多实践与方法,请参见 • 通过版本控制一键式发布 《持续交付:Continuous Delivery》。
  • 29.
    Q&A 29 乔梁 微博: http://weibo.com/2036045341 博客: http://blog.csdn.net/tony1130 邮件: qiaoliang.email@gmail.com MSN: sagittatius@hotmail.com 中文站:www.continuousdelivery.info
  • 30.
    关注我们:t.baidu-tech.com 资料下载和详细介绍:infoq.com/cn/zones/baidu-salon “畅想•交流•争鸣•聚会”是百度技术沙龙的宗旨。 百度技术沙龙是由百度与InfoQ中文站定期组织的线下技术交流活动。目 的是让中高端技术人员有一个相对自由的思想交流和交友沟通的的平台。主要分讲师分享和OpenSpace两个关键环节,每期 只关注一个焦点话题。 讲师分享和现场Q&A让大家了解百度和其他知名网站技术支持的先进实践经验,OpenSpace环节是百度技术沙龙主题的升华 和展开,提供一个自由交流的平台。针对当期主题,参与者人人都可以发起话题,展开讨论。 InfoQ 策划· 组织· 实施 关注我们:weibo.com/infoqchina