ReturnTmp's Blog ReturnTmp's Blog
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ReturnTmp

分享有趣好玩的计算机知识
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Jenkins | VuePress博客自动化部署
  • 三步教你轻松安装配置 Linux Anaconda 环境
  • Windows SSH 远程连接 Linux
  • VuePress 数学公式支持
  • 一文教你如何防御数据库渗透入侵
  • WSL2 Ubuntu20.04 配置 CUDA
  • 前端开发部署运维笔记
  • 运维监控指南
  • 如何使用『Nginx』配置后端『HTTPS』协议访问
  • 华为云云耀云服务器L实例评测|搭建您的私人影院网站
  • 华为云云耀云服务器L实例评测|服务器反挖矿防护指南
  • 华为云云耀云服务器L实例评测|Git 私服搭建指南
  • VSCode『SSH』连接服务器『GUI界面』传输
  • 『硅云』海外云服务器购买指南
  • GitHub Unfork 指南
  • 摆脱推荐算法,实现万物皆可『RSS』
  • Drone 指南
  • 教你如何『SSH』远程连接『内网』服务器
  • 『GitHub Actions』静态博客部署指南
  • Nginx 配置路径解析
  • 『pnpm』多项目环境迁移指南
  • Nginx 403 forbidden 问题
  • 你知道『SSH』为什么安全吗
  • 手把手教你如何给『Linux』打补丁
  • KVM Anolis OS 环境搭建
  • Docker 快速搭建 MySQL 高可用集群
  • RabbitMQ 入门指南(安装,配置,应用)
  • linux JDK8 环境配置
  • 发布策略
    • Spring Cloud Gateway + Nacos 灰度发布
    • Nginx 负载均衡集群 节点健康检查
    • 前端监控搭建
    • 运维监控系统
    • MySQL 可视化监控
    • MySQL 死锁问题排查与解决
    • Zookeeper Windows 安装配置(单机 - 集群)
    • 阿里云服务器镜像迁移
    • git clone 失败问题
    • Couldn't find ffmpeg or avconv 问题
    • 运维笔记
    ReturnTmp
    2023-12-22
    目录

    发布策略

    # 发布策略

    # 分类

    蓝绿部署、滚动发布、灰度发布/金丝雀发布、红黑部署

    # 介绍

    蓝绿部署,是指同时运行两个版本的应用,如上图所示,蓝绿部署的时候,并不停止掉老版本,而是直接部署一套新版本,等新版本运行起来后,再将流量切换到新版本上。但是蓝绿部署要求在升级过程中,同时运行两套程序,对硬件的要求就是日常所需的二倍,硬件配置要求高

    滚动发布,能够解决掉蓝绿部署时对硬件要求增倍的问题。所谓滚动升级,就是在升级过程中,并不一下子启动所有新版本,是先启动一台新版本,再停止一台老版本,然后再启动一台新版本,再停止一台老版本,直到升级完成,这样的话,如果日常需要10 台服务器,那么升级过程中也就只需要11 台就行了。

    但是滚动升级有一个问题,在开始滚动升级后,流量会直接流向已经启动起来的新版本,但是这个时候,新版本是不一定可用的,比如需要进一步的测试才能确认。那么在滚动升级期间,整个系统就处于非常不稳定的状态,如果发现了问题,也比较难以确定是新版本还是老版本造成的问题。

    为了解决这个问题,我们需要为滚动升级实现流量控制能力。

    灰度发布/金丝雀发布,起源是,矿井工人发现,金丝雀对瓦斯气体很敏感,矿工会在下井之前,先放一只金丝雀到井中,如果金丝雀不叫了,就代表瓦斯浓度高。

    在灰度发布开始后,先启动一个新版本应用,但是并不直接将流量切过来,而是测试人员对新版本进行线上测试,启动的这个新版本应用,就是我们的金丝雀。如果没有问题,那么可以将少量的用户流量导入到新版本上,然后再对新版本做运行状态观察,收集运行时数据,如果此时对新旧版本做各种数据对比,就是所谓的A/B 测试。

    红黑部署,与蓝绿部署类似,红黑部署也是通过两个集群完成软件版本的升级。

    当前提供服务的所有机器都运行在红色集群 A 中,当需要发布新版本的时候,具体流程是这样的:

    • 先在云上申请一个黑色集群 B,在 B 上部署新版本的服务;
    • 等到 B 升级完成后,我们一次性地把负载均衡全部指向 B;
    • 把 A 集群从负载均衡列表中删除,并释放集群 A 中所有机器。

    这样就完成了一个版本的升级。

    可以看到,与蓝绿部署相比,红黑部署只不过是充分利用了云计算的弹性伸缩优势,从而获得了两个收益:一是,简化了流程;二是,避免了在升级的过程中,由于只有一半的服务器提供服务,而可能导致的系统过载问题。

    编辑 (opens new window)
    上次更新: 2024/01/02, 01:26:45
    linux JDK8 环境配置
    Spring Cloud Gateway + Nacos 灰度发布

    ← linux JDK8 环境配置 Spring Cloud Gateway + Nacos 灰度发布→

    最近更新
    01
    百度网盘加速
    03-24
    02
    新版 PyCharm 设置 Conda 虚拟环境
    03-24
    03
    腾讯云域名转到阿里云
    03-24
    更多文章>
    Theme by Vdoing | Copyright © 2023-2024 ReturnTmp | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式