强烈建议对于线上的常驻后台服务都加上持续集成。

在我初步接触持续集成的这几个月来,最有体会的不是说都非得搞完美的单元测试和再上层一点的集成测试,而是确保当时项目依赖的软件环境版本配置是真的可以跑的。好处有很多,暂时想到以下五个意义:

  1. 软件部署得隔离(Python 我这边用的 Virtualenv),这意味着不能用 root 部署。同时项目依赖的文件目录得是可配置的。
  2. 新来同事拿到代码,至少TA可以照着持续集成的步骤把项目跑起来。
  3. 持续集成和代码质量是相辅相成的,会更加促进从整体上去思考整体项目的合理架构。
  4. 持续集成意味着对版本控制(hg, git)会更善加利用,比如良好的 commit 粒度。
  5. 可以跑的项目都直观的显示在 持续集成的管理界面,这样就可以更方便的知道别人的代码到底长啥样子:)

分享一下个人的持续集成案例,

  1. 开源的我用的是 Travis,比如 https://travis-ci.org/17zuoye/luiti 。
  2. 公司内部业务我用的是 buildbot。

项目是否需要加持续集成:

  1. 需要的。比如 Web 服务,定时数据生产,和业务剥离的代码库和框架,等等。
  2. 可不需要。比如 临时报表,日常的 SQL查询,等等。

持续集成的推荐软件:

  1. Python 用 buildbot http://buildbot.net/
  2. Java 一般用的是 Jenkins。