基于KS实现的金丝雀部署
一、基于KS做AB测试
1、 通过KS灰度部署来实现AB测试,灰度部署有2中策略,其中一种是按流量来划分请求,另一种是根据正则表达式来划分请求
1)、按流量来划分:这种不适合做AB测试,因为是根据流量转发,同一用户可能会访问到不同的应用,对做AB测试不合适
2)、按正则表达式划分:这种可以适用做AB测试,根据固定的正则表达式,可以实现AB测试,但是对静态文件需要单独处理
2、基于K8S做AB测试(基于Ingress-Nginx-Annotation 实现AB测试):https://juejin.cn/post/6844903927318577159
总结:基于KS做AB测试,可行,但是实现起来较复杂,对业务代码有侵入性;
1、比如某个应用要添加一个指定标识时,需要修改业务代码,并需要发版部署流程较长,扩展性差
2、KS实现AB测试,对静态资源文件不是很友好,每次都要单独处理静态资源的灰度发布
3、KS也可以基于Ingress-Nginx-Annotation 实现AB测试,但是配置较复杂,参考链接:[https://juejin.cn/post/6844903927318577159](
1、创建应用
2、配置应用中的容器
3、创建成功的应用会出现在应用列表中
4、查看应用的容器是否启动成功
5、项目启动成功,可以查看项目是否能够成功访问
通过:http://ip:30188/项目指定路径,能跳转到登录页,说明访问应用没有问题,配置项目的ng即可
如果出现以下错误,说明项目启动失败,或者端口访问不正确,总之就是探针访问不到项目
如果出现状态码返回426,在ng转发的配置中添加http的版本:proxy_http_version 1.1;
4、配置金丝雀任务
5、配置应用ng之后,查看灰度部署的访问情况
到此,按流量的灰度部署发布成功
指定用户测试
1、基于金丝雀发布配置指定测试用户群
2、通过正则表达式,配置指定用户可以访问新的应用,以现有的数据为例:配置cookie正则表达式