本发明涉及通信领域,尤其是一种基于api网关的灰度发布实现方法及装置。
背景技术:
1、在数据业务化时代,数据作为生产要素,因流动而产生价值,承载着企业敏感数据和业务逻辑的api也进入了高速扩展时期。同时,随着微服务的改造和数据化进展的加速,api版本变更越来越快,服务的迭代速度也越来越快。为了满足不断变化的市场需求和技术趋势,api需要不断进行更新和优化,以确保其能够满足不断变化的应用场景和需求。api网关作为api的统一入口,需要支持服务的快速发布,将新版本服务逐步引入到生产环境中。
2、现有api网关中服务的发布比较简单,存在以下问题:
3、1、部分api网关不支持服务的灰度发布,只能是用传统的全量发布,没有提前在部分用户中验证新版本的稳定性和可用性,增加了发布失败的风险;
4、2、部分api网关虽然支持服务的灰度发布,但是仅支持按内容灰度和按比例灰度,不支持按签名灰度。同时现有api网关不支持根据回滚条件自动进行回滚,也不支持切换到服务的已发布历史版本。
技术实现思路
1、为解决现有技术存在的问题,本发明提供一种基于api网关的灰度发布实现方法及装置,择灰度发布的服务,并配置灰度发布的任务,融合多种灰度发布策略,提高了对灰度发布的可控性以及兼容性。
2、为实现上述目的,本发明采用下述技术方案:
3、在本发明一实施例中,提出了一种基于api网关的灰度发布实现方法,该方法包括:
4、s01、选择灰度发布的服务,并配置灰度发布的任务;
5、进一步地,所述s01包括:
6、s011、选择需要灰度发布的服务,然后新增灰度发布任务;
7、s012、对灰度发布的任务进行配置;
8、进一步地,所述灰度发布任务包括:任务名称、发布时间、任务描述、灰度发布策略、回滚方式以及回滚条件;
9、进一步地,所述灰度发布策略包括:按比例灰度、按内容灰度和按签名灰度;
10、所述按比例灰度:将流量按照流量比例流向不同版本的服务;
11、所述按内容灰度:根据请求的内容作为匹配条件,控制流量流向的服务版本;
12、所述按签名灰度:使用流量中的签名作为匹配条件,适用于不同用户的灰度发布。
13、例如新版本上线前,需要测试人员在线上进行测试,可以配置按签名灰度将测试人员的请求引流到新版本。
14、进一步地,所述回滚方式包括:人工干预和自动回滚;
15、所述人工干预:在灰度发布过程中,运维团队实时监控系统流量,并根据实际情况决定是否回滚;
16、所述自动回滚:api网关根据回滚条件,自动回滚到上个版本;
17、进一步地,所述回滚条件包括:错误率、响应时间,可以针对所述指标自定义阈值,超过阈值可以触发自动回滚;
18、s013、配置灰度发布计划,并选择发布计划对应的后端环境和版本;
19、进一步地,所述发布计划包括立即发布和定时发布;
20、进一步地,所述后端环境包括测试环境、预发布环境和线上环境;
21、进一步地,所述版本为:灰度发布的服务版本,新发布的服务版本要比当前运行的版本新;
22、s02、由api网关的控制面进行发布策略的更新,同时监控灰度发布的发布状态;
23、进一步地,所述s02包括:
24、s021、灰度发布开始发布之后,灰度发布状态变成发布中,api网关的控制面可以对发布策略进行更新;
25、进一步地,灰度发布任务的创建包括但不限于一个,灰度发布任务只能有一个状态为发布中;
26、具体实施时,如果本次发布使用按比例发布,初始发布时配置20%的流量进行新版本,80%的流量进入老版本,发布过程中确认新版本运行正常,可以逐步提高新版本的流量比例;
27、s022、api网关的控制面监控灰度的发布状态;
28、进一步地,所述api网关控制面实时监控服务的新老版本运行情况,包括请求时延、上下游流量、错误数、请求rps;
29、s03、api网关根据发布任务的流量监控结果,确认灰度发布是否成功;
30、进一步地,所述s03包括:
31、s031、灰度发布过程中,如果实时监控结果有异常,可以对已发布的版本进行回滚操作;
32、进一步地,所述s031包括:
33、s0311、针对人工干预的回滚方式,点击版本下线,api网关会对服务进行回滚;
34、s0312、针对自动回滚的回滚方式,api网关根据回滚条件自动触发回滚;
35、s0313、回滚之后,服务会恢复到发布前的版本,发布任务的状态变为待发布。
36、s032、灰度发布过程中,如果实时监控结果正常,点击灰度版本的接管所有流量,此时灰度发布的节点配置会覆盖服务节点的配置,任务状态变更为已发布;
37、进一步地,灰度发布成功后,已发布的版本不可更改;
38、进一步地,已发布的版本不会展示在发布任务列表中,只在发布历史中展示;
39、s04、灰度发布成功后,api网关将老版本的服务存到发布历史记录中,可以切换到发布历史中的其他版本。
40、进一步地,只能查看和切换历史版本,不可以更改历史版本的配置;
41、进一步地,可以指定后端环境,然后选定某个版本然后操作切换到此版本,该操作会使该版本直接替换之前的版本,实时生效。
42、在本发明一实施例中,还提出了一种基于api网关的灰度发布实现装置,该装置包括:
43、灰度发布配置模块、选择灰度发布的服务,并配置灰度发布的任务;
44、发布策略更新模块、由api网关的控制面进行发布策略的更新,同时监控灰度发布的发布状态;
45、发布结果确认模块、api网关根据发布任务的流量监控结果,确认灰度发布是否成功;
46、存储切换模块、灰度发布成功后,api网关将老版本的服务存到发布历史记录中,可以切换到发布历史中的其他版本。
47、在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于api网关的灰度发布实现方法。
48、在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于api网关的灰度发布实现方法的计算机程序。
49、有益效果:
50、本发明一种基于api网关的灰度发布实现方法及装置,通过灰度发布的服务,由api网关的控制面进行发布计划的更新,同时监控灰度的发布状态,可以融合多种灰度发布策略,提高了对灰度发布的可控性以及兼容性。
1.一种基于api网关的灰度发布实现方法,其特征在于,该方法包括:
2.根据权利要求1所述的基于api网关的灰度发布实现方法,其特征在于,所述s01包括:
3.根据权利要求2所述的基于api网关的灰度发布实现方法,其特征在于,所述灰度发布任务包括:任务名称、发布时间、任务描述、灰度发布策略、回滚方式以及回滚条件。
4.根据权利要求3所述的基于api网关的灰度发布实现方法,其特征在于,所述灰度发布策略包括:按比例灰度、按内容灰度和按签名灰度;
5.根据权利要求3所述的基于api网关的灰度发布实现方法,其特征在于,所述回滚方式包括:人工干预和自动回滚;
6.根据权利要求3所述的基于api网关的灰度发布实现方法,其特征在于,所述回滚条件包括:错误率、响应时间。
7.根据权利要求2所述的基于api网关的灰度发布实现方法,其特征在于,所述发布计划包括立即发布和定时发布;
8.根据权利要求1所述的基于api网关的灰度发布实现方法,其特征在于,所述s02包括:
9.根据权利要求8所述的基于api网关的灰度发布实现方法,其特征在于,灰度发布任务的创建包括但不限于一个,灰度发布任务只能有一个状态为发布中。
10.根据权利要求8所述的基于api网关的灰度发布实现方法,其特征在于,所述api网关控制面实时监控服务的新老版本运行情况,包括请求时延、上下游流量、错误数、请求rps。
11.根据权利要求1所述的基于api网关的灰度发布实现方法,其特征在于,所述s03包括:
12.根据权利要求11所述的基于api网关的灰度发布实现方法,其特征在于,所述s031包括:
13.根据权利要求11所述的基于api网关的灰度发布实现方法,其特征在于,所述灰度发布成功后,已发布的版本不可更改。
14.一种基于api网关的灰度发布实现装置,其特征在于,该装置包括:
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-13任一项所述方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-13任一项所述方法的计算机程序。