首页
首页
文章目录
  1. 简介
  2. A/B测试(A/B Testing)
  3. 蓝绿部署(Blue/Green Deployment)
  4. 滚动更新
  5. 灰度发布

运维部署发布项目的几种模式

简介

在工作中,我们经常会听到 A/B测试、蓝绿部署、灰度发布、滚动更新这些运维相关中的相关名词,那么其中他们的区别是什么?哪些适合哪些场景?这就是我今天这篇文档中的需要记录的。

A/B测试(A/B Testing)

AB测试在生活中又被称为拆分测试或水桶测试,A/B测试其实可以看作一种实验,一般是将俩个版本随机分配给用户,哪种效果好,采用哪种,这种更偏好与设计方案,或者项目改版时方案。

蓝绿部署(Blue/Green Deployment)

蓝绿部署分为俩部分蓝(老版本)和绿(新版本)

项目要升级时

1、蓝(老版本)保持不动,

2、部署新的绿(新版本),当绿(新版本)启动完成后,由测试检查绿(新版本)部署启动情况。注意此时不管绿(新版本)是否启动成都不会对外提供服务,可以理解为在负载均衡中没有添加绿(新版本)的地址。

3、假设2中测试通过,那么将绿(新版本)接入到负载均衡中开始对外提供服务。

4、将蓝(老版本),从负载均衡中拿掉,然后重复23.

蓝绿部署需要注意的是俩个版本的的一致性,读写数据库也需要注意。

另外蓝绿部署与A/B测试是俩码事。蓝绿部署用户只能感知一个版本,而A/B测试用户是可以感知俩个版本的

滚动更新

这个模式用的比较少,在Kubernetes中比较常见。

该模式的特点是假设后台部署了4个服务,现在要更新新版本,那么就启动一个新的服务,在新的服务启动成功后,停止一个老的服务,循环操作,知道四个服务全部更新为新版本。

这样操作的缺点很明显,直接修改线上环境。如果出问题,回滚复杂。

灰度发布

灰度发布,将部分服务器启动新版本,通过负载均衡匹配部分用户访问新版本。

这种升级模式的核心思路是用小部分生产用户来验证新版本,之后在全部更新,将影响范围控制在可控范围内。

以上

End

支持一下
扫一扫,我会更有动力更新
  • 微信扫一扫
  • 支付宝扫一扫