思特沃克学院小小读书会

《持续交付》 - 应用程序的部署与发布

2017-06-13  本文已影响22人  司鑫

对于已经通过自动化测试后的软件来说,接下来就会进行软件的部署和发布,对软件的部署和发布,它们都遵循着相同的流程,并以自动化的形式去执行。它们的不同之处在它们的运行环境不一致,但最重要的是二者的回滚能力不同。

一 创建发布策略


在进行程序的部署和发布时,我们必须要在这之前制定部署和发布的策略,最合适的制定时间应该是在项目开始阶段,这个阶段项目组成员应该一起达成共识并制定相应的策略,并在整个周期中对该文档进行更新和维护。对于一个发布策略的文档内容我们可以包括:

1、发布计划

对于第一次软件发布,风险是很大的,往往会遇到一些不可预测的问题,所以我们应该对整个发布过程以及失败后如何快速回滚制定一个策略。

二 应用程序的部署和升级


为了让软件的部署可以以一种可靠且一致的方式进行,我们就必须要解放双手,避免过多的人为操作,这也就意味着我们应该去写脚本,让部署成为自动化。

1、首次部署

首次部署发生在第一个迭代结束时,即给客户演示第一个简单的用户故事的时候。在第一个迭代中,我们应该选择一个最优的 MVP,尽可能快的去实现第一次部署,这么做的目的是为了让部署流线的前几个阶段跑通,从中我们还可以得到:

2、对发布过程进行构建并让构建晋级

构建晋级就是可以看到部署流水线上的所有构建的状态,可以选择合适的构建版本到任意的版本,也可以通过一个单击按钮来进行部署。发布的细节:

3、配置的晋级
4、联合环境
5、部署到试运行环境

三 部署回滚和零停机发布


1、通过重新部署原有的版本来进行回滚
2、零停机发布(热部署)
3、蓝绿部署

进行部署时先部署在蓝环境上,在蓝环境上一切正常后,只需要简单的修改下路由,让绿环境导向蓝环境即可。但数据库的调转则需要先将绿数据库设置可读、备份到蓝数据库,在执行迁移,把用户切换到蓝数据库上。

4、金丝雀发布

在生产环境及其庞大的话,导致创建出一个有效的容量测试环境是非行困难的,那么就应该用到金丝雀发布。即把应用程序的某个版本部署到生产环境中的部分服务器中,从而得到快速反馈。这样做的好处是:

上一篇 下一篇

猜你喜欢

热点阅读