【openshift教程-07】【A/B部署】
A/B部署的名称来自测试新应用程序特性的能力。
作为部署的一部分。假如你有一个设想,可以执行A/B部署,测试你的设想是对还是错(如果错,可以方便的回滚到你原来版本的应用A;如果对,可以将流量都导入新版本应用B)。
例如:
一个很好的例子就是向你的销售网站或移动应用程序的变更。你将流量的百分比引导到新版本,并测量其数量。按版本销售(按访问者数量计算的转化率)。然后,您可以转化率的变化,进行切回原来的应用,或者使用最新的应用。
原理如下:

示例:
一、创建项目
1、创建一个项目cotd
oc new-project cotd --display-name='A/B Deployment Example' --description='A/B Deployment Example'
二、添加AB两个版本的应用
1、创建A版本:添加一个应用cats,并为cats应用添加一个route并命名为cats
oc new-app --name='cats' -l name='cats' php:5.6~https://github.com/devops-with-openshift/cotd.git -e SELECTOR=cats
oc expose service cats --name=cats -l name='cats'
2、创建B版本:添加一个应用city,并为city应用添加一个route并命名为city
oc new-app --name='city' -l name='city' php:5.6~https://github.com/devops-with-openshift/cotd.git -e SELECTOR=cities
oc expose service city --name=city -l name='city'
三、在AB之上,添加一个route,进行负载均衡
1、添加route,命名为ab,并连接后端route(cats)
oc expose service cats --name='ab' -l name='ab'
2、添加注释,使用haproxy的roundrobin算法
3、设置后端route的权重
oc set route-backends ab cats=100 city=0
oc set route-backends ab cats=80 city=20