蓝绿部署、滚动部署、灰度部署、金丝雀部署
一、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%的流量都切换到新版本上,最后关闭剩下的老版本服务,完成灰度发布。
参考:蓝绿部署、滚动部署、灰度发布、金丝雀发布 - 割肉机 - 博客园
蓝绿部署、滚动部署、灰度部署、金丝雀部署相关推荐
- 微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
在项目迭代的过程中,不可避免需要"上线".上线对应着部署,或者重新部署:部署对应着修改:修改则意味着风险. 目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机 ...
- 蓝绿部署、滚动部署、灰度发布、金丝雀发布-概念介绍---应用部署001
在项目迭代的过程中,不可避免需要"上线".上线对应着部署,或者重新部署:部署对应着修改:修改则意味着风险. 目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机 ...
- 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别
在有关微服务.DevOps.Cloud-native.系统部署等的讨论中,蓝绿部署.A/B 测试.灰度发布.滚动发布.红黑部署等概念经常被提到,它们有什么区别呢?通过搜索相关资料,做一个简单的辨析,如 ...
- 微服务下蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别...
更多内容关注微信公众号:fullstack888 在有关微服务.DevOps.Cloud-native的迭代过程中,不可避免的需要"上线",上线就需要部署,需要部署就意味着有修改, ...
- 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别...
蓝绿部署.红黑部署.AB测试.灰度发布.金丝雀发布.滚动发布的概念与区别 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangyinghong_2 ...
- 蓝绿部署、滚动部署、灰度发布、金丝雀发布
目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机即可完成部署.本文的目的就是将目前常用的布署方案做一个总结. 一.蓝绿布署 Blue/Green Deployment(蓝绿部署 ...
- 微服务部署:蓝绿部署、滚动部署、灰度部署(金丝雀部署)、功能开关发布
简介 产品或项目不可能一步到位,一次性推向用户,故而有版本的存在.在app版本更新或者项目迭代的过程中,不可避免需要发布.发布就是部署:部署就是修改:修改则意味着风险. 目前有很多用于部署的技术,本文 ...
- 微服务部署:蓝绿部署、滚动部署、灰度部署(金丝雀部署)
简介 产品或者项目不可能一步到位,一次性推向用户,故而有版本的存在.在app版本更新或者项目迭代的过程中,不可避免需要发布.发布就是部署/重新部署:部署就是修改:修改则意味着风险. 目前有很多用于部署 ...
- 微服务部署:蓝绿发布、滚动发布、灰度发布、金丝雀发布
在项目迭代的过程中,不可避免需要上线.上线对应着部署,或者重新部署:部署对应着修改,修改则意味着风险. 1.蓝绿发布(Blue/Green Deployment) ①定义 蓝绿部署是不停老版本,部署新 ...
最新文章
- c# 分类 机器学习_听说你要用C#做机器学习
- Python 技术篇-requests发送post请求传文件给flask服务端报405、400问题解决方法
- [IDEA中SSM整合,前端页面jsp] tomcat一开始访问jsp页面就报404错误
- 关于微信小程序swiper的问题
- 【公开课】斯坦福2019秋季课程:图机器学习资料全公开
- java awt run_JAVA教程 第五讲 AWT图形用户界面设计(一)
- 使用create-keyframe-animation实现js动画
- VCIP2020:基于深度学习的HEVC帧内预测的非线性变换
- C: 编译错误:fatal error: gnu/stubs-32.h: No such file or directory;bad register name `%rsp‘
- Linux文件内容关键字查询
- Android双屏异显以及原理分析
- How to root android Oppo A11w,OPPO A11(移动4G)一键ROOT图文详细教程
- 作为前端,如何帮帝都的朋友租到合适的房子
- 时间复杂度和空间复杂度及多道例题讲解
- 深度学习框架tensorflow学习与应用6(防止过拟合dropout,keep_prob =tf.placeholder(tf.float32))
- matlab中hold all,matlab中的hold
- 大数据技术中的伦理问题
- 深深的码丨Java ArrayList 源码透析
- Google Earth Engine 学习7---ASTER GED 地表发射率数据下载
- ABB机器人调试的一般步骤
热门文章
- ffmpeg 为视频添加背景音乐---单音频轨道stream
- 小虎电商浏览器:淘数据店铺数据分析如何?数据精确吗?
- 暨南大学21考研计算机上岸吐槽贴经验贴流水账
- VUE 组件手动渲染、组件延迟渲染
- RealityCapture场景建模笔记
- 从“站在巨人的肩上”到“跪到侏儒之脚下”——图灵公司副主编自供(二)...
- 创业者不能盲目的跟风,不然结局很凄凉
- php:php时区的三种设置方式
- 治愈系书单|林曦《只生欢喜不生愁》
- linux 视频壁纸,Plasma video wallpaper: KDE 4 视频壁纸