持续交付实践介绍

一天超过50次的持续交付

有一家月收入百万美元的互联网公司IMVU, 每天超过50次的部署代码到生产环境。 其员工Timothy Fitz发表的 文章 介绍了他们的网站服务的持续交付过程。支撑如此高频度部署的是其成熟的 自组织团队运作和高效的自动化测试与部署系统。每一次的代码提交都会触发测试, 跑完所有测试需要大约9分钟,代码部署到所有生产服务器需要大概6分钟。这个过程中 没有手工的测试。

那么质量是如何得到保障的?得益于测试套件的丰富与彻底。
  1. 整个测试套件包括一千多个文件,约一万四千个测试案例,串行执行大概需要4小时。分散到36台服务器并行测试,在理想状态下, 最短执行时间是 4*60/36, 即大约7分钟。
  2. 大约四分之一以上的测试时间是基于Selenium的页面模拟点击测试。剩下的时间是对服务 的功能测试和对代码模块的单元测试。
  3. 每次代码提交都要求跑所有的测试,而且要求错误率不得超过百万分之一次。 一天大概70次的全面测试,差不多意味着每天会遇到一次出错的情况。

持续交付意味着唯速度论? 既是,也不是。持续交付是在满足业务、市场、 质量要求的前提之下的越快越好。

如何开始持续交付?

Timothy Fitz在2012年底发表的 持续交付之路 介绍了如何开始持续交付, 用五个短句来描述:

  1. 开发人员尽早提交代码
  2. 每次提交都触发全面测试
  3. 自动化部署代码
  4. 生产环境监控与告警
  5. 出现错误要分析根本原因 …

Continue Reading