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進行組合;
關于停止發布
每組進行發布,一旦出現異常,你可以利用發布組件,或者你自己寫一套異常抓取工具來停止發布,這個時候就不會再針對剩下的組進行發布操作了。
關于回滾
把回滾也看作一種發布,就不多說了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38624.html
摘要:基于的前端灰度發布方案灰度發布和測試簡介灰度發布將某個功能灰度發布逐漸放量給特定線上人群,避免新功能全量上線帶來的風險。如果我們把這些版本信息管理起來,并且通過特定的手段對用戶請求應用測試就可以完成前端不同版本的灰度發布。 基于Nodejs的前端灰度發布方案 1. 灰度發布和A/B測試簡介 灰度發布 將某個功能灰度發布(逐漸放量)給特定線上人群,避免新功能全量上線帶來的風險。 show...
摘要:摘要導語近日,阿里云發布了智能媒體管理服務,通過離線處理能力關聯授權的云存儲,提供便捷的海量多媒體數據一鍵分析,并通過該分析過程構建價值元數據,更好支撐內容檢索。標準統一,訪問接口統一為阿里云的標準。場景化一鍵式處理,提高易用性。 摘要: 導語 近日,阿里云發布了智能媒體管理(Intelligent Media Management)服務, 通過離線處理能力關聯授權的云存儲,提供便捷的...
摘要:灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。如何使用進行灰度發布呢將分一下四步第一,設置網關權重路由設置中提供了去實現根據分組設置權重進行路由,因此使用起來相對比較簡單,有興趣的可以閱讀源碼。 灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。在其上可以進行A/B testing,即讓一部分用戶繼續用產品特性A,一部分用戶開始用產品特性B,如果用戶對B沒有什么反對意見,那...
閱讀 1172·2021-11-22 15:22
閱讀 3843·2021-10-19 13:13
閱讀 3590·2021-10-08 10:05
閱讀 3303·2021-09-26 10:20
閱讀 2988·2019-08-29 14:21
閱讀 2197·2019-08-27 10:55
閱讀 1878·2019-08-26 10:31
閱讀 2586·2019-08-23 16:47