一种微服务自适应灰度发布方法及系统技术方案

技术编号:38201845 阅读:22 留言:0更新日期:2023-07-21 16:45
本发明专利技术涉及一种微服务自适应灰度发布方法及系统。该方法包括:构建用于发布的新版本微服务程序,提交灰度任务并设置灰度任务参数;实时收集集群中各节点的运行情况指标,计算节点运行状态评分和节点流量饱和度;根据节点运行状态评分和节点流量饱和度,周期性地选取合适数量的微服务节点进行灰度置换部署,在每次进行灰度置换完成后,根据灰度节点的运行状态评分,对状态异常节点按照回滚策略进行回滚,并根据预期的灰度发布结束时间和剩余未进行灰度置换的节点数量,判定当前灰度任务的状态。本发明专利技术通过对微服务集群的运行状态进行持续监控来动态调整灰度服务的部署规模,能够快速响应服务异常,提升灰度发布过程中的用户体验。验。验。

【技术实现步骤摘要】
一种微服务自适应灰度发布方法及系统


[0001]本专利技术涉及云计算
,尤其涉及一种微服务自适应灰度发布方法及系统。

技术介绍

[0002]近年来,随着微服务、容器化等云原生技术的兴起,以及模型驱动、低代码、零代码等高度敏捷的软件开发方式的不断发展,极大缩短了软件的开发迭代周期,对各类前沿的、软件密集型的大型技术企业的软件发布与测试带来了巨大挑战。通常,企业主要通过采用蓝绿部署、金丝雀发布、灰度发布等方式来融入持续部署的过程,以支持新版本服务上线过程中的用户体验与A/B测试。
[0003]目前,企业广泛采用灰度发布方式进行持续部署,即在新版微服务进行发布的过程中,以一定比例对生产集群中的旧版本微服务节点进行增量替换,在微服务出现故障后回滚。灰度发布过程需要根据用户反馈,通过收集和分析大量监控服务日志,由运维或部署人员根据运行情况人为决策部署的比例与回滚策略。然而,这类灰度发布方法对微服务集群的调整效率较低,在灰度部署过程中出现故障后,不能够及时调整部署比例,影响用户体验,增加了用户流失的风险。

技术实现思路

[0004]为了解决现有的灰度发布方法中存在的人工干预较大、集群部署调整效率低以及缺乏自适应等问题,本专利技术提出了一种微服务自适应灰度发布方法及系统,在对微服务集群进行持续部署的过程中,通过对微服务集群的运行状态进行持续监控,来动态调整灰度服务的部署规模,从而快速响应服务异常,提升灰度发布过程中的用户体验。
[0005]本专利技术采用的技术方案如下:
[0006]第一方面,本专利技术提供了一种微服务自适应灰度发布方法,其主要步骤如下:
[0007]构建用于发布的新版本微服务程序,提交灰度任务,设置灰度任务参数;
[0008]实时收集微服务集群中各微服务节点的运行情况指标,基于节点状态评分模型计算节点运行状态评分,基于节点流量饱和度模型计算节点流量饱和度;
[0009]根据节点运行状态评分和节点流量饱和度,周期性地选取合适数量的微服务节点进行灰度置换部署,在每次灰度置换完成后,根据灰度节点(灰度置换后的节点)的运行状态评分,对状态异常节点按照回滚策略进行回滚,根据预期的灰度发布结束时间和剩余未进行灰度置换的节点数量,判定当前灰度任务的状态。
[0010]优选的,所述灰度任务参数主要包括:服务预期响应时间R
e
,服务单位时间内预期最大请求量F
e
,灰度发布节点数步长n,灰度置换周期T
r
,灰度任务预期时长T。
[0011]优选的,所述各微服务节点的运行情况指标包括:
[0012]T
r
内微服务90%分位点耗时,记为R
90%

[0013]T
r
内微服务调用错误率,记为:其中,N
error
为T
r
内的异常响应数,N
total
为T
r
内的总请求数。
[0014]优选的,所述基于节点状态评分模型计算节点运行状态评分的方法为:
[0015]微服务节点的运行状态评分记为:其中,α通常为0~1(优选为0.4),β通常为0~1(优选为0.6)。
[0016]优选的,所述基于节点流量饱和度模型计算节点流量饱和度的方法为:
[0017]T
r
内微服务的单位时间内平均请求量记为:其中,f为T
r
内微服务的总请求量;
[0018]微服务节点的流量饱和度计为:
[0019]优选的,所述周期性地选取合适数量的节点进行灰度置换部署,在每次灰度置换完成后,根据灰度节点运行状态评分,对状态异常节点按照回滚策略进行回滚的方法为:
[0020]步骤S1:从待置换节点集Z中选取流量饱和度D小于1的节点,将选取的节点按照流量饱和度从小到大排序,得到候选节点集S;
[0021]步骤S2:如果则执行步骤S3,否则执行步骤S6;
[0022]步骤S3:如果|S|≥n,则对S中流量饱和度最小的前n个节点构成的节点集S
n
进行置换部署(置换的动作表示将该节点的微服务删除,部署新版本的微服务),Z=Z

S
n
,然后执行步骤S5,否则执行步骤S4;
[0023]步骤S4:对S中的所有节点进行灰度置换,Z=Z

S;
[0024]步骤S5:在间隔时间T
r
后,对进行灰度置换后的节点集合,检查T
r
内的节点运行状态评分,如果存在状态异常节点,则对状态异常节点进行回滚,执行步骤S5(即重复执行步骤S5,步骤S5本身作为一个迭代函数,不断以时间间隔T
r
进行执行,直到不存在状态异常节点后跳出循环),否则执行步骤S6;
[0025]步骤S6:如果则执行步骤S7,否则执行步骤S9;
[0026]步骤S7:如果当前时间小于灰度任务预期时长T,执行步骤S1,否则执行步骤S8;
[0027]步骤S8:如果当前时间大于等于灰度任务预期时长T,结束当前灰度任务,回滚全部已经置换的节点,提交灰度发布失败结果;
[0028]步骤S9:如果当前时间小于灰度任务预期时长T,执行步骤S5,否则执行步骤S10;
[0029]步骤S10:如果当前时间大于等于灰度任务预期时长T,结束当前灰度任务,提交灰度发布成功结果。
[0030]优选的,所述步骤S5中,状态异常节点的选取方法为:
[0031]预先设置两阶段阈值p(优选为0.6)和q(优选为1),如果最大节点运行状态分数大于p且小于q,则选取运行状态分数最大的节点作为状态异常节点,如果分数最大节点的运行状态分数大于q,则选取运行状态分数大于q的节点作为状态异常节点。
[0032]可选的,所述步骤S5中,可记录灰度任务的回滚触发次数,在灰度任务达到一定的回滚触发次数后可提前结束当前灰度任务,提交灰度失败结果。
[0033]可选的,所述步骤S8中,可根据记录的回滚触发次数,自动对灰度任务的结束时间进行延长。
[0034]第二方面,本专利技术提供了一种微服务自适应灰度发布系统,所述系统包括:节点监测模块、流量监测模块、灰度任务管理模块和节点管理模块,其中:
[0035]所述节点监测模块:用于采集各微服务节点的运行指标信息,同时负责基于节点状态评分模型计算节点运行状态评分;
[0036]所述流量监测模块:用于采集各微服务节点的请求数量,同时负责基于节点流量饱和度模型计算节点流量饱和度;
[0037]所述灰度任务管理模块:用于进行灰度任务的发布,控制灰度任务的结束,同时负责维护灰度任务的执行进度信息,控制灰度任务进行回滚;
[0038]所述节点管理模块:负责对各微服务节点进行具体的灰度置换,同时负责对灰度任务的回滚操作。
[0039]与现有技术相比,本专利技术产生的有益效本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务自适应灰度发布方法,其特征在于,包括以下步骤:构建用于发布的新版本微服务程序,提交灰度任务,并设置灰度任务参数;实时收集微服务集群中各微服务节点的运行情况指标,基于节点状态评分模型计算节点运行状态评分,基于节点流量饱和度模型计算节点流量饱和度;根据节点运行状态评分和节点流量饱和度,周期性地选取合适数量的微服务节点进行灰度置换部署,在每次灰度置换完成后,根据灰度节点的运行状态评分,对状态异常节点按照回滚策略进行回滚,并根据预期的灰度发布结束时间和剩余未进行灰度置换的节点数量,判定当前灰度任务的状态。2.根据权利要求1所述的方法,其特征在于,所述灰度任务参数包括:服务预期响应时间R
e
,服务单位时间内预期最大请求量F
e
,灰度发布节点数步长n,灰度置换周期T
r
,灰度任务预期时长T。3.根据权利要求2所述的方法,其特征在于,所述各微服务节点的运行情况指标包括:T
r
内微服务90%分位点耗时,记为R
90%
;T
r
内微服务调用错误率,记为其中,N
error
为T
r
内的异常响应数,N
total
为T
r
内的总请求数。4.根据权利要求3所述的方法,其特征在于,所述基于节点状态评分模型采用下式计算微服务节点的运行状态评分:其中,α为0~1,β为0~1;所述基于节点流量饱和度模型计算节点流量饱和度,包括:首先计算T
r
内微服务的单位时间内平均请求量:其中,f为T
r
内微服务的总请求量;然后计算微服务节点的流量饱和度:5.根据权利要求1所述的方法,其特征在于,所述周期性地选取合适数量的微服务节点进行灰度置换部署,在每次灰度置换完成后,根据灰度节点的运行状态评分,对状态异常节点按照回滚策略进行回滚,包括:步骤S1:从待置换节点集Z中选取流量饱和度D小于1的节点,将选取的节点按照流量饱和度从小到大排序,得到候选节点集S;步骤S2:如果则执行步骤S3,否则执行步骤S6;步骤S3:如果|S|≥n,则对S中流量饱和度最小的前n个节点构成的节点集S
n
进行置换部署,Z=Z

S
...

【专利技术属性】
技术研发人员:常静坤贾大玮刘志波魏凤明李名扬
申请(专利权)人:中国软件与技术服务股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1