思特沃克学院小小读书会ThoughtWorks欧亚创新工作室

《持续交付》 - 部署流水线解析

2017-06-08  本文已影响16人  司鑫

一 什么是部署流水线


部署流水线是指软件从版本控制库到用户手中这一过程的自动化表现形式。我们知道软件的每一次变更都会经历一个复杂的流程才能发布,这一流程包括软件的构建以及后续的一系列的测试和部署,而部署流水线相当于是在给这一过程进行建模。

书中说到创建一个新产品的抽象价值流程应该是:

  1. 产品的可行性评估
  2. 产品探索
  3. 产品计划与评估
  4. 开发
  5. 最后的测试与审核
  6. 发布

对于构建一个部署流水线来说,部署流水线只关注从开发到发布的价值流,这一流程的序列图如下:

序列图

二 部署流水线的相关实践


1、只生成以此二进制包

2、对不同环境采用同一部署方式

3、对部署进行冒烟测试
4、向生产环境的副本中部署

5、每次变更都要立即在流水线上传递
6、只要有环节失败,就停止整个流水线

三 提交阶段


每次的提交的测试通过了, 那么当前这个版本就被视为一个候选发布版本。一般来说,提交阶段分为以下几个步骤:

做了上述的几个步骤后,我们还需要关注一些非功能性的一些特性:

四 实现一个部署流水线


1、对价值流进行建模并创建简单的可工作框架
2、构建和部署过程的自动化
3、自动化单元测试和代码分析
单元测试的运行可以得到一些代码的分析数据,比如:代码覆盖率、圈复杂度、耦合度等。
4、自动化验收测试
功能测试和非功能测试,对于非功能测试应该在项目初期就开始,这样我们就可以很好的去分析当前的应用程序是否满足这些非功能的需求。
5、部署流水线的演进

上一篇 下一篇

猜你喜欢

热点阅读