基于Nginx+lua的蓝绿发布系统 | 少将全栈
  • 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 吐槽,投稿,删稿,交个朋友
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧

基于Nginx+lua的蓝绿发布系统

Java admin 7年前 (2018-03-24) 3287次浏览 已收录 扫描二维码

  一、什么是蓝绿发布

蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。

1、特点
蓝绿部署无需停机,并且风险较小。

2、蓝绿发布的注意事项
当你切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果你的数据库后端无法处理,会是一个比较麻烦的问题;

可能会出现需要同时处理“微服务架构应用”和“传统架构应用”的情况,如果在蓝绿部署中协调不好这两者,还是有可能会导致服务停止。
需要提前考虑数据库与应用部署同步迁移 /回滚的问题。
蓝绿部署需要有基础设施支持。
在非隔离基础架构( VM 、 Docker 等)上执行蓝绿部署,蓝色环境和绿色环境有被摧毁的风险。

二、为什么需要蓝绿发布系统

1、新项目和新需求非常多
2、新需求的上线过程是,先上线一台服务器然后观察会不会出问题,如果没有问题则全部上线。
3、分流是关键,但是动态分流是痛点。

三、老分流方案

基于Nginx+lua的蓝绿发布系统

方案存在的问题点:
1、nginx.conf配置文件里各种if、set和rewrite,并且容易配置出错。
2、修改完配置文件后,重启或者reload后才能生效。
3、不能实现太复杂的逻辑。
4、不能实现一些特殊分流方式。

四、新分流方案

基于Nginx+lua的蓝绿发布系统

功能说明:

单台压测结果:

基于Nginx+lua的蓝绿发布系统

作者:小程故事多
链接:https://www.jianshu.com/p/e2c4cb323b21
來源:简书
著作权归作者所有。

喜欢 (0)
[🍬谢谢你请我吃糖果🍬🍬~]
分享 (0)
关于作者:
少将,关注Web全栈开发、项目管理,持续不断的学习、努力成为一个更棒的开发,做最好的自己,让世界因你不同。