一、Blue/Green Deployment(蓝绿部署)

1、部署过程:

(1)准备两个相同的应用运行环境,命名为蓝色环境、绿色环境,刚开始,蓝色环境和绿色环境都运行着相同的应用版本V1,只有绿色环境对外提供服务。

(2)我们开发了一个新版本V2,那么放到蓝色环境上进行反复的测试、修改、验证,确定达到上线标准后,利用负载均衡器/反向代理/路由等手段将对外服务切换为蓝色环境。

(3)一段时间后,如果发生故障,那么迅速切换回绿色环境V1;如果运行没有异常,那么绿色环境更新版本到V2,版本再次一致。

(4)当需要开发下一个版本V3,重复前面的步骤,蓝色绿色相互切换相互备份。

2、特点

1)蓝绿部署无需停机,并且风险较小。

2)蓝绿部署要求在升级过程中,同时运行两套程序,对硬件的要求就是日常所需的二倍,比如日常运行时,需要10台服务器支撑业务,那么使用蓝绿部署,你就需要购置二十台服务器。

二、Rolling update(滚动发布)

1、部署过程

滚动发布:一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本,例如每次只取出集群的20%进行升级。

2、特点

1)这种部署方式相对于蓝绿部署,更加节约资源——它不需要运行两个集群、两倍的实例数。

二、灰度发布/金丝雀部署

1、定义

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的金丝雀部署也就是灰度发布的一种方式。

注释:矿井中的金丝雀
17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。

2、部署方式

  • 准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。
  • 从负载均衡列表中移除掉“金丝雀”服务器。
  • 升级“金丝雀”应用(排掉原有流量并进行部署)。
  • 对应用进行自动化测试。
  • 将“金丝雀”服务器重新添加到负载均衡列表中(连通性和健康检查)。
  • 如果“金丝雀”在线使用测试成功,升级剩余的其他服务器。(否则就回滚)

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

当确认新版本运行良好后,再逐步将更多的流量导入到新版本上,在此期间,还可以不断地调整新旧两个版本的运行的服务器副本数量,以使得新版本能够承受越来越大的流量压力。直到将100%的流量都切换到新版本上,最后关闭剩下的老版本服务,完成灰度发布。

参考:蓝绿部署、滚动部署、灰度发布、金丝雀发布 - 割肉机 - 博客园

蓝绿部署、滚动部署、灰度部署、金丝雀部署相关推荐

  1. 微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布

    在项目迭代的过程中,不可避免需要"上线".上线对应着部署,或者重新部署:部署对应着修改:修改则意味着风险. 目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机 ...

  2. 蓝绿部署、滚动部署、灰度发布、金丝雀发布-概念介绍---应用部署001

    在项目迭代的过程中,不可避免需要"上线".上线对应着部署,或者重新部署:部署对应着修改:修改则意味着风险. 目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机 ...

  3. 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别

    在有关微服务.DevOps.Cloud-native.系统部署等的讨论中,蓝绿部署.A/B 测试.灰度发布.滚动发布.红黑部署等概念经常被提到,它们有什么区别呢?通过搜索相关资料,做一个简单的辨析,如 ...

  4. 微服务下蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别...

    更多内容关注微信公众号:fullstack888 在有关微服务.DevOps.Cloud-native的迭代过程中,不可避免的需要"上线",上线就需要部署,需要部署就意味着有修改, ...

  5. 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别...

    蓝绿部署.红黑部署.AB测试.灰度发布.金丝雀发布.滚动发布的概念与区别 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangyinghong_2 ...

  6. 蓝绿部署、滚动部署、灰度发布、金丝雀发布

    目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机即可完成部署.本文的目的就是将目前常用的布署方案做一个总结. 一.蓝绿布署 Blue/Green Deployment(蓝绿部署 ...

  7. 微服务部署:蓝绿部署、滚动部署、灰度部署(金丝雀部署)、功能开关发布

    简介 产品或项目不可能一步到位,一次性推向用户,故而有版本的存在.在app版本更新或者项目迭代的过程中,不可避免需要发布.发布就是部署:部署就是修改:修改则意味着风险. 目前有很多用于部署的技术,本文 ...

  8. 微服务部署:蓝绿部署、滚动部署、灰度部署(金丝雀部署)

    简介 产品或者项目不可能一步到位,一次性推向用户,故而有版本的存在.在app版本更新或者项目迭代的过程中,不可避免需要发布.发布就是部署/重新部署:部署就是修改:修改则意味着风险. 目前有很多用于部署 ...

  9. 微服务部署:蓝绿发布、滚动发布、灰度发布、金丝雀发布

    在项目迭代的过程中,不可避免需要上线.上线对应着部署,或者重新部署:部署对应着修改,修改则意味着风险. 1.蓝绿发布(Blue/Green Deployment) ①定义 蓝绿部署是不停老版本,部署新 ...

最新文章

  1. c# 分类 机器学习_听说你要用C#做机器学习
  2. Python 技术篇-requests发送post请求传文件给flask服务端报405、400问题解决方法
  3. [IDEA中SSM整合,前端页面jsp] tomcat一开始访问jsp页面就报404错误
  4. 关于微信小程序swiper的问题
  5. 【公开课】斯坦福2019秋季课程:图机器学习资料全公开
  6. java awt run_JAVA教程 第五讲 AWT图形用户界面设计(一)
  7. 使用create-keyframe-animation实现js动画
  8. VCIP2020:基于深度学习的HEVC帧内预测的非线性变换
  9. C: 编译错误:fatal error: gnu/stubs-32.h: No such file or directory;bad register name `%rsp‘
  10. Linux文件内容关键字查询
  11. Android双屏异显以及原理分析
  12. How to root android Oppo A11w,OPPO A11(移动4G)一键ROOT图文详细教程
  13. 作为前端,如何帮帝都的朋友租到合适的房子
  14. 时间复杂度和空间复杂度及多道例题讲解
  15. 深度学习框架tensorflow学习与应用6(防止过拟合dropout,keep_prob =tf.placeholder(tf.float32))
  16. matlab中hold all,matlab中的hold
  17. 大数据技术中的伦理问题
  18. 深深的码丨Java ArrayList 源码透析
  19. Google Earth Engine 学习7---ASTER GED 地表发射率数据下载
  20. ABB机器人调试的一般步骤

热门文章

  1. ffmpeg 为视频添加背景音乐---单音频轨道stream
  2. 小虎电商浏览器:淘数据店铺数据分析如何?数据精确吗?
  3. 暨南大学21考研计算机上岸吐槽贴经验贴流水账
  4. VUE 组件手动渲染、组件延迟渲染
  5. RealityCapture场景建模笔记
  6. 从“站在巨人的肩上”到“跪到侏儒之脚下”——图灵公司副主编自供(二)...
  7. 创业者不能盲目的跟风,不然结局很凄凉
  8. php:php时区的三种设置方式
  9. 治愈系书单|林曦《只生欢喜不生愁》
  10. linux 视频壁纸,Plasma video wallpaper: KDE 4 视频壁纸