[发明专利]一种灰度发布方法、系统、电子设备和存储介质有效
申请号: | 202210201616.X | 申请日: | 2022-03-03 |
公开(公告)号: | CN114265607B | 公开(公告)日: | 2022-06-28 |
发明(设计)人: | 蔡锡生;王玉虎;马骏 | 申请(专利权)人: | 杭州朗澈科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/71 |
代理公司: | 杭州创智卓英知识产权代理事务所(普通合伙) 33324 | 代理人: | 张迪 |
地址: | 311100 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 灰度 发布 方法 系统 电子设备 存储 介质 | ||
本申请涉及一种灰度发布方法,其中,该方法包括:灰度发布控制器针对集群中的一个目标微服务,收集新版本微服务实例的所有API和老版本微服务实例的所有API并进行对比,其中,API采用OpenAPI规范暴露;基于API的实时对比结果生成路由规则表,并将路由规则表发送至集群内各个微服务的代理控制器;指示代理控制器,根据路由规则表,将目标微服务之外的其他微服务生成的访问请求,转发至新版本微服务实例的API和/或老版本微服务实例的API。本申请通过API层级的灰度发布,解决了现有技术中微服务灰度发布方法安全性较差的问题,降低了发布风险。
技术领域
本申请涉及云计算技术领域,特别是涉及一种灰度发布方法、系统、电子设备和存储介质。
背景技术
目前,在软件更新迭代过程中,通常采用蓝绿部署和灰度发布。在对某个微服务进行灰度发布的过程中,老版本不下线,在服务器集群中部署微服务新版本,而后系统需要调整其他微服务的路由规则,对发往灰度发布中的微服务请求进行新老版本的分流,并在过程中不断测试,在测试符合预期的情况下,再将所有流量调整到新版本,在发布成功后下线老版本,从而降低了版本更新的风险。
但是,现有灰度发布方式仅涉及到应用层的灰度发布,即按照预设的分流规则将流量逐步从老版本软件分流到新版本软件上,但是,这种方式仍然存在较大的风险。
发明内容
本申请实施例提供了一种灰度发布方法、系统、电子设备和计算机可读存储介质,以至少解决相关技术中灰度发布方法安全性较低的问题。
第一方面,本申请提供了一种灰度发布方法,所述方法包括:
灰度发布控制器针对集群中的目标微服务,收集新版本微服务实例的所有API和老版本微服务实例的所有API并进行对比,其中,所述API采用OpenAPI规范暴露文档;
基于API的实时对比结果生成路由规则表,并将所述路由规则表发送至集群内各个微服务的代理控制器;
指示所述代理控制器,根据所述路由规则表,将所述目标微服务之外其他微服务生成的访问请求,转发至新版本微服务实例的API和/或老版本微服务实例的API。
在其中一些实施例中,所述代理控制器的访问请求转发流程包括:
判断所述访问请求中的请求对象域名与所述路由规则表中目标微服务的域名是否匹配;
若是,通过访问请求中的访问路径在API字典中查询以确定转发规则,并根据所述转发规则,将所述访问请求转发至新版本微服务实例的API和/或老版本微服务实例的API。
在其中一些实施例中,所述转发规则包括:
对于新版本和老版本中发生变化的API:采用渐进式流量倾斜方式,依据预设迁移步长,将访问流量逐步从所述老版本微服务实例的API分流到所述新版本微服务实例的API;
对于新版本和老版本中未发生变化的API,根据1:1的预设比例,将访问流量从所述老版本微服务实例的API分流到所述新版本微服务实例的API;
对于新版本相对于老版本被删除的API,将访问流量分流至所述老版本微服务实例的API。
在其中一些实施例中,所述方法还包括:
根据预设校验规则,对已在集群中运行的新版本微服务实例进行实时测试;
若测试结果指示合格,持续将访问流量逐步倾斜至新版本微服务实例,并在所有访问流量倾斜完成之后,输出发布成功信号;
若测试结果指示不合格,将访问流量逐步倾斜至老版本微服务实例,并在所有访问流量倾斜完成之后,输出发布失败信号。
在其中一些实施例中,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州朗澈科技有限公司,未经杭州朗澈科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210201616.X/2.html,转载请声明来源钻瓜专利网。