一种基于版本校验的软件交付方法、系统技术方案

技术编号:37381304 阅读:9 留言:0更新日期:2023-04-27 07:22
本发明专利技术提供一种基于版本校验的软件交付方法及系统,本发明专利技术首先预置好待交付工作区的空间格式;定时收录用户当前正在用的软件版本,作为版本基线,并按照预置的空间格式保存入库,通过对目标环境的子服务基线版本与待交付工作区最新版本进行比对校验,若相等则表明该子服务不涉及更新,若不相等则对待交付工作区进行深度递归遍历,匹配大于基线版本且小于等于最新版本的属于该子服务的全部物料,最终生成所有子服务的推荐交付清单,整个过程不需要人工干预。要人工干预。要人工干预。

【技术实现步骤摘要】
一种基于版本校验的软件交付方法、系统


[0001]本专利技术涉及人工智能
,具体来说是一种基于版本校验的软件交付方法、系统。

技术介绍

[0002]目前行业内比较流行的致力于软件交付的开源工具有很多,比如数据库版本管理与交付工具Flyway/Liquibase,文件版本管理与交付工具Puppet/Ansible/Saltstack等,这些工具在产品成熟度很高、项目数量不多、环境差异较小的企业基本能满足需求。但是还有为数不少的中小型企业,他们以项目交付为主要业务,产品迭代速度非常快,运维工程师基本每天都要面对多个高度定制化环境的产品交付工作,此时单纯的开源交付工具就显得有些捉襟见肘,原因如下:第一,需要人工识别各种定制化物料并批量推送到各个定制化环境,容易遗漏且容易出错;第二,无法做到更加精细的版本控制,版本回溯困难,比如做到应用服务维度的版本控制。为了快速识别各种定制化交付场景,并使软件版本得到更加精细化管理,特提出一种基于版本校验的软件交付方法,大幅减少软件交付过程中的人工介入量,从而提升整体交付效率与质量。

技术实现思路

[0003]本专利技术所要解决的技术问题在于如何在降低人员参与的情况下保证软件交付的准确性。
[0004]本专利技术通过以下技术手段实现解决上述技术问题的:
[0005]一种基于版本校验的软件交付方法,其特征在于,包括以下步骤:
[0006]S01.创建交付工作区,按照预设格式预置好待交付工作区的空间格式;
[0007]S02.基线版本入库,获取用户正在使用的软件版本作为基线版本,并按照预设格式存入数据库;
[0008]S03.软件交付版本号创建:按照预设格式将待交付软件发布至待交付工作区;
[0009]S04.创建指定环境和指定版本的交付任务,利用基线版本对待交付软件进行比对校验,若相等则表明该子服务不涉及更新,若不相等则对待交付工作区进行深度递归遍历,匹配大于基线版本且小于等于最新版本的属于该子服务的全部物料,最终生成所有子服务的推荐交付清单;
[0010]S05.根据交付清单交付。
[0011]本专利技术的工作原理是:本专利技术首先预置好待交付工作区的空间格式;定时收录用户当前正在用的软件版本,作为版本基线,并按照预置的空间格式保存入库,通过目标环境的子服务基线版本与待交付工作区最新版本进行比对校验,若相等则表明该子服务不涉及更新,若不相等则对待交付工作区进行深度递归遍历,匹配大于基线版本且小于等于最新版本的属于该子服务的全部物料,最终生成所有子服务的推荐交付清单,整个过程不需要人工干预。
[0012]进一步的,所述步骤S01中的预设格式为环境名/子服务名/子服务版本号/物料类型名/具体物料文件;其中所述环境名为用户唯一标识,子服务名为待交付软件的子功能模块,所述物料为与子服务相关的变更因子。
[0013]进一步的,所述步骤S02中基线版本具体获取方式为:定时调用Kubernetes的ApiServer接口,通过排序、去重之后获得各个定制化环境正在运行的子服务名和子服务版本号作为基线信息存储入数据库。
[0014]进一步的,在同一环境名下,子服务名不得重复;所述子服务所有的物料根据属性进行分类。
[0015]进一步的,还包括核验步骤,在交付之前,利用“环境名、子服务名、子服务版本号、物料类型名、具体物料文件MD5值”组合生成唯一Hash,根据待交付物的Hash值与历史Hash值进行比对,没有则执行,有则跳过。
[0016]与上述方法对应的,本专利技术还提供一种基于版本校验的软件交付系统,包括:
[0017]交付工作区创建模块,用以创建交付工作区,按照预设格式预置好待交付工作区的空间格式;
[0018]版本基线模块,用以定时获取用户正在使用的软件版本作为基线版本,并按照预设格式存入数据库;
[0019]软件交付版本号创建模块,用以按照预设格式将待交付软件发布至待交付工作区;
[0020]核心版本校验模块,用以创建指定环境和指定版本的交付任务,利用基线版本对待交付软件进行比对校验,若相等则表明该子服务不涉及更新,若不相等则对待交付工作区进行深度递归遍历,匹配大于基线版本且小于等于最新版本的属于该子服务的全部物料,最终生成所有子服务的推荐交付清单;
[0021]交付模块,用以根据交付清单交付。
[0022]进一步的,所述交付工作区创建模块中的预设格式为环境名/子服务名/子服务版本号/物料类型名/具体物料文件;其中所述环境名为用户唯一标识,子服务名为待交付软件的子功能模块,所述物料为与子服务相关的变更因子。
[0023]进一步的,所述版本基线模块中基线版本具体获取方式为:定时调用Kubernetes的ApiServer接口,通过排序、去重之后获得各个定制化环境正在运行的子服务名和子服务版本号作为基线信息存储入数据库。
[0024]进一步的,在同一环境名下,子服务名不得重复;所述子服务所有的物料根据属性进行分类。
[0025]进一步的,还包括核验模块,用以在交付之前,利用“环境名、子服务名、子服务版本号、物料类型名、具体物料文件MD5值”组合生成唯一Hash,根据待交付物的Hash值与历史Hash值进行比对,没有则执行,有则跳过。
[0026]本专利技术的优点在于:
[0027]本专利技术首先预置好待交付工作区的空间格式;定时收录用户当前正在用的软件版本,作为版本基线,并按照预置的空间格式保存入库,通过对目标环境的子服务基线版本与待交付工作区最新版本进行比对校验,若相等则表明该子服务不涉及更新,若不相等则对待交付工作区进行深度递归遍历,匹配大于基线版本且小于等于最新版本的属于该子服务
的全部物料,最终生成所有子服务的推荐交付清单,整个过程不需要人工干预。
[0028]本专利技术根据预设好的规则和算法自动检索出目标环境的待交付清单,整个过程无需人工干预,使多定制化环境的交付速度有极大提升,并且能充分降低遗漏检索和错误检索的概率发生;
[0029]本专利技术通过对待交付物和历史交付物的checksum值对比,能充分避免因重复执行导致的错误情况发生,在现有输入不变的前提下,无论执行多少次,都能保证结果是我们的预期状态;
[0030]本专利技术对整个软件系统的版本做了更加细致的划分,以应用服务为中心,待交付物为属性的版本管理方式,使交付组合可以更加灵活,并且指定版本推送和版本回溯也变得更加简单。
附图说明
[0031]图1为本专利技术实施例中交付方法的流程框图;
[0032]图2本专利技术实施例中交付方法生产的交付清单图例。
具体实施方式
[0033]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于版本校验的软件交付方法,其特征在于,包括以下步骤:S01.创建交付工作区,按照预设格式预置好待交付工作区的空间格式;S02.基线版本入库,获取用户正在使用的软件版本作为基线版本,并按照预设格式存入数据库;S03.软件交付版本号创建:按照预设格式将待交付软件发布至待交付工作区;S04.创建指定环境和指定版本的交付任务,利用基线版本对待交付软件进行比对校验,若相等则表明该子服务不涉及更新,若不相等则对待交付工作区进行深度递归遍历,匹配大于基线版本且小于等于最新版本的属于该子服务的全部物料,最终生成所有子服务的推荐交付清单;S05.根据交付清单交付。2.根据权利要求1所述的基于版本校验的软件交付方法,其特征在于,所述步骤S01中的预设格式为环境名/子服务名/子服务版本号/物料类型名/具体物料文件;其中所述环境名为用户唯一标识,子服务名为待交付软件的子功能模块,所述物料为与子服务相关的变更因子。3.根据权利要求1所述的基于版本校验的软件交付方法,其特征在于,所述步骤S02中基线版本具体获取方式为:定时调用Kubernetes的ApiServer接口,通过排序、去重之后获得各个定制化环境正在运行的子服务名和子服务版本号作为基线信息存储入数据库。4.根据权利要求2所述的基于版本校验的软件交付方法,其特征在于,在同一环境名下,子服务名不得重复;所述子服务所有的物料根据属性进行分类。5.根据权利要求1至4任一所述的基于版本校验的软件交付方法,其特征在于,还包括核验步骤,在交付之前,利用“环境名、子服务名、子服务版本号、物料类型名、具体物料文件MD5值”组合生成唯一Hash,根据待交付物的Hash值与历史Hash值进行比对,没有则执行,有则跳过。6.一种基于版本校验的软件交付系统,...

【专利技术属性】
技术研发人员:陈国汪浩
申请(专利权)人:上海敏桥信息科技有限公司
类型:发明
国别省市:

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

1