• 6种应用部署策略对比


    一、部署策略种类

    应用发布策略或者叫部署策略(Deployment strategy),针对应用的部署形态、升级特征来划分类型,不同策略所需要的资源、技能、复杂度和面向的场景等等都有所差异。

    1.1 停机重建(Recreate)

    先停用V1版本,后在原资源上部署启用V2版本,演示如下。
    在这里插入图片描述

    1.2 滚动升级(Ramped、Rolling Update)

    V2版本实例加入集群,逐个/批替换V1版本实例,演示如下。
    在这里插入图片描述

    1.3 蓝绿部署/红黑部署(Blue/Green、Red/Black)

    先部署V2版本(绿),后接收V1版本(蓝)全部流量,演示如下。
    在这里插入图片描述

    1.4 灰度部署/金丝雀(Canary)

    V2版本接收部分流量,后接替V1版本全部流量,演示如下。
    在这里插入图片描述

    1.5 A/B测试(A/B test)

    V2版本接收特定条件(位置、浏览器等)的流量,演示如下。
    在这里插入图片描述

    1.6 影子测试(Shadow test)

    V2版本镜像A版本真实流量,后接替V1版本,演示如下。
    在这里插入图片描述

    二、部署策略对比

    发布策略新老并行不停机流量控制真流量测试用户采样资源成本回滚时长用户影响实施复杂度
    停机重建×××××
    滚动升级×××
    蓝绿部署
    红黑部署
    ××××
    灰度部署
    金丝雀
    ×
    A/B测试
    影子测试××

    三、示例说明

    前后三种(灰度、A/B、影子)分别被Google单独划分为部署策略和测试策略,这里全部作为部署策略来看待。其中的蓝绿、灰度和A/B都和流量的多少有关。蓝绿是一把全流量切换,A/B是无筛选的部分流量切换,而A/B是特定流量的切换。蓝绿,注定了需要全局充分测验之后才能接受整体切换的流量,灰度的新版本即便造成故障也只是一部分的流量,而A/B更多的在于比较不同用户(区域、浏览器版本等)针对不同版本的体验,可以用来做比对性选择,本质上是用“小白”来试验。

    举个例子,假设在全球不同区域都部署了同一个版本的集群实例,我们做版本升级的时候,肯定是逐个区域地实施。一来,把控实施进度;二来,即便故障也好及时识别和完善。这个场景下,说它是滚动升级、灰度部署和A/B都可以。时而看到一个电子商务站点,不同区域的人访问同一个页面却有所差异就是这么回事。也就是说,这几个策略,在大小实例/集群都是适用的,不用角度或者视角上表现有所差异,主要看到底目的是什么。

    四、参考材料

  • 相关阅读:
    关于 DellEMC 安装系统时找不到系统硬盘的问题
    string字符串类
    VMware安装Kali操作系统(全网最详细不接受任何反驳)
    allure
    Linux:深入文件系统
    欧科云链做客Google Cloud与WhalerDAO专题论坛,畅谈Web3数据机遇
    程序员这个身份,比你想象的还值钱!
    Maven入门
    干货|关于代码无法烧录进入Model3开发板的问题整理
    【Numpy学习笔记】
  • 原文地址:https://blog.csdn.net/evandeng2009/article/details/125483402