前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业常用的几种发布方式(蓝绿发布 | 滚动升级 | 金丝雀发布)

企业常用的几种发布方式(蓝绿发布 | 滚动升级 | 金丝雀发布)

作者头像
憧憬博客
发布2020-07-21 10:32:10
2.4K0
发布2020-07-21 10:32:10
举报
文章被收录于专栏:憧憬博客分享

部署是将服务的某个版本投入生产环境的过程。部署的总体目标是:对系统用户产生最小影响的情况下,把服务的升级版本投放到生产环境中。

服务变更的主要原因

  • 1、修复错误
  • 2、提高服务的质量
  • 3、增加新的功能

服务变更需要注意哪些(或者说如何产生最小影响)?

SRE 经验告诉我们,大概 70% 的生产事故由某种部署的变更而触发。变更管理的最佳实践可使用自动化来完成以下几点:

  • 1、部署尽可能在用户少的时候。
  • 2、每次部署前备份原始数据。
  • 3、采用渐进式发布机制。
  • 4、迅速而准确地检测到问题的发生。
  • 5、当出现问题时,安全迅速地回退改动。

常用部署方式存在以下几种:

  • 蓝绿部署
  • 滚动部署
  • 灰度部署/金丝雀部署

蓝绿部署

正常将项目分为两组, 蓝组和绿组, 正常运转的情况下每组承载 50% 的流量. 当准备发布服务时, 将蓝组流量设置为0%, 将绿组空闲出来, 将服务部署到绿组的机器, 然后利用SLB将流量切换到绿组的机器, 让绿组来运行业务, 没问题的话流量全部导向绿组, 把蓝组也进行服务更新

优点

  • 更新过程无需停机,风险较少
  • 回滚方便,只需要更改路由或者切换DNS服务器,效率较高

缺点

  • 需要部署两套机器,费用开销大
  • 在非隔离的机器(Docker、VM)上操作时,可能会导致蓝绿环境被摧毁风险
  • 负载均衡器/反向代理/路由/DNS处理不当,将导致流量没有切换过来情况出现

滚动部署

生产中的N台机器都为版本A的机器, 部署取出一个或者多个服务器停止服务,执行更新版本B,更新后重新将其投入使用,继续不断更新其他机器,直到集群中所有的实例都更新成版本B。这个其实就是K8S里面的更新策略

流程

  • 1、负载均衡或者路由移除一台或者多台实例(正常监控也需要移除)
  • 2、移除后的实例开始更新
  • 3、上线测试后无异常开始接入负载均衡器或者路由
  • 4、新增实例监控
  • 5、继续上线后一批实例,直到集群中所有的实例都更新

优点

  • 更新过程体验影响少,风险较少
  • 费用对比蓝绿花费开销较少,无需额外新增机器

缺点

  • 上线/回滚完成时间相对较慢
  • 需要监控和负载均衡器的移除和接入能力

金丝雀部署(灰度发布)

以前旷工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。

金丝雀发布一般先发布一台, 或者小比例, 例如2%的服务器进行流量验证,国内也称为金丝雀测试, 流量测试通过, 慢慢将剩余机器也进行发布, 可以达到一个平滑过渡效果.

灰度发布可以保证整体系统的稳定性, 在初始灰度的时候就可以发现 调整以保证其影响度

流程

  • 首先部署少量服务器密切
  • 观察是否因为版本产生预期结果
  • 当结果满意时候再全量部署

优点

  • 用户体验影响小,金丝雀发布过程出现问题只影响少量用户

缺点

  • 发布自动化程度不够,发布期间可引发服务中断
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务变更的主要原因
  • 服务变更需要注意哪些(或者说如何产生最小影响)?
  • 常用部署方式存在以下几种:
  • 蓝绿部署
    • 优点
      • 缺点
      • 滚动部署
        • 流程
          • 优点
            • 缺点
            • 金丝雀部署(灰度发布)
              • 流程
                • 优点
                  • 缺点
                  相关产品与服务
                  负载均衡
                  负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档