继续交付、敏捷、DevOps讲座感想(部署模式)
持续交付、敏捷、DevOps讲座感想(部署模式)
5月15日参加持续交付、敏捷、DevOps的理念实践讲座,其中一些内容非常有启发作用。整理了几个观点(理念、原则)进行分享。
- 敏捷迭代中开发的连续性,不应与明显的迭代分界(开始或结束): http://lzhted.iteye.com/blog/2211955
- 自动化测试策略和交付管道:http://lzhted.iteye.com/blog/2212646
- 部署模式
本文介绍第三点,三种部署模式:
- 蓝绿部署模式
- PHOENIX部署模式
- Canary部署模式
蓝绿部署模式可以按下图简单理解。生产环节部署分为两套环境(分别成为蓝环境和绿环境,数据是互通的),通过路由控制用户实际访问的环境,蓝绿环境的版本是一致的,或者其中一套是实际的生产系统,另一套是待上线(UAT、Beta)的最新版本环境。当最新版本通过验收决定发布后,只需要简单调整路由,就可以直接切换版本。
优点包括:1、上线快,用户感知非常小,甚至无感知;2、有利于提前在生产环节进行新功能的试点;3、有利于故障控制,任何一套环境出故障,可以非常方便地进行版本回滚和环境切换。
PHOENIX部署模式参见下图,与蓝绿模式的区别是,版本切换完之后,原环境资源被释放,有利于资源的循环利用。就像凤凰一样,一只鸟(一套系统)浴火重生之后,变成了更美丽的凤凰(一套新系统)。
Canary部署模式, 如下图所示,通过路由访问多个服务,这些服务在制定范围内提供了系统需要的功能。这些服务一般是相同版本,如有需要,也可以部署为不同的版本,用于A/B测试、性能测试等。Canary模式最大的好处,是使得在生产环境进行测试成为现实(某些产品必须在生产环节进行验证),当验证通过,可以部署所有的服务,如果验证失败,则可以进行版本回滚。参见:http://www.infoq.com/news/2013/03/canary-release-improve-quality