AB 测试

什么是AB测试

关于什么是A/B测试,Wikipedia定义如下: wikipedia A/B_testing

中文讨论有些也很全面: 什么是 A/B 测试?

为什么要有A/B测试

A/B 测试能快速帮助我们做出正确决定,简单的讲就是某一环境同时会有A/B两种(也可以是多种)版本的服务同时运行,它们在功能需求上讲是一样的,但是在细节上又有明显的区别.为了准确的通过一些维度对比这些服务的优劣,那么就需要将这些服务看成相同功能下的不同实现,它们互相作为参考系. 通过同时接受实际流量的实战检验,在这个过程中收集数据,评估出最优的方案来最大化团队的利益.

在AWS Lambda 金丝雀发布中我们讨论了CI/CD过程平滑性的重要性,技术术语和操作流程. 其中CI/CD过程中会产生灰度,也就是一部分是旧版本一部分是新版本.这时这个瞬时状态就很像A/B测试的持续状态(稳态). 但是它们是不一样的概念.
A/B测试 和 滚动发布的对比

AB和金丝雀发布的区别和联系

差异

  • 目标不同

    • A/B 测试的目标在: 怎么样准确的评估A/B方案的优劣并选出最优解
    • AWS Lambda 金丝雀发布 的目标在: 怎么安全的平滑的将当前服务由A1过渡到A2
  • 两个版本的关系不同

    • A/B 测试中两个版本是竞争关系或对比关系
    • AWS Lambda 金丝雀发布中2个版本是先后关系或承接关系
  • 时间不同

    • A/B 测试中两个版本是并行服务的,在运行期是没有替代关系的
    • AWS Lambda 金丝雀发布中2个版本是串行的,一个版本的目的是取代上一个版本

共同点

  • 流量分配

    • 在AWS Lambda 金丝雀发布和A/B测试中流量必然会在多个版本间做一定规则的分配.比如10%分配到A而剩余的分配到B
    • A/B 测试 中有些团队需要验证新版本的稳定性. 那么这时A/B 测试 中A/B版本就是后续是否继续进行AWS Lambda 金丝雀发布的判据,反过来AWS Lambda 金丝雀发布产生了A/B 测试

本文原创链接:AB 测试

你可能感兴趣的:(后端devops)