DevOps – 持续交付
如果把DevOps的能力提升比作是登山的话,持续交付必然是为登山准备的最重要的工具包。虽然敏捷开发已经被大多数的软件企业所接受,但敏捷的实践必须能够和持续交付的能力结合起来才能做到真正的敏捷。毕竟,我们所做的任何工作都是为了实现价值交付。软件如果不能实现交付使用,那么它也只能是我们代码仓库的存储物。
“如果只修改一行代码,你的软件需要多长时间部署上线?” 我们先来看一下软件交付的基本流程:
从流程的角度来看,任何一个环节出现问题都可能导致一次失败的上线部署。编码质量不高、配置错误、测试不全面、部署考虑不周全都会造成最终的产品不可用,甚至造成巨大的经济损失。那么,在敏捷开发的过程中,持续交付又如何保障了价值交付?为了解决代码质量的问题,我们需要有充分的测试保障;为了避免手工错误,我们需要尽可能的自动化。但在实际的工作中,不是建立了一条自动化的流水线就能解决所有的问题,让敏捷过程和持续交付的实践结合起来,才能发挥最大的价值。一般情况下,持续交付的流水线跟上述开发、测试、部署过程是基本一致的,但在流水线的每个阶段都有其特殊的关注点。
一、持续交付的各个阶段