几种常用发布方式 平滑发布、灰度发布、蓝绿发布

2023-11-10

发布方式

1.平滑发布

在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问;保障服务一直可以持续使用

在单机模式下,启动多端口。如有

    upstream myapp{
          server 服务1:8080; //app1
          server 服务2:8080; //app2
    }

用负载均衡ngnix合理分配各个通道。可以通过修改ngnix配置先停止服务1,

   upstream myapp{
          server 服务1:8080 down; //app1
          server 服务2:8080; //app2
    }

这样Ngnix会将请求都发给服务2.

当服务1发布启动成功后用同样的步骤将服务2升级。这就是简单的平滑发布

可以使用nginx的宕机检测直接将服务1停止升级

设置代理超时为1秒,以便在某个应用停止时及时切换到另一个应用:
server {
    listen 80;
    server_name localhost;
    location /{
    proxy_pass http://myapp;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout       1;
    proxy_read_timeout          1;
    proxy_send_timeout          1;
    }
}

优点:

可以快速高效平滑的完成版本更新迭代

可以确认保障新版本服务能正常运行

出现问题不会影响全网用户,适合大规模应用发布

缺点:

发布和回滚周期较长

如果生产故障需要运行一段时间后出现,当全部进程升级成功后。没有版本可以及时回退。可能会导致生产不可以用。所以接下来介绍一下灰度发布

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

灰度发布似于平滑发布。但又有不一样的地方。

什么叫灰度:发布后让部分用户使用新版本,其它用户使用旧版本,逐步扩大影响范围,最终达到全部更新的发布方式 ;

这样发布可以快速将服务全部回滚回旧的服务。避免生产大规模服务宕机

灰度是用上面那种发布方式先升级一部分主机,确认一段时间运行后没问题再逐步全部修改。

优点:

可以快速高效平滑的完成部分主机的版本更新迭代

可以长时间确认保障新版本服务能正常运行

缺点:

全部版本更新缓慢,热版本无法快速马上上线

3.蓝绿发布

设置2个服务集群,一个为绿环境一个为蓝绿环境。绿环境为正常的生产环境,蓝绿环境为生产测试环境。当蓝绿测试通过后。可以将大部分应用的负载均衡、反向代理、路由指向蓝环境。如果运行良好,就可以删除绿环境使用的资源。如果运行出现了问题,可以通过负载均衡器指向快速回滚到绿色环境。

优点:升级切换和回退比发布回滚迅速
缺点:成本较高,需要部署两套环境。如果新版本中基础服务出现问题,会瞬间影响全网用户;如果新版本有问题也会影响全网用户

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

几种常用发布方式 平滑发布、灰度发布、蓝绿发布 的相关文章

随机推荐

  • 51单片机——八段数码管

    在对LED灯的应用有了一定的了解之后 我开始学习了一些关于数码管的应用 在我的开发板上 有独立共阳管和八位共阴管 数码管从高位到低位的段码依次是h dp g f e d c b a共八位 共阴管是 1 表示亮 0 表示灭 而共阳管则是相反的
  • TortoiseGit如何恢复本地删除的文件

    从Gitlab获取仓库到本地 本地仓库中某个文件不小心被删除 恢复操作如下 1 在本地仓库点击右键tortorisegit show log 2 选择版本 当时执行删除操作的版本 3 选择被delete掉的文件 状态为Missing 需要恢
  • HIVE SQL 计算留存率 思路

    问题 计算每日访问用户 在之后日期的留存数 基础表 每日访问用户ID create external table if not exists user visit date user id bigint comment 用户ID comme
  • 鸿蒙系统笔记

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 OpenHarmony整体分层 二 使用步骤 1 引入库 2 读入数据 总结 前言 主要是学习鸿蒙系统的个人笔记 笔记非常烂 一 OpenHarmony整
  • 华为手机一键刷新在哪里_华为手机怎么开启应用自动更新?华为手机WIFI下自动更新软件教程...

    玩手机稍微久点的朋友都知道 保持手机内的应用为最新版本 不但可以尽早地用上新功能 而且还能最大限度地保证手机的安全 当然了 如果每次手机开机都去检查安装的应用是否为最新版本 时间一长也难免烦不胜烦 要是能够让手机内的所有应用都能自动升级自然
  • Docker上安装DM8数据库

    Docker Docker是一种运行于Linux和Windows上的软件 用于创建 管理和编排容器 Docker官网 Empowering App Development for Developers DockerLearn how Doc
  • SQL数据结构timestamp

    既然遇到了 那就记录它吧 hairy377 在sqlyog中建表时 需要自动获取时间或者根据表的改变修改时间 可以使用timestamp数据结构 默认值 CURRENT TIMESTAMP 如果需要记录更新的时间 则勾上更新 这是在sqly
  • docker报错:WSL 2 installation is incomplete

    docker报错 WSL 2 installation is incomplete 错误原因 大概率是wsl未安装或者是未升级成wsl2 检查wsl版本方法 在powershell中使用命令wsl l v 我的已经是升级成了wsl2 所以V
  • 【Hbuilder+vue项目学习】新项目初建

    下载uView空白模板 下载包中的内容 导入在Hbuilder X中导入项目即可创建成功 在gitee上管理项目 填写好名称 介绍等信息 点击创建即可 点击HbuilderX下的终端图标 进行上传项目操作 emmm终端一片空白 用不了 网上
  • 视觉注意力的循环神经网络模型

    我们观察PPT的时候 面对整个场景 不会一下子处理全部场景信息 而会有选择地分配注意力 每次关注不同的区域 然后将信息整合来得到整个的视觉印象 进而指导后面的眼球运动 将感兴趣的东西放在视野中心 每次只处理视野中的部分 忽略视野外区域 这样
  • 神经网络中关于卷积池化的计算(不为整数时,卷积向下取整,池化向上取整)

    输入图片大小为200 200 依次经过一层卷积 kernel size 5 5 padding 1 stride 2 pooling kernel size 3 3 padding 0 stride 1 又一层卷积 kernel size
  • 1015 德才论 (25分)

    1015 德才论 25分 宋代史学家司马光在 资治通鉴 中有一段著名的 德才论 是故才德全尽谓之圣人 才德兼亡谓之愚人 德胜才谓之君子 才胜德谓之小人 凡取人之术 苟不得圣人 君子而与之 与其得小人 不若得愚人 现给出一批考生的德才分数 请
  • 【数模】时间序列分析

    时间序列也称动态序列 是指将某种现象的指标数值按照时间顺序排列而成的数值序列 时间序列分析大致可分成三大部分 分别是描述过去 分析规律和预测未来 本讲将主要介绍时间序列分析中 预测未来 常用的三种模型 并将结合Spss软件对时间序列数据进行
  • Docker - 实现本地镜像的导出、导入(export、import、save、load)

    目录 一 使用 export 和 import 1 查看本机的容器 2 导出镜像 3 导入镜像 二 使用 save 和 load 1 查看本机的容器 2 保存镜像 附 两种方案的差别 1 文件大小不同 2 是否可以对镜像重命名 3 是否可以
  • STM32实战项目—停车计费系统

    文章目录 一 任务要求 1 1 概述 1 2 串口收发 1 2 1 串口输出内容 1 2 2 串口接收内容 1 3 说明 二 实现思路 2 1 指令判别 2 1 车辆进入 2 2 车辆驶出 2 3 费率调整 三 程序设计 3 1 串口接收消
  • 强化学习算法实现自动炒股

    强化学习算法自动炒股 本文利用强化学习算法 PG 来对股票市场的指数进行交易研究 感兴趣的朋友可以在这个基础上导入其他市场的数据 添加 observation 的维度 本文仅使用了 当天收盘价 和 与前一天收盘价的差值 两个维度 操作 ac
  • linux当前目录作用,详解linux下mnt目录作用

    linux下mnt目录的作用 mount 英文解释 登上 爬上 攀登 骑上 乘上 跨上 可直接理解为 挂载 挂接光驱 USB设备的目录 加载后 会在mnt里多出相应设备的目录 mnt是mount的缩写 Mount命令 需要注意的 1 挂载点
  • 打印工资条怎么做到每个人都有表头明细_这两种工资条制作技巧,HR们不能不知道!...

    每月一到发薪日 给员工发送工资条的时候 HR们都被一大堆的数据和表格弄得焦头烂额 如何快速整理数据 制作工资条是每个HR都想得到的答案 本文就手把手地教大家如何利用excel或工资条生成器 快速地制作工资条 一起来看看吧 第一种 传统方式
  • 基于SpringBoot的网络海鲜市场系统的设计与实现

    网络海鲜市场系统管理数据的工具是MySQL 编码的语言是Java 运用的框架是Spring Boot框架 该系统可以实现对商品的购买 对论坛帖子的发布与回复论坛帖子 查看商品资讯 修改或删除购物车商品 对订单信息进行管理等功能 网络海鲜市场
  • 几种常用发布方式 平滑发布、灰度发布、蓝绿发布

    发布方式 1 平滑发布 在发布的过程中不影响用户的使用 系统不会因发布而暂停对外服务 不会造成用户短暂性无法访问 保障服务一直可以持续使用 在单机模式下 启动多端口 如有 upstream myapp server 服务1 8080 app