前言
不知道大家有了解过你们公司的软件产品是如何部署的么?采用的什么部署策略?其实在软件开发生命周期中,部署是非常关键的一环,你需要考虑多方面的因素,如何保证你部署对用户无感知?如何把影响范围控制到最小?如何出现问题快速的实现回滚?
现在的大多数应用程序都是云原生、微服务的方式。例如,淘宝,它就是由许许多多的子服务组成的。服务数量越多,意味着出现问题的可能性更大。那么部署的策略极为关键,高效部署的期望达成的目标有如下几点:
- 零停机
- 快速部署
- 客户对新版本的快速反馈
- 出现问题容易回滚
那么本文和大家分享3种微服务部署比较常见的3种部署策略,滚动部署、蓝绿部署和金丝雀部署。
滚动部署
上图显示了部署模式:旧版本以蓝色显示,新版本在集群中的每个服务器上以绿色显示。
在滚动部署中,应用程序的新版本逐渐替换旧版本。实际部署发生在一段时间内。在此期间,新旧版本将共存,不会影响功能使用和用户体验。此过程可以更轻松地回滚与旧组件不兼容的任何新组件。
优点:
- 减少停机时间:滚动部署允许以增量方式部署更新,从而减少应用程序的整体停机时间。这是因为应用程序在部署过程中对用户仍然