简单易懂!掌握四种主流微服务部署方法:蓝绿切换、滚动更新、灰度测试与金丝雀式发布
最编程
2024-07-25 07:58:19
...
蓝绿部署是不停老版本,部署新版本,然后进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。
蓝绿部署无需停机,并且风险较小。
第一步、部署版本1的应用(一开始的状态)
所有外部请求的流量都打到这个版本上。
第二步、部署版本2的应用
版本2的代码与版本1不同(新功能、Bug修复等)。
第三步、将流量从版本1切换到版本2。
第四步、如版本2测试正常,就删除版本1正在使用的资源(例如实例),从此正式用版本2。
从过程不难发现,在部署的过程中,我们的应用始终在线。并且,新版本上线的过程中,并没有修改老版本的任何内容,在部署期间,老版本的状态不受影响。这样风险很小,并且,只要老版本的资源不被删除,理论上,我们可以在任何时间回滚到老版本。
- 当你切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果你的数据库后端无法处理,会是一个比较麻烦的问题。
- 可能会出现需要同时处理“微服务架构应用”和“传统架构应用”的情况,如果在蓝绿部署中协调不好这两者,还是有可能会导致服务停止。
- 需要提前考虑数据库与应用部署同步迁移 /回滚的问题。
- 蓝绿部署需要有基础设施支持。
- 在非隔离基础架构( VM 、Docker 等)上执行蓝绿部署,蓝色环境和绿色环境有被摧毁的风险。