Regal 是一个用于"灰度发布"或 A/B Testing的智能分组引擎
主要功能:
提供发布策略,动态智能分流
支持多版本分组和优先级
数据格式化
同时兼容Python2和Python3
Regal能做什么?举个最简单的例子,比如需要针对一个版本进行灰度发布,而这一版本对应的可能是一大堆服务器集群, 如下图:
就像图中描述的一样,无论你的服务器是多还是少,尤其很多中小型企业在进行灰度发布时,通常会遇到所制定的分流策略在实际的技术或开发中如何去实现,是机器直接写死?
因此让Regal智能分组引擎直接介入,让它来根据你的策略提前进行动态地分组分流。
在这里,我再举一个简单的例子,方便大家能够更清楚的明白Regal的主要工作:
假设有一个版本A,需要针对六台机器进行发布
现在应该已经了解Regal到底是什么干货了吧,当然了,上面的例子是服务器非常少的情况,实际情况中,所面对的服务器集群是非常多,这个时候可以通过提供的combine和schedule两个API进行策略调整。详情可以见下文的使用介绍
Feature:
提供发布策略,动态智能分流
支持多版本分组和优先级
数据格式化
同时兼容Python2.5以上和Python3以上的版本(建议使用Python2.7+或者Python3.5以后的版本)
安装和使用 安装pip install regal
使用说明单个版本场景
In [1]: from regal import BaseInfo # 初始化信息,请注意一下格式 In [6]: ab = BaseInfo( version_host={"app-test-version1.0":"10.1.1.1,10.1.1.2,10.1.1.3,10.1.1.4,10.1.1.1.5"}, combine=2 # combine 希望以每组多少台服务器作为一组,进行用户群B的分流 # 在这个例子中为2台 # 默认:每组1台 ) # grouping() 进行分组 In [11]: smart_grouping = ab.grouping() # result属性 进行分组后的返回结果 In [12]: smart_grouping.result Out[12]: [("app-test-version1.0", [["10.1.1.1"], ["10.1.1.2", "10.1.1.3"], ["10.1.1.4", "10.1.1.1.5"]])]Demo
你可以进入项目Github地址,来了解更多Regal引擎的多种运用使用场景及说明
分流分组之后?Regal本身只是一个分组引擎,因此它并不承担直接发布的作用,但是通过Regal分组之后,你所得到数据,是非常容易和其他可以用来发布的组件进行配合;下面是我的一些建议和指导。
versionA: (第一组) groupA ip...... 用户群A (第二组) groupB1 ip...... __ (第三组) groupB2 ip...... | (第四组) groupB3 ip...... | -- 用户群B ...... --|
关于发布
分组之后,每一组的所有机器可以看作一个整体,扔进发布组件,进行"组内并发"
你可以把每一组直接放在ansible、saltstack、pssh或异步IO框架等等进行发布;
甚至你也可以和前端nginx+lua进行组合;
关于停止发布
每组进行发布,一旦出现异常,你可以利用发布组件,或者你自己写一套异常抓取工具来停止发布,这个时候就不会再针对剩下的组进行发布操作了。
关于回滚
把回滚也看作一种发布,就不多说了
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38624.html
摘要:基于的前端灰度发布方案灰度发布和测试简介灰度发布将某个功能灰度发布逐渐放量给特定线上人群,避免新功能全量上线带来的风险。如果我们把这些版本信息管理起来,并且通过特定的手段对用户请求应用测试就可以完成前端不同版本的灰度发布。 基于Nodejs的前端灰度发布方案 1. 灰度发布和A/B测试简介 灰度发布 将某个功能灰度发布(逐渐放量)给特定线上人群,避免新功能全量上线带来的风险。 show...
摘要:摘要导语近日,阿里云发布了智能媒体管理服务,通过离线处理能力关联授权的云存储,提供便捷的海量多媒体数据一键分析,并通过该分析过程构建价值元数据,更好支撑内容检索。标准统一,访问接口统一为阿里云的标准。场景化一键式处理,提高易用性。 摘要: 导语 近日,阿里云发布了智能媒体管理(Intelligent Media Management)服务, 通过离线处理能力关联授权的云存储,提供便捷的...
摘要:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。如何使用进行灰度发布呢将分一下四步第一,设置网关权重路由设置中提供了去实现根据分组设置权重进行路由,因此使用起来相对比较简单,有兴趣的可以阅读源码。 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那...
阅读 1165·2021-11-22 15:22
阅读 3837·2021-10-19 13:13
阅读 3568·2021-10-08 10:05
阅读 3291·2021-09-26 10:20
阅读 2983·2019-08-29 14:21
阅读 2191·2019-08-27 10:55
阅读 1870·2019-08-26 10:31
阅读 2577·2019-08-23 16:47