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

《持续交付》- 软件交付的问题

2017-06-04  本文已影响57人  司鑫

一 什么是持续交付


持续交付是一种开发实践,即频繁地将软件的最新版本交付给测试或者用户进行验证,如果验证通过,代码就可以随时部署到线上。

持续交付的中心模式是部署流水线,即将一个应用程序从构建、部署、测试到发布整个过程的自动化。部署流水线的三个目标:

二 开发中常见的反发布模式


1 手工部署软件

先来看看手工部署软件的一些常见的特征:

很显然,目前很多公司都没能去很好的重视自动化的测试、部署,他们一般都会认为去做这些会浪费很多时间,从而导致了在开发过程中遇到很多的不可预测的问题,在遇到这些问题时又不得不去花大量的精力去排查并修复。

而正确的流程应该是按一下部署按钮就可以进行部署,这样做的好处也是很明显的:

2 开发完之后才向生产环境部署

这对于维护人员无疑是一个噩梦。当开发完才第一次向生产环境去部署的话,可能导致很多不可预测的问题,比如:开发环境和生产环环境的差异、各种配置文件没能在生产环境中去测试 ...
正确的部署姿势应该是开发环境和生产环境应该尽量的保持一致,使得在生产环境上随时可以发布最新的版本。

3 生产环境的手工配置

自己在实习十也遇到了这类的问题,就是自己在本地跑的好好的,然后到生产环境上有的时候就出现了问题,而问题的产生就是有些配置文件的不统一而造成的。书中提到了将配置文件也进行统一的管理,对于配置的修改应该是自动化的,不应该是人为的手动修改。

对于上述的几种反发布模式我们应该是禁止采用的,我们应该采用部署流水线的方式,即找到一种高效、快速、可靠的方式交付高质量的软件,并实现自动化的测试和部署,以及全面的配置管理结合在一起,实现一键式软件发布

三 如何实现目标


为了实现我们的目标,即持续的交付高质量的软件,我们必须要做到频繁的自动化发布软件,这也就意味着频繁的反馈,反馈应该具备以下几个标准:

1 无论什么样的修改都应该触发反馈流程

这些修改包含了以下的修改:

当出现这些修改时,我们的自动化测试应该被立刻执行,而这些测试包括:

** 2 反馈应该尽快发出**

关键还是在于自动化而非手工。

** 3 交付团队必须接收反馈,并依据它做出行动响应**
4 这个流程可以推广吗

四 软件交付的原则


1 为软件的发布创建一个可重复且可靠的过程
2 将几乎所有的事情自动化
3 把所有的东西都纳入版本控制
4 提前并频繁的做让你感到痛苦的事
5 内建质量
6 “DONE”意味着“已发布”
7 交付过程是每个成员的责任
8 持续改进(戴明环:PDCA)

几个概念的解释:

戴明环的步骤和方法
上一篇 下一篇

猜你喜欢

热点阅读