文章目录
  1. 1.环境准备#
  2. 2.LB配置#
  3. 3.发布切换#
  4. 1 蓝绿部署#
    1. 1.1 目的#
    2. 1.2 前提#
    3. 1.3 步骤#
      1. 1.3.1 配置蓝绿环境#
      2. 1.3.2 安装nginx#
      3. 1.3.3 配置nginx#
      4. 1.3.4 部署方式#

基于nginx的简易蓝绿发布

Blue/Green Deployment(蓝绿部署),又称为蓝绿发布,是一种通过切换蓝绿环境的方式实现新版本的不停机发布手法.通过这种方式可以实现应用的不停机升级,快速回滚等诸多好处.当然弊端是切换的瞬间对于尚未来得及响应的请求会丢失响应.

具体的做法是

  • 1.部署两套生产环境,我们称这两套环境分别为蓝色环境绿色环境.
  • 2.使用负载均衡指向其中一套环境(也可以都指向),当版本升级时 先将版本发布到备用环境中 ,进行有效性测试, 测试通过后,将需要升级的环境(如蓝色环境)流量全部导流到备用环境中,此时备用环境与原来的正式环境完成了一次角色互换.
  • 3.重新配置负载均衡.
  • 4.如需回滚将LB流量重新指向旧环境即可.

    当然,这里也可以让蓝绿两套环境同时支持线上, 思路是一样的, 核心的技术点仍然是通过nginx配置热加载完成导流实现.

1.环境准备#

  • nginx一份
  • tomcat两份(配置好端口并启动验证可访问)

2.LB配置#

nginx.conf配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  # ... 省略
http {
# ... 前面省略
upstream nginx_blue_green {
#蓝色环境
#server 127.0.0.1:8081 down;
#server 127.0.0.1:8080 weight=100;
#绿色环境
server 127.0.0.1:8080 down;
server 127.0.0.1:8081 weight=100;
}
# ... 中间省略
server {
location / {
proxy_pass http://nginx_blue_green;
}
}
# ... 后面省略
}

3.发布切换#

发布时只需要编辑nginx.conf注释解注对应蓝绿环境,然后使用nginx -s reload重新加载配置即可实现蓝绿切换.

————————————– 分割线 ————————————–

以下内容为word手册版

1 蓝绿部署#

1.1 目的#

为实现在线服务新版本的不停机更新,可以采用蓝绿部署的方式实现版本的平滑升级。

1.2 前提#

实现蓝绿部署需要同时配置两套tomca作为蓝绿发布环境,同时配置nginx作为负载。

1.3 步骤#

1.3.1 配置蓝绿环境#

解压附件包中的蓝绿环境tomcat

1.3.2 安装nginx#

解压附件中的nginx-1.15.2.tar.gz并执行如下命令

1.3.3 配置nginx#

使用whereis查看nginx安装的路径,通常在/usr/local/nginx下,修改nginx配置并使用如下配置替换原有配置内容

1.3.4 部署方式#

首次部署方式:
只需要按照章节4步骤部署一套应用即可,这里假设部署到tomcat-blue(8081),然后在nginx目录下使用 ./sbin/nginx启动nginx即可。

版本更新方式:

  1. 将新版本发布到绿色环境(tomcat-green),启动tomcat-green并验证是否可以访问,以及app是否可以正常使用。
  2. 确认绿色环境测试通过,修改nginx配置放开绿色环境相关配置的注释,同时注释蓝色环境相关配置的注释
  3. 使用 nginx -s reload 命令重新加载nginx配置完成蓝色环境到绿色环境的切换
  4. 关闭蓝色环境tomcat,准备下次部署使用。
  5. 如升级失败,修改nginx配置将负载重新指向蓝色环境即可。
支持一下
您得支持,是我前进的动力.