软件版本灰度发布方法、系统、电子设备及存储介质与流程

文档序号:36646420发布日期:2024-01-06 23:30阅读:22来源:国知局
软件版本灰度发布方法、系统、电子设备及存储介质与流程

本发明属于电子信息,涉及一种软件版本发布方法,尤其涉及一种软件版本灰度发布方法、系统、电子设备及存储介质。


背景技术:

1、灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在分布式系统架构中,分布式全链路灰度发布由于其链路复杂、技术门槛高、落地难度大,成为了互联网科技行业实现全链路灰度发布的难点所在。在现有的灰度发布方案中,一般采用蓝绿发布、滚动发布、a/btest等方式来达到灰度发布的目的。

2、蓝绿发布在实现原理上就是通过冗余来解决问题。蓝绿部署是指同时运行两个版本的应用,一般新版本的服务器规格和数量与旧版本保持一致,相当于该服务有两套完全相同的部署环境,蓝绿部署的时候,原有版本不停止服务,直接部署一套新版本,新版本正常运行后,再将流量切换到新版本。蓝绿部署要求在升级过程中,同时运行两套程序,所以对硬件的要求就是日常所需的两倍。

3、滚动发布就是在发布过程中,不同时启动所有新版本,是先启动一台新版本,再停止一台老版本,以此类推,直到全部升级完成。但是滚动发布存在风险,在一台滚动发布完成后,流量会直接流向已经启动起来的新版本,但是新版本是不一定可用的,比如需要进一步的测试才能确认。

4、a/b测试基于用户请求的元信息将流量路由到新版本,这是一种基于请求内容匹配的灰度发布策略。只有匹配特定规则的请求才会被引流到新版本,常见的做法包括基于http header、cookie和parameter。基于httpheader方式的例子,例如user-agent的值为android的请求(来自安卓系统的请求)可以访问新版本,其他系统仍然访问旧版本。基于cookie方式的案例,cookie中可以携带版本号等信息,例如服务器通过cookie中的版本号信息来返回对应的结果。

5、基于蓝绿部署的灰度发布方式中,配置较为复杂,且配置项较多,新版本如果出现故障影响范围大,无法对灰度规则进行个性化定制,且无法基于实时的流量状况进行智能化分析和调整。

6、基于滚动部署的灰度发布方式中,在滚动发布期间,整个系统就处于非常不稳定的状态,如果出现了问题,也很难确定是新版本还是老版本造成的问题,灰度调整的难度大,往往需要回滚处理。

7、基于a/btest的灰度发布方式中,需要构建完备的监控平台,用于对比不同版本之间请求状态的差异。

8、对于大型业务系统,可能涉及更复杂业务场景,在灰度发布策略上往往还需要考虑更精细化的业务维度,例如交易量、成功率、失败率等指标,而上述灰度方案均无法做到灰度发布策略定制及灰度结果精细化分析,所以在灰度结果分析标准上有很多局限性和缺点。

9、有鉴于此,如今迫切需要设计一种新的软件灰度发布方式,以便克服现有软件灰度发布方式存在的上述至少部分缺陷。


技术实现思路

1、本发明提供一种软件版本灰度发布方法、系统、电子设备及存储介质,可实时监测流量情况,对实时情况进行智能化分析和自动调整灰度规则,同时可以对发布过程中出现的故障进行及时响应。

2、为解决上述技术问题,根据本发明的一个方面,采用如下技术方案:

3、一种软件版本灰度发布方法,所述软件版本灰度发布方法包括:

4、步骤s1、在灰度发布过程中,通过数据采集获取灰度流量日志;

5、步骤s2、根据灰度流量日志获取灰度流量数据,对灰度流量数据进行数据分析,判断灰度过程中是否存在异常;

6、如果灰度过程中存在异常,则触发灰度发布告警系统发送告警信息并自动调整灰度发布策略;

7、如果没有异常,在预设灰度观察期结束后,继续按照预设的灰度规则调整灰度流量,自动完成灰度发布。

8、作为本发明的一种实施方式,步骤s2中,对灰度流量数据进行数据分析步骤包括:

9、流量统计分析步骤:对灰度流量数据进行统计分析,包括流量的总量、峰值、波动情况;通过对每个灰度版本的请求量、响应时间、错误率指标进行统计和分析,来了解整体的流量趋势和变化;

10、异常检测和异常值分析步骤:通过对灰度流量数据的异常值进行检测和分析,来确认是否存在异常情况;可以使用统计学中的异常检测方法(如均值、标准差、箱线图等)或机器学习算法(如离群点检测算法)来识别流量数据中的异常情况;

11、对比分析步骤:对不同版本的灰度流量进行对比分析,比较各个版本之间的差异和变化。可以比较各个版本的请求量、响应时间、错误率等指标,以及与整体流量的对比,从而了解每个版本的表现和影响;

12、趋势分析步骤:通过对灰度流量数据的趋势进行分析,来预测未来的流量走向和趋势;可以使用时间序列分析方法(如arima、指数平滑等)或机器学习算法(如回归模型、时间序列预测模型等)来预测流量的未来变化。

13、作为本发明的一种实施方式,步骤s2中,判断灰度过程中是否存在异常,具体包括:判断异常请求量、异常响应时间、异常错误率、异常波动或突变是否异常;

14、异常请求量指灰度版本的流量远高于预期或远低于预期;

15、异常响应时间根据灰度流量的平均响应时间或某个特定请求的响应时间进行判断;如果某个灰度版本的响应时间明显高于平均值或超过了设定的阈值,将其标记为异常;

16、异常错误率根据灰度流量中的错误请求比例进行判断;如果某个灰度版本的错误率明显高于正常情况或超过了设定的阈值,将其视为异常;

17、异常波动或突变根据设定灰度版本的流量在短时间内是否发生异常的波动或突变进行判断;如果某个灰度版本的流量在短时间内发生了异常的波动或突变,需要将其标记为异常。

18、作为本发明的一种实施方式,所述步骤s2中灰度发布策略步骤包括如下步骤的至少一个:

19、监测异常情况步骤:通过对灰度流量数据进行实时监测和分析,识别出异常情况;可以使用指标监控工具、日志分析系统或自定义监测脚本来收集和分析数据;

20、触发告警系统步骤:当检测到异常情况时,触发灰度发布告警系统发送告警信息;告警系统通过邮件、短信、即时通知等方式向相关人员发送警报,以便及时处理异常;

21、自动调整流量分配步骤:根据异常情况的严重程度和影响范围,自动调整灰度流量的分配比例;可以使用流量控制组件或负载均衡器,通过调整权重或流量转发规则来实现自动的流量调整;

22、动态灰度规则更新步骤:根据异常情况的反馈和监测结果,动态更新灰度发布策略;可以使用配置中心或规则引擎,根据实时数据和预设规则,自动调整灰度规则,如修改流量比例、调整灰度版本等;

23、故障自动回滚步骤:对于严重的异常情况,自动触发灰度发布的回滚操作,将流量切换回之前的版本;可以使用自动化部署工具或灰度发布管理平台,根据预设的回滚策略,自动回滚到稳定的版本;

24、数据分析和学习步骤:根据异常情况的历史数据和分析结果,进行数据挖掘和学习,以优化灰度发布策略的自动调整过程;可以使用机器学习算法、时间序列分析等技术,识别异常模式、优化阈值设置,提高自动调整的准确性和效果;

25、所述步骤s2中按照预设的灰度规则调整灰度流量的步骤包括:

26、逐步增加流量比例;根据预设的灰度规则,逐步增加灰度流量的比例。

27、定时增加流量比例:根据预设的时间表,定时增加灰度流量的比例;

28、根据策略权重调整流量:根据预设的策略权重,对不同版本的流量进行动态调整;根据预设的权重值,将流量按照一定比例分配给各个版本,从而实现流量的自动调整。

29、根据本发明的另一个方面,采用如下技术方案:一种软件版本灰度发布系统,所述软件版本灰度发布系统包括:

30、灰度流量日志获取模块,用以在灰度发布过程中,通过数据采集获取灰度流量日志;

31、异常判断模块,用以根据灰度流量日志获取灰度流量数据,对灰度流量数据进行数据分析,判断灰度过程中是否存在异常;如果灰度过程中存在异常,则触发灰度发布告警系统发送告警信息并自动调整灰度发布策略;如果没有异常,在预设灰度观察期结束后,继续按照预设的灰度规则调整灰度流量,自动完成灰度发布。

32、作为本发明的一种实施方式,所述异常判断模块包括:

33、流量统计分析单元,用以对灰度流量数据进行统计分析,包括流量的总量、峰值、波动情况;通过对每个灰度版本的请求量、响应时间、错误率指标进行统计和分析,来了解整体的流量趋势和变化;

34、异常检测和异常值分析单元,用以通过对灰度流量数据的异常值进行检测和分析,来确认是否存在异常情况;使用统计学中的异常检测方法(如均值、标准差、箱线图等)或机器学习算法(如离群点检测算法)来识别流量数据中的异常情况;

35、对比分析单元,用以对不同版本的灰度流量进行对比分析,比较各个版本之间的差异和变化;比较各个版本的请求量、响应时间、错误率等指标,以及与整体流量的对比,从而了解每个版本的表现和影响;

36、趋势分析单元,用以通过对灰度流量数据的趋势进行分析,来预测未来的流量走向和趋势;可以使用时间序列分析方法(如arima、指数平滑等)或机器学习算法(如回归模型、时间序列预测模型等)来预测流量的未来变化。

37、作为本发明的一种实施方式,所述异常判断模块用以判断灰度过程中是否存在异常,具体包括:判断异常请求量、异常响应时间、异常错误率、异常波动或突变是否异常;

38、其中,异常请求量指灰度版本的流量远高于预期或远低于预期;

39、异常响应时间根据灰度流量的平均响应时间或某个特定请求的响应时间进行判断;如果某个灰度版本的响应时间明显高于平均值或超过了设定的阈值,将其标记为异常;

40、异常错误率根据灰度流量中的错误请求比例进行判断;如果某个灰度版本的错误率明显高于正常情况或超过了设定的阈值,将其视为异常;

41、异常波动或突变根据设定灰度版本的流量在短时间内是否发生异常的波动或突变进行判断;如果某个灰度版本的流量在短时间内发生了异常的波动或突变,需要将其标记为异常。

42、作为本发明的一种实施方式,所述异常判断模块包括灰度发布策略子模块、灰度流量调整子模块;

43、所述灰度发布策略子模块包括:

44、监测异常情况单元,用以通过对灰度流量数据进行实时监测和分析,识别出异常情况;可以使用指标监控工具、日志分析系统或自定义监测脚本来收集和分析数据;

45、告警触发单元,用以当检测到异常情况时,触发灰度发布告警系统发送告警信息;告警系统可以通过邮件、短信、即时通知等方式向相关人员发送警报,以便及时处理异常;

46、自动调整流量分配单元,用以根据异常情况的严重程度和影响范围,自动调整灰度流量的分配比例;可以使用流量控制组件或负载均衡器,通过调整权重或流量转发规则来实现自动的流量调整;

47、动态灰度规则更新单元,用以根据异常情况的反馈和监测结果,动态更新灰度发布策略;可以使用配置中心或规则引擎,根据实时数据和预设规则,自动调整灰度规则,如修改流量比例、调整灰度版本等;

48、故障自动回滚单元,用以在出现严重的异常情况时,自动触发灰度发布的回滚操作,将流量切换回之前的版本;可以使用自动化部署工具或灰度发布管理平台,根据预设的回滚策略,自动回滚到稳定的版本;

49、数据分析和学习单元,用以根据异常情况的历史数据和分析结果,进行数据挖掘和学习,以优化灰度发布策略的自动调整过程;可以使用机器学习算法、时间序列分析等技术,识别异常模式、优化阈值设置,提高自动调整的准确性和效果;

50、所述灰度流量调整子模块包括:

51、流量比例逐步增加单元,用以根据预设的灰度规则,逐步增加灰度流量的比例。

52、流量比例定时增加单元,用以根据预设的时间表,定时增加灰度流量的比例;

53、流量调整单元,用以根据预设的策略权重,对不同版本的流量进行动态调整;根据预设的权重值,将流量按照一定比例分配给各个版本,从而实现流量的自动调整。

54、根据本发明的又一个方面,采用如下技术方案:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

55、根据本发明的又一个方面,采用如下技术方案:一种存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法的步骤。

56、本发明的有益效果在于:本发明提出的软件版本灰度发布方法、系统、电子设备及存储介质,可实时监测流量情况,对实时情况进行智能化分析和自动调整灰度规则,同时可以对发布过程中出现的故障进行及时响应。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1