istio : AB测试,灰度发布,蓝绿发布

1.什么是ABtesting?
AB 测试 用在产品上线初期调研,测试阶段,针对某个功能是否启用,或者同一功能的不同纬度,部署相同环境,让对等的流量进来,看用户的反应。根据观测结果,判断哪个方案效果更好,结果可以通过CTR或者下单率来衡量。
判断效果,需要知道的数据?
两个样本数量 NA,NB,转化率/下单率,PA,PB
即PA~N(PA,PA*(1-PA)/NA)
PB~N(PB,PB*(1-PB)/NB)
2.什么是蓝绿分布?
蓝绿发布是指,同一个系统有两套部署,其中绿部署代表对外提供服务的应用, 蓝部署代表备用部署,如果有相关的升级,回退操作,都在蓝部署上执行,确定测试没有问题,可以实现蓝绿转换。
优缺点
优点:
1.可以实现服务不停机
2.保留老版本,随时可以回退
3.所有的流量都走当前版本
弱点:
使用蓝绿部署需要注意的一些细节包括:
1、当切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。可能引起服务宕机
2、需要提前考虑数据库与应用部署同步迁移/回滚的问题。
3、蓝绿部署需要有基础设施支持。
4、在非隔离基础架构( VM 、 Docker 等)上执行蓝绿部署,蓝色环境和绿色环境有被摧毁的风险。
5、另外,这种方式不好的地方还在于冗余产生的额外维护、配置的成本,以及服务器本身运行的开销。
蓝绿部署适用的场景:
1、不停止老版本,额外搞一套新版本,等测试发现新版本OK后,删除老版本。
2、蓝绿发布是一种用于升级与更新的发布策略,部署的最小维度是容器,而发布的最小维度是应用。
3、蓝绿发布对于增量升级有比较好的支持,但是对于涉及数据表结构变更等等不可逆转的升级,并不完全合适用蓝绿发布来实现,需要结合一些业务的逻辑以及数据迁移与回滚的策略才可以完全满足需求。
3、什么是灰度发布?
灰度发布也叫金丝雀部署 ,是指通过控制流量的比例,实现新老版本的逐步更替。
比如对于服务A 有 version1 version2 两个版本 , 当前两个版本同时部署,但是version1比例90% ,version2比例10% ,看运行效果,如果效果好逐步调整 流量占比 80~20 ,70~30 ·····10~90 ,0,100 ,最终version1版本下线。
灰度发布的特点
1.新老板共存
2.可以实时根据反馈 动态调整占比
3.理论上不存在服务完全宕机的情况。
适合于服务的平滑升级与动态更新。
4、当前针对k8s的环境部署平台, 我们可以使用servicemesh 服务网格完成 各种部署场景,满足我们的业务需求。
举例istio官方的book info的例子 ,通过定义virtualservice的流量转发来帮我们实现。
关于istio的相关介绍,大家可以读以前的简介文章,或者直接看官方文档即可。
我们先看一个 模拟AB 测试的例子
对于reviews 服务 我们部署两个版本 V2,V3流量各占一半,可以统计访问效果,来帮助决策。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
    - reviews
  http:
  - route:
    - destination:
        host: reviews
        subset: v2
      weight: 50
    - destination:
        host: reviews
        subset: v3
      weight: 50

灰度发布类似 ,只需要调整 流量占比参数即可

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
    - reviews
  http:
  - route:
    - destination:
        host: reviews
        subset: v1
      weight: 80
    - destination:
        host: reviews
        subset: v2
      weight: 20

查看流量统计占比
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值