System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开的实施方式涉及计算机,更具体地,本公开的实施方式涉及服务端组件的自动化升级系统、计算机可读介质及电子设备。
技术介绍
1、本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
2、在微服务架构中,随着应用规模的持续性扩大,细化拆分逐渐深入以及业务的进一步发展,导致系统性、大规模的升级成本高、耗时长。目前,可以通过openrewrite开源框架构建源代码的抽象语法树,以批量化重构源代码,进行代码版本自动化变更。
3、上述方案仅在代码变更的节点进行辅助,但是应用升级中的代码变更是否能够稳定落地还需要进一步验证,导致成本、耗时的降低有限,而且在面对大规模的复杂应用升级时,其稳定性、兼容性也存在一定风险。
技术实现思路
1、在本上下文中,本公开的实施方式期望提供一种服务端组件的自动化升级方法、服务端组件的自动化升级装置、计算机可读介质及电子设备。
2、根据本公开实施方式的第一方面,提供一种服务端组件的自动化升级系统,该系统可以包括:升级变更模块,用于在依赖模式下,响应于组件升级请求,基于服务端应用的主代码分支创建子代码分支,并调取目标版本对应的自动化升级插件对子代码分支进行重构;目标版本对应的自动化升级插件配置有将组件升级到目标版本的升级规则;或,升级变更模块,用于在边车模式下,响应于组件升级请求,确定目标版本的组件对应的边车进程;测试部署模块,用于在依赖模式下,创建第一测试环境并在第一测试
3、在本公开一可选的实施例中,升级变更模块,还用于在依赖模式下,对重构后的子代码分支进行依赖分析,以确定服务端应用依赖目标版本的组件。
4、在本公开一可选的实施例中,结果检测模块,还用于在边车模式下,在灰度发布的异常验证不通过时进行线上回滚,记录异常验证的结果,并终止组件升级进度;或,结果检测模块,还用于在边车模式下,在全量发布的异常验证不通过时进行线上回滚,记录异常验证的结果,并终止组件升级进度。
5、在本公开一可选的实施例中,系统还包括:组件管理模块,用于对组件的原始版本在组件仓库中的发布进行管控,以及对组件的原始版本进行分类管理,分类管理包括以下至少一种:基于风险识别的分类管理;基于组件间版本兼容性的分类管理。
6、在本公开一可选的实施例中,组件管理模块,还在基于风险识别的分类管理基础上,对存在风险的原始版本生成组件升级请求。
7、在本公开一可选的实施例中,组件管理模块,还用于组件间版本兼容性的分类管理基础上,确定组件升级请求的目标版本在组件间所兼容的原始版本,以及在组件间所兼容的原始版本不包括组件的线上运行版本时,对组件间所兼容的原始版本生成对应的组件升级请求。
8、在本公开一可选的实施例中,系统还包括升级任务模块,用于响应于对组件到目标版本的升级范围选择生成组件升级请求;组件升级范围包括组件的源版本范围,被单独选择的服务端应用,依赖组件的所有服务端应用中的至少一个。
9、在本公开一可选的实施例中,升级任务模块,还用于在组件升级范围大于或等于预定范围时,基于组件升级范围确定组件预升级范围,组件预升级范围小于组件升级范围;升级任务模块,还用于基于组件预升级范围生成组件预升级请求,以使升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块响应于组件预升级请求执行组件预升级范围内的组件预升级;升级任务模块,还用于在组件预升级无异常的情况下,基于组件升级范围生成组件升级请求。
10、在本公开一可选的实施例中,升级任务模块,还用于在升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块任意一个出现异常失败的情况下,执行异常失败对应的重试策略。
11、在本公开一可选的实施例中,升级任务模块,还用于对升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块至少一个进行任务编排;或,升级任务模块,还用于对升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块至少一个进行任务统计。
12、在本公开一可选的实施例中,升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块至少一个在执行过程中进行限流;或,升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块至少一个在执行结束时释放资源占用。
13、在本公开一可选的实施例中,升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块采用基于消息中间件的消息通知机制,且支持幂等消费。
14、在本公开一可选的实施例中,升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块至少一个支持基于钩子技术的独立扩展。
15、在本公开一可选的实施例中,升级变更模块、测试部署模块、测试验证模块、组件发布模块与结果检测模块至少一个支持执行过程、执行异常的可视化。
16、根据本公开实施方式的第二方面,提供一种计算机可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一种服务端组件的自动化升级系统的模块。
17、根据本公开实施方式的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一种服务端组件的自动化升级系统的模块。
18、根据本公开实施方式的服务端组件的自动化升级系统,该系统包括升级变更模块、测试部署模块、测试验证模块、组件发布模块以及结果检测模块。在依赖模式下,能够响应于组件升级请求创建先基于主代码分支创建子代码分支,并在子代码分支上调取自动的自动化升级插件进行重构,以及自动化部署测试环境与子代码分支,在测试环境中进行功能测试与代码验证,通过后发起子代码合并请求以及基于主代码分支、线上环境的组件依赖版本确定组件升级进度。在边车模式下,能够响应于组件升级请求确定目标版本的组件对应的边车进程,进而通过自动化部署测试环境与边车进程进行功能测试与代码验证,在通过后对该边车进程进行灰度发布以及全量发布,并在灰度发布、全量发布后进行异常验证本文档来自技高网...
【技术保护点】
1.一种服务端组件的自动化升级系统,其特征在于,所述系统包括:
2.根据权利要求1所述的系统,其特征在于,所述升级变更模块,还用于在依赖模式下,对重构后的所述子代码分支进行依赖分析,以确定所述服务端应用依赖所述目标版本的组件。
3.根据权利要求1所述的系统,其特征在于,所述结果检测模块,还用于在边车模式下,在所述灰度发布的所述异常验证不通过时进行线上回滚,记录所述异常验证的结果,并终止组件升级进度;或,结果检测模块,还用于在边车模式下,在所述全量发布的所述异常验证不通过时进行线上回滚,记录所述异常验证的结果,并终止组件升级进度。
4.根据权利要求1所述的系统,其特征在于,所述系统还包括:
5.根据权利要求4所述的系统,其特征在于,所述组件管理模块,还在基于风险识别的分类管理基础上,对存在风险的所述原始版本生成组件升级请求。
6.根据权利要求4所述的系统,其特征在于,所述组件管理模块,还用于组件间版本兼容性的分类管理基础上,确定所述组件升级请求的目标版本在组件间所兼容的原始版本,以及在组件间所兼容的原始版本不包括组件的线上
7.根据权利要求1所述的系统,其特征在于,所述系统还包括升级任务模块,用于响应于对组件到目标版本的升级范围选择生成组件升级请求;所述组件升级范围包括组件的源版本范围,被单独选择的所述服务端应用,依赖所述组件的所有所述服务端应用中的至少一个。
8.根据权利要求7所述的系统,其特征在于,所述升级任务模块,还用于在所述组件升级范围大于或等于预定范围时,基于所述组件升级范围确定组件预升级范围,所述组件预升级范围小于所述组件升级范围;
9.一种计算机可读介质,所述计算机可读介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至8任一项所述的服务端组件的自动化升级系统中的模块。
10.一种电子设备,其特征在于,应用于权利要求1至8一项所述的服务端组件的自动化升级系统,包括:
...【技术特征摘要】
1.一种服务端组件的自动化升级系统,其特征在于,所述系统包括:
2.根据权利要求1所述的系统,其特征在于,所述升级变更模块,还用于在依赖模式下,对重构后的所述子代码分支进行依赖分析,以确定所述服务端应用依赖所述目标版本的组件。
3.根据权利要求1所述的系统,其特征在于,所述结果检测模块,还用于在边车模式下,在所述灰度发布的所述异常验证不通过时进行线上回滚,记录所述异常验证的结果,并终止组件升级进度;或,结果检测模块,还用于在边车模式下,在所述全量发布的所述异常验证不通过时进行线上回滚,记录所述异常验证的结果,并终止组件升级进度。
4.根据权利要求1所述的系统,其特征在于,所述系统还包括:
5.根据权利要求4所述的系统,其特征在于,所述组件管理模块,还在基于风险识别的分类管理基础上,对存在风险的所述原始版本生成组件升级请求。
6.根据权利要求4所述的系统,其特征在于,所述组件管理模块,还用于组件间版本兼容性的分类管理基础上,确定所述...
【专利技术属性】
技术研发人员:邵东风,郭元华,陈锦海,
申请(专利权)人:杭州网易云音乐科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。