运维发布和上线的方式

运维发布和上线的方式

滚动部署

基本概念

逐步替换线上应用实例的版本

实现方式

从LB控制用户到应用实例的请求,如某服务共计10个实例,每次更新两2个实例,则首先从负载均衡上摘除两个实例并更新,升级完毕后在LB中重新接入这两个实例,然后依次升级全部实例。

优点和缺点

滚动部署的实现原理简单,其作为一种常用的应用更新方式,在使用的过程中具备以下优缺点:

优点
可以保持0 downtime ,实现了不停服更新
相对某些部署方式比较节省资源
缺点
在一段时间内,线上运行两个不同版本,出现问题时,无法保证一个稳定的线上环境
部署时间不可控、回滚困难
对做好不同版本与数据库、缓存等兼容性问题要求很高

蓝绿部署

基本概念

蓝绿部署涉及两个生产环境,蓝色环境指当前正在使用的生产环境,绿色环境指将要发布新版本的环境(热备环境),通过在两个生产环境中切换流量来实现应用版本的更新。应用更新时,蓝色环境仍然对外提供服务,绿色环境升级应用版本,测试通过后,通过负载均衡变更,将流量指向绿色环境。

实现方式

在负载均衡上配置两个分组A和B(通常一个是offline,一个是online),对offline环境中的应用进行版本更新,并最终将该环境接入线上(online)。

优点和缺点

优点
在蓝绿发布的部署的方式中,无需停机,不停止老的版本,另外弄一套新的版本,等测试发现新版本之后,就把老版本删除,运用新版本
在说明流量管理,在部署新版本之前,需要将部署新版本的流量切断,全部弄到老版本上。
缺点
冗余会产生的额外维护、配置的成本,以及服务器本身运行的开销
不同环境之间切换时,新版本应用是否能对切换前用户的请求产生正确的响应

灰度部署/金丝雀发布

基本概念

灰度发布是采用从0到1、平滑过渡的方式完成应用发布,类似于蓝绿部署,但又不完全相同。灰度发布采用对用户有筛选的分流机制,将新版本应用只针对少量用户开放,在保障整体系统稳定的情况下,尽早发现、调整问题,这种方式也叫金丝雀发布。

实现方式

最简单的灰度发布可以在负载均衡处设置权重来控制。在负载均衡下,设置一个分组,该分组就是用来根据少量用户来提供新功能、版本测试的金丝雀分组。金丝雀分组有2台nginx服务器,权重为1;另外一个分组有4台nginx服务器,权重为2,整个金丝雀分组就能分担12/(24+1*2)=0.2 即20%的用户流量了。

优点和缺点

优点
在技术上降低风险,通过小用户量发现问题并去解决问题
降低峰压,全量上线一个新功能可能导致流量陡增,对后端服务器造成很大压力
缺点
时间成本高,整个灰度从前期的灰度策略直到最后完全上线要耗费很大的时间
同时维护新旧两套代码、两套配置,以及版本之间的耦合问题

跨区域部署/灾备部署

基本概念

跨区域服务部署就是将业务部署在不同区域的两个或多个机房
跨区域部署一方面提升用户体验,让用户访问到离自己最近的数据中心;同时这也是一种灾备的考量,可以应对机房断电、自然灾害等严重事故,提升服务的可用性。

优点和缺点

优点
提升用户体验
提高了整个业务的容灾能力
类似于蓝绿发布多分组发布的优点
缺点
跨区域部署如何处理数据同步的问题
应用更新时,单机房承受能力
资源冗余、成本较高

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值