System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 提高K8s环境下灰度上线效率的方法、设备及存储介质技术_技高网

提高K8s环境下灰度上线效率的方法、设备及存储介质技术

技术编号:40598606 阅读:3 留言:0更新日期:2024-03-12 22:02
本发明专利技术涉及一种提高K8s环境下灰度上线效率的方法、设备及存储介质,该方法包括步骤:对服务进行配置,配置内容包括是否支持灰度、服务所对应的上下线接口信息,灰度计划发版时间及灰度发版顺序权重;在灰度A阶段时,自动判断服务是否支持灰度,对支持灰度的服务自动调用上线接口,对调用成功的服务自动进行CD配置以实现灰度A发版,其中,对发版失败的服务自动调用下线接口下线,将发版成功的服务信息存储在数据库;生成灰度B发布列表,从数据库中获取服务信息,综合各服务的灰度计划发版时间和灰度发版顺序权重对服务进行排序,以生成灰度B发布列表;在灰度B阶段时,按照灰度B发布列表对服务进行灰度B发版。本发明专利技术提高了灰度服务上线效率。

【技术实现步骤摘要】

本专利技术涉及计算机,特别涉及一种提高k8s环境下灰度上线效率的方法、设备及存储介质。


技术介绍

1、近些年云原生(主流为kubernetes,简称k8s)的盛行使得cicd(即持续集成,持续交付,持续部署)逐渐进入各互联网公司的视野中,并逐渐成为当下最流行的一种交付理念,伴随着我们对服务高可用的追求我们相继提出了灰度的实施,但是市面上大部分云原生环境下灰度发布,需要过多的运维和开发的人工介入,增加了人力成本,且容易出错。而且每次灰度上线出故障都会停止与该项目有关联的其他项目的后续发版,直至该服务故障修复后再继续后续发版,一定程度上影响了迭代效率。


技术实现思路

1、为了解决上述问题,本专利技术提供了一种提高k8s环境下灰度上线效率的方法、设备及存储介质,能够提高灰度服务上线效率,减少人工干预和重复工作,降低了出错率。

2、本专利技术通过如下方案实现,一种提高k8s环境下灰度上线效率的方法,包括步骤:

3、在服务开发阶段对服务进行配置,配置内容包括是否支持灰度、服务所对应的上下线接口信息,灰度计划发版时间以及灰度发版顺序权重;

4、在灰度a阶段时,自动判断服务是否支持灰度,对支持灰度的服务自动调用相匹配的上线接口,对调用成功的服务自动进行cd配置以实现灰度a发版,其中,对发版失败的服务自动调用相匹配的下线接口进行下线,将发版成功的服务信息存储在数据库;

5、生成灰度b发布列表,从所述数据库中获取服务信息,综合各服务的灰度计划发版时间和灰度发版顺序权重对服务进行排序,以生成所述灰度b发布列表;

6、在灰度b阶段时,按照所述灰度b发布列表对服务进行灰度b发版。

7、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于:所述灰度发版顺序权重是根据各服务之间的依赖关系进行设置的,依赖关系越少,权重数值越小;所述灰度b发布列表的排序原则为:灰度计划发版时间越早越靠前、灰度发版顺序权重越小越靠前。

8、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于:所述灰度b发布列表根据所述数据库中存储的服务的变化而动态更新;在进入灰度b阶段之前,若灰度a阶段并未结束,则先结束灰度a阶段,以固定所述灰度b发布列表。

9、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于,在进入灰度a阶段之后,通过定时任务的方式定期从所述数据库中获取最新的服务信息,并加入到缓存中;在生成灰度b发布列表时,从所述缓存中获取服务信息。

10、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于:

11、在服务开发阶段对服务进行配置的配置内容还包括服务所对应的开发人员信息;

12、在灰度b阶段时,若有服务进行灰度b发版失败,则停止后续服务的灰度b发版,并通知对应的开发人员进行修改,同时将发版失败的服务从所述灰度b发布列表中删除;

13、然后将修改后的服务按照正常部署进行发版,若发版失败,则重新通知修改、重新发版,直至发版成功,然后按照所述灰度b发布列表继续进行后续服务的灰度b发版。

14、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于,进行cd配置的步骤包括:

15、配置后端灰度,先判断对应服务是否存在后端灰度配置文件:若是,则无需进行配置;若否,则基于对应服务的旧版配置信息创建后端灰度配置文件;

16、配置前端灰度,先判断对应服务是否存在前端灰度配置文件:若是,则无需进行配置;若否,则基于对应服务的旧版配置信息创建前端灰度配置文件;然后修改负载均衡代理服务器编排配置信息。

17、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于:在灰度a阶段时,每发版完一个服务均自动发出对应的发版成功或发版失败的告警通知。

18、本专利技术提高k8s环境下灰度上线效率的方法的进一步改进在于:在灰度b阶段时,每发版完一个服务均自动发出对应的发版成功或发版失败的告警通知。

19、本专利技术还提供了一种提高k8s环境下灰度上线效率的设备,包括:存储器;处理器;以及计算机程序;其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如上任一项所述的方法。

20、本专利技术又提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行以实现如上任一项所述的方法。

21、本专利技术通过在服务开发阶段对服务进行配置,同时配合软件编程来实现自动灰度上线,省去了人工判断服务是否支持灰度以及人工匹配服务的上下线接口的操作;通过灰度b发布列表的自动生成,取消了灰度b阶段时大量的人工排序过程,以及通过在服务配置内容中增加对应开发人员的信息,实现了在服务灰度b发版失败时能够自动通知对应的开发人员。通过上述多方面自动手段,大大减少了人工干预和重复工作,降低了出错率,提高了灰度服务上线效率。

本文档来自技高网...

【技术保护点】

1.一种提高K8s环境下灰度上线效率的方法,其特征在于,包括步骤:

2.如权利要求1所述的提高K8s环境下灰度上线效率的方法,其特征在于:所述灰度发版顺序权重是根据各服务之间的依赖关系进行设置的,依赖关系越少,权重数值越小;所述灰度B发布列表的排序原则为:灰度计划发版时间越早越靠前、灰度发版顺序权重越小越靠前。

3.如权利要求1所述的提高K8s环境下灰度上线效率的方法,其特征在于:所述灰度B发布列表根据所述数据库中存储的服务的变化而动态更新;在进入灰度B阶段之前,若灰度A阶段并未结束,则先结束灰度A阶段,以固定所述灰度B发布列表。

4.如权利要求3所述的提高K8s环境下灰度上线效率的方法,其特征在于,在进入灰度A阶段之后,通过定时任务的方式定期从所述数据库中获取最新的服务信息,并加入到缓存中;在生成灰度B发布列表时,从所述缓存中获取服务信息。

5.如权利要求1所述的提高K8s环境下灰度上线效率的方法,其特征在于:

6.如权利要求1所述的提高K8s环境下灰度上线效率的方法,其特征在于,进行CD配置的步骤包括:

7.如权利要求1所述的提高K8s环境下灰度上线效率的方法,其特征在于:在灰度A阶段时,每发版完一个服务均自动发出对应的发版成功或发版失败的告警通知。

8.如权利要求1所述的提高灰度上线效率的方法,其特征在于:在灰度B阶段时,每发版完一个服务均自动发出对应的发版成功或发版失败的告警通知。

9.一种提高K8s环境下灰度上线效率的设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1~8任一项所述的方法。

...

【技术特征摘要】

1.一种提高k8s环境下灰度上线效率的方法,其特征在于,包括步骤:

2.如权利要求1所述的提高k8s环境下灰度上线效率的方法,其特征在于:所述灰度发版顺序权重是根据各服务之间的依赖关系进行设置的,依赖关系越少,权重数值越小;所述灰度b发布列表的排序原则为:灰度计划发版时间越早越靠前、灰度发版顺序权重越小越靠前。

3.如权利要求1所述的提高k8s环境下灰度上线效率的方法,其特征在于:所述灰度b发布列表根据所述数据库中存储的服务的变化而动态更新;在进入灰度b阶段之前,若灰度a阶段并未结束,则先结束灰度a阶段,以固定所述灰度b发布列表。

4.如权利要求3所述的提高k8s环境下灰度上线效率的方法,其特征在于,在进入灰度a阶段之后,通过定时任务的方式定期从所述数据库中获取最新的服务信息,并加入到缓存中;在生成灰度b发布...

【专利技术属性】
技术研发人员:张浩
申请(专利权)人:上海非码网络科技有限公司
类型:发明
国别省市:

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

1