记录本科毕业两年进蚂蚁金服测开岗的面试过程

Java实现将一个文件的复制到另一个文件中去(字节流形式...可复制文本,视频,音频等文件)

  返回  

运维的发布/部署方式

2021/7/20 19:20:06 浏览:

文章目录

    • 运维的发布方式
      • 蓝绿部署(Blue/Green Deployment)
      • 灰度发布(金丝雀发布)
      • 滚动发布
      • 红黑部署

运维的发布方式

蓝绿部署(双服务器组)

灰度发布/金丝雀部署

滚动发布(单服务器组)

红黑部署

蓝绿部署(Blue/Green Deployment)

概述:

​ 蓝绿部署分为两个版本,蓝色版本是指正在使用的版本,绿色版本是指将要发布的新版本,通过在两个版本中切换流量来实现版本的更新。更新的时候,蓝色版本仍然在提供服务,绿色版本进行升级,测试通过后,删除老版本,将流量切换到新版本。

部署过程:

(1)部署蓝色版本的应用,所有外部请求的流量都打到这个版本上。
(2)部署绿色版本的应用,绿色版本的代码与蓝色版本不同
(3)将流量从蓝色版本切换到绿色版本。
(4)如绿色版本测试正常,就删除蓝色版本正在使用的资源,从此正式用绿色版本。

优点
无需停机,风险较小,升级切换和回退速度非常快。部署新版本进行测试,等测试通过后,将流量切换到新版本,删除老版本。

缺点
切换是全量的,如果v2版本有问题,则对用户体验有直接影响,需要两倍机器资源,冗余产生的额外维护、配置的成本,以及服务器本身运行的开销。会产生额外的维护、配置成本,服务器本身运行也需要成本支出。

适用场合:
对用户体验有一定容忍度的场景。
机器资源有富余或者可以按需分配(AWS 云,或自建容器云)。
暂不具备复杂滚动发布工具研发能力。

灰度发布(金丝雀发布)

概述:

​ 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB Test 就是一种灰度发布方式,让一部分用户继续用 A,一部分用户开始用 B,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。蓝绿部署是准备两套系统,在两套系统之间进行切换,金丝雀策略是只有一套系统,逐渐替换这套系统。

部署过程:

(1)准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。
(2)从负载均衡列表中移除掉“金丝雀”服务器。
(3) 升级“金丝雀”应用( 排掉原有流量后进行部署 )。
(4) 对应用进行自动化测试。
(5)将“金丝雀”服务器重新添加到负载均衡列表中(连通性和健康检查)。
(6)如果“金丝雀”在线使用测试成功,升级剩余的其他服务器。(否则就回滚)
(7)除此之外灰度发布还可以设置路由权重,动态调整不同的权重来进行新老版本的验证。

优点:

提前获得目标用户的使用反馈。
根据反馈结果,做到查漏补缺。
发现重大问题,可回滚“旧版本”。
补充完善产品不足。
用户体验影响小,金丝雀发布过程出现问题只影响少量用户。

缺点:

发布自动化程度不够,发布期间可引发服务中断。时间成本高,整个灰度部署从前期的灰度策略到最后上线需要消耗很长的时间。

适用场合:
对新版本功能或性能缺乏足够信心。
用户体验要求较高的网站业务场景。
缺乏足够的自动化发布工具研发能力。

滚动发布

概述

​ 滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。这种部署方式相对于蓝绿部署,更加节约资源——它不需要运行两个集群、两倍的实例数。我们可以部分部署,例如每次只取出集群的 20% 进行升级。

部署过程

(1)发布一台金丝雀,主要做流量验证。
(2)需要准备好发布工具和智能LB,平滑的版本替换和流量的拉入拉出。
(3)每次发布先将老版本V1流量从LB移除 ,然后清楚老版本 ,发新版本V2 ,再将LB流量接入新版本。
(4)一次滚动式发布一般由若干个发布批次组成,每批次发布数量可配置.并且每批次之间有时间间隔,所以导致滚动发布过程比较缓慢。
(5)回退 , 发布的逆过程,所以一样缓慢。

优点:

​ 不用停止服务器就可以更新,比较节省资源。用户体验影响小,体验较平滑。

缺点

​ 整个系统会有新旧并存的情况,出现问题时,无法保证一个稳定的线上环境;部署时间慢,取决于每阶段更新时间、回滚困难;对做好不同版本与数据库、缓存等兼容性问题要求很高。发布策略较复杂,无法确定OK的环境。

适用场景

用户体验不能中断的网站业务场景。
有一定的复杂发布工具研发能力。

红黑部署

概述:
这是Netflix采用的发布手段,Netflix的主要基础设施是在AWS上,所以它利用AWS的特性,在部署新的版本时,通过 AutoScaling Group 用包含新版本应用的AMI的 LaunchConfiguration 创建新的服务器。测试不通过,找到问题原因后,直接干掉新生成的服务器以及 Autoscaling Group 就可以,测试通过,则将ELB指向新的服务器集群,然后销毁掉旧的服务器集群以及 AutoScaling Group

需要注意: 在蓝绿色部署中,两个版本可能暂时同时获取请求,而在红黑中,只有一个版本在任何时间点获得流量。

特点
服务始终在线,同时采用不可变部署的方式,也不像蓝绿部署一样得保持冗余的服务始终在线。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号