zoukankan      html  css  js  c++  java
  • 发布机制:金丝雀发布

    ylbtech-发布机制:金丝雀发布
    1. 金丝雀发布(单服务器组)返回顶部
    1、
    一、单服务器组发布

    先解释下单服务器组的概念,早先我们机器资源比较紧张,不像现在云计算和虚拟化(包括容器技术)这么发达,所以应用机器基本是预先静态分配好的(一般由运维负责分配),原来应用 A 住在这 N 台机器上,那么下次升级发布的应用 A 也住在这 N 台机器上,所以称为单服务器组发布方式。

    2、
    1.2 金丝雀发布(单服务器组)

    在蛮力发布基础上的一种简单改进发布方式,目前仍然是不少成长型技术组织的主流发布方式。单服务器组下的金丝雀发布的简化步骤如下图所示:

    600发布前

    600先发一台金丝雀

    600全部发完

     实践要点
    1. 金丝雀发布一般先发 1 台,或者一个小比例,例如 2% 的服务器,主要做流量验证用,也称为金丝雀 (Canary) 测试(国内常称灰度测试)。以前旷工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据。

    2. 如果金丝测试通过,则把剩余的 V1 版本全部升级为 V2 版本。如果金丝雀测试失败,则直接回退金丝雀,发布失败。

     优势和适用场合

    优势:

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

    不足:

    • 发布自动化程度不够,发布期间可引发服务中断

    适用场合:

    • 对新版本功能或性能缺乏足够信心

    • 用户体验要求较高的网站业务场景

    • 缺乏足够的自动化发布工具研发能力

     流量模式

    600

    少量金丝雀先接受流量,再全量发布,图片来自附录 6.1

    3、
    2.返回顶部
    1、
    随着云计算和虚拟化技术的成熟,特别是容器等轻量级虚拟化技术的引入,计算资源受限和申请缓慢问题已经逐步解决,可以做到弹性按需分配。为一次发布分配两组服务器,一组运行现有的 V1 老版本,一组运行待上线的 V2 新版本,再通过 LB 切换流量方式完成发布,这就是所谓的双服务器组发布方式。
    2、
    2.2 金丝雀发布(双服务器组)

    对蓝绿部署的一种简单优化,发布时先从绿组拉入 1 台金丝雀,待金丝雀验证通过再发全量。对比蓝绿发布,该发布方式的优势是有一个生产流量的金丝雀验证过程,可以减轻 V2 可能有问题的风险和影响面。简化发布过程如下图所示:

    600

    3、
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
    1、
    2、
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    实现Vector对象的序列化的例子
    BigDecimal
    java.io.Serializable引发的问题——什么是序列化?在什么情况下将类序列化?
    删除表中重复记录的方法
    使用PreparedStatement为不同的数据库编写可移植的数据库存取方法
    hsqldb介绍
    ant管理项目
    在jsp中点击按钮,在bean中把已经查出的数据,生成csv文件,然后在ie中自动打开
    用JAVA操作日期类型
    ORACLE默认用户的问题?
  • 原文地址:https://www.cnblogs.com/storebook/p/11770076.html
Copyright © 2011-2022 走看看