运维发布和上线的方式

1.蓝绿部署

概念
蓝绿部署分为两个版本,蓝色版本是指正在使用的版本,绿色版本是指将要发布的新版本,通过在两个版本中切换流量来实现版本的更新。更新的时候,蓝色版本仍然在提供服务,绿色版本进行升级,测试通过后,删除老版本,将流量切换到新版本。

部署过程
(1)部署蓝色版本的应用
所有外部请求的流量都打到这个版本上。
(2)部署绿色版本的应用
绿色版本的代码与蓝色版本不同
(3)将流量从蓝色版本切换到绿色版本。
(4)如绿色版本测试正常,就删除蓝色版本正在使用的资源,从此正式用绿色版本。

优点和缺点
优点
在这种方式下,不需要停机。部署新版本进行测试,等测试通过后,将流量切换到新版本,删除老版本。

缺点
会产生额外的维护、配置成本,服务器本身运行也需要成本支出。

2.灰度部署(金丝雀发布)

概念
灰度部署又叫金丝雀发布,是采用从0到1,能够平滑过渡的一种发布方式。它对用户有筛选的分流机制,将新版本只对少量用户开放,大多数用户依然维持使用老版本,不同版本应用共存。

为什么灰度发布要叫金丝雀发布?
相传在17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。

部署过程
(1)准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。
(2)从负载均衡列表中移除掉“金丝雀”服务器。
(3)升级“金丝雀”应用(排掉原有流量并进行部署)。
(4)对应用进行自动化测试。
(5)将“金丝雀”服务器重新添加到负载均衡列表中(连通性和健康检查)。
(6)如果“金丝雀”在线使用测试成功,升级剩余的其他服务器。(否则就回滚)

优点和缺点
优点
降低风险,通过少数用户量发现问题并及时解决问题。

缺点
时间成本高,整个灰度部署从前期的灰度策略到最后上线需要消耗很长的时间。

3.滚动部署

概念
一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。比蓝绿部署节约资源,但是服务器节点数量多,会很慢。
部署过程
(1)发布一台金丝雀,主要做流量验证。
(2)需要准备好发布工具和智能LB,平滑的版本替换和流量的拉入拉出。
(3)每次发布先将老版本V1流量从LB移除,然后清楚老版本,发新版本V2,再将LB流量接入新版本。
(4)一次滚动式发布一般由若干个发布批次组成,每批次发布数量可配置。并且每批次之间有时间间隔,所以导致滚动发布过程比较缓慢。
(5)回退,发布的逆过程,所以一样缓慢。
优点和缺点
优点
不用停止服务器就可以更新,比较节省资源。

缺点
整个系统会有新旧并存的情况,出现问题时,无法保证一个稳定的线上环境;部署时间不可把控、回滚困难;对做好不同版本与数据库、缓存等兼容性问题要求很高。

4.红黑部署

概念
这是Netflix采用的部署手段,Netflix的主要基础设施是在AWS上,所以它利用AWS的特性,在部署新的版本时,通过AutoScaling Group用包含新版本应用的AMI的LaunchConfiguration创建新的服务器。测试不通过,找到问题原因后,直接干掉新生成的服务器以及Autoscaling Group就可以,测试通过,则将ELB指向新的服务器集群,然后销毁掉旧的服务器集群以及AutoScaling Group。

特点
服务始终在线,同时采用不可变部署的方式,也不像蓝绿部署一样得保持冗余的服务始终在线。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值