[0001]
本发明涉及基架运维技术领域,尤其涉及一种配置文件差异校验方法、装置、设备及存储介质。
背景技术:[0002]
目前软件产品版本上线,需先克隆一份生产环境的配置(即测试环境),并测试软件在测试环境中工作是否正常,经过测试环境测试正常后,再将该软件投入到生产环境上(正式提供给客户使用的环境。),以供用户使用。其中,虽然测试环境是生产环境的克隆环境,测试环境理论上模拟生产环境,但是两者亦有区别之处,比如一般测试服务器没有cdn(content delivery network,内容分发网络)这类型线上第三方负载均衡的相关服务,且不同的网络运营商提供不同的网络通讯,亦可能导致生产环境和测试环境对软件的运行结果不同。
[0003]
当前生产环境的配置刷新均由人工操作,测试环境和生产环境的配置通常通过人工观察或者beyond compare工具单独比对,难以发现生产环境中配置的错误,可能导致生产环境效果与测试全量验证结论不一致,甚至出现软件生产问题。故存在测试环境配置和生产环境配置的差异校验不够不全面。
技术实现要素:[0004]
本发明的主要目的在于解决测试环境配置和生产环境配置的差异校验不够不全面的问题。
[0005]
本发明第一方面提供了一种配置文件差异校验方法,包括:
[0006]
获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0007]
将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0008]
根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告;
[0009]
基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0010]
可选的,在本发明第一方面的第一种实现方式中,所述将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象包括:
[0011]
解析所述各第一配置文件与所述各第二配置文件,得到对应的第一配置字符集和第二配置字符集;
[0012]
采用预设校验格式,将所述第一配置字符集转化为多个第一字符串,以及采用预设校验格式,将所述第二配置字符集转化为多个第二字符串;
[0013]
将所述第一字符串保存为第一校验对象,以及将所述第二字符串保存为第二校验对象。
[0014]
可选的,在本发明第一方面的第二种实现方式中,所述差异对比规则包括第一对
比规则和第二对比规则,所述根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告包括:
[0015]
根据所述校验标识信息,将所述各第一校验对象划分为第一结构化校验对象和第一非结构化校验对象,以及将所述各第二校验对象划分为第二结构化校验对象和第二非结构化校验对象;
[0016]
采用所述第一对比规则,对所述第一结构化校验对象和所述第二结构化校验对象进行对比,生成两者的全量数据对比报告;
[0017]
采用所述第二对比规则,对所述第一非结构化校验对象和所述第二非结构化校验对象进行对比,生成两者的差异数据对比报告;
[0018]
基于所述全量数据对比报告和所述差异数据对比报告,得到所述各第一校验对象和所述各第二校验对象的差异报告。
[0019]
可选的,在本发明第一方面的第三种实现方式中,在所述采用所述第二对比规则,对所述第一非结构化校验对象和所述第二非结构化校验对象进行对比之前,还包括:
[0020]
获取配置过滤列表,所述配置过滤列表包括历史部署配置和与所述软件产品部署环境无关的配置;
[0021]
筛除所述配置过滤列表中各配置对应的所述第一非结构化校验对象和所述第二非结构化校验对象。
[0022]
可选的,在本发明第一方面的第四种实现方式中,所述采用所述第二对比规则,对所述第一非结构化校验对象和所述第二非结构化校验对象进行对比,生成两者的差异数据对比报告包括:
[0023]
获取所述所述软件产品部署环境的配置拼接逻辑,并确定所述配置拼接逻辑中的拼接节点;
[0024]
根据所述拼接节点,对筛除后的各第一非结构化校验对象进行拼接,得到对应第一数据字典,以及根据所述拼接节点,对筛除后的各第二非结构化校验对象进行拼接,得到对应的第二数据字典;
[0025]
根据所述第一数据字典与所述第二数据字典,逐一对比所述第一非结构化校验对象和所述第二非结构化校验对象,生成两者的差异数据对比报告。
[0026]
可选的,在本发明第一方面的第五种实现方式中,在所述根据所述第一数据字典与所述第二数据字典,逐一对比所述第一非结构化校验对象和所述第二非结构化校验对象,生成两者的差异数据对比报告之后,还包括:
[0027]
判断是否存在未进行对比的第一非结构化校验对象或第二非结构化校验对象;
[0028]
若是,则将所述未进行对比的第一非结构化校验对象或第二非结构化校验对象写入所述差异数据对比报告中。
[0029]
可选的,在本发明第一方面的第六种实现方式中,所述第一配置文件和所述多个第二配置文件存储于区块链中。
[0030]
本发明第二方面提供了一种配置文件差异校验装置,包括:
[0031]
获取模块,用于获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0032]
转化模块,用于将所述各第一配置文件和所述各第二配置文件分别转化为对应的
第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0033]
对比模块,用于根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告;
[0034]
生成模块,用于基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0035]
可选的,在本发明第二方面的第一种实现方式中,所述转化模块包括:
[0036]
解析单元,用于解析所述各第一配置文件与所述各第二配置文件,得到对应的第一配置字符集和第二配置字符集;
[0037]
转化单元,用于采用预设校验格式,将所述第一配置字符集转化为多个第一字符串,以及采用预设校验格式,将所述第二配置字符集转化为多个第二字符串;
[0038]
保存单元,用于将所述第一字符串保存为第一校验对象,以及将所述第二字符串保存为第二校验对象。
[0039]
可选的,在本发明第二方面的第二种实现方式中,所述对比模块包括:
[0040]
分类单元,用于根据所述校验标识信息,将所述各第一校验对象划分为第一结构化校验对象和第一非结构化校验对象,以及将所述各第二校验对象划分为第二结构化校验对象和第二非结构化校验对象;
[0041]
第一对比单元,用于采用所述第一对比规则,对所述第一结构化校验对象和所述第二结构化校验对象进行对比,生成两者的全量数据对比报告;
[0042]
第二对比单元,用于采用所述第二对比规则,对所述第一非结构化校验对象和所述第二非结构化校验对象进行对比,生成两者的差异数据对比报告;
[0043]
生成单元,用于基于所述全量数据对比报告和所述差异数据对比报告,得到所述各第一校验对象和所述各第二校验对象的差异报告。
[0044]
可选的,在本发明第二方面的第三种实现方式中,在所述第二对比单元之前,还包括过滤单元,所述过滤单元用于:
[0045]
获取配置过滤列表,所述配置过滤列表包括历史部署配置和与所述软件产品部署环境无关的配置;
[0046]
筛除所述配置过滤列表中各配置对应的所述第一非结构化校验对象和所述第二非结构化校验对象。
[0047]
可选的,在本发明第二方面的第四种实现方式中,所述第二对比单元包括:
[0048]
确定子单元,用于获取所述所述软件产品部署环境的配置拼接逻辑,并确定所述配置拼接逻辑中的拼接节点;
[0049]
拼接子单元,用于根据所述拼接节点,对筛除后的各第一非结构化校验对象进行拼接,得到对应第一数据字典,以及根据所述拼接节点,对筛除后的各第二非结构化校验对象进行拼接,得到对应的第二数据字典;
[0050]
对比子单元,用于根据所述第一数据字典与所述第二数据字典,逐一对比所述第一非结构化校验对象和所述第二非结构化校验对象,生成两者的差异数据对比报告。
[0051]
可选的,在本发明第二方面的第五种实现方式中,在所述对比子单元之后,还包括:
[0052]
判别子单元,用于判断是否存在未进行对比的第一非结构化校验对象或第二非结构化校验对象;
[0053]
写入子单元,用于若存在未进行对比的第一非结构化校验对象或第二非结构化校验对象,则将所述未进行对比的第一非结构化校验对象或第二非结构化校验对象写入所述差异数据对比报告中。
[0054]
可选的,在本发明第二方面的第六种实现方式中,所述第一配置文件和所述多个第二配置文件存储于区块链中。
[0055]
本发明第三方面提供了一种配置文件差异校验设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述配置文件差异校验设备执行上述的配置文件差异校验方法。
[0056]
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的配置文件差异校验方法。
[0057]
本发明提供的技术方案中,通过将软件产品部署环境的多个第一配置文件和多个第二配置文件转化为便于差异对比的第一校验对象和第二校验对象;然后通过对校验标识信息对两者进行对比,生成两者的差异报告;最后通过差异报告表示对应第一配置文件和第二配置文件的校验结果,实现对软件产品部署环境配置文件差异的全面校验。
附图说明
[0058]
图1为本发明实施例中配置文件差异校验方法的第一个实施例示意图;
[0059]
图2为本发明实施例中配置文件差异校验方法的第二个实施例示意图;
[0060]
图3为本发明实施例中配置文件差异校验方法的第三个实施例示意图;
[0061]
图4为本发明实施例中配置文件差异校验方法的第四个实施例示意图;
[0062]
图5为本发明实施例中配置文件差异校验装置的一个实施例示意图;
[0063]
图6为本发明实施例中配置文件差异校验装置的另一个实施例示意图;
[0064]
图7为本发明实施例中配置文件差异校验设备的一个实施例示意图。
具体实施方式
[0065]
本发明实施例提供了一种配置文件差异校验方法、装置、设备及存储介质,获取软件产品部署环境的多个第一配置文件和多个第二配置文件;将各第一配置文件和各第二配置文件转化为对应的第一校验对象和第二校验对象;根据第一校验对象和第二校验对象带有校验标识信息,采用预置差异对比规则,对各第一校验对象和各第二校验对象进行逐一对比,生成两者的差异报告;根据差异报告,得到第一配置文件和第二配置文件的校验结果,以用于调整所述软件产品部署环境。本发明还涉及区块链技术,所述第一配置文件和第二配置文件存储于区块链中。本发明实现了对测试环境和生产环境的差异进行全面验证。
[0066]
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚
地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0067]
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中配置文件差异校验方法的第一个实施例包括:
[0068]
101、获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0069]
可以理解的是,本发明的执行主体可以为配置文件差异校验装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。需要强调的是,为进一步保证上述第一配置文件和第二配置文件的私密和安全性,上述第一配置文件和第二配置文件还可以存储于一区块链的节点中。
[0070]
本实施例中,软件产品部署环境包括部署软件产品所在的测试环境、生产环境;而第一配置文件和第二配置文件分别为测试环境的配置文件和生产环境的配置文件。
[0071]
102、将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0072]
本实施例中,第一配置文件和第二配置文件为测试环境和生产环境的原始文件,可以以html(hypertext markup language,超文本标记语言)字符集的形式进行记录。因html的标识属性,若使用html对第一配置文件和第二配置文件进行比较,则难以比较两者的具体参数内容,故将第一配置文件转化为第一校验对象,以及将第二配置文件转化为第二校验对象,并以字符串进行表示。
[0073]
另外,校验标识信息可以为文件名后缀,具体包括:yml、json、properties、ini、conf、txt。通过校验标识信息,可将各第一校验对象和各第二校验对象分别分类,以用不同的对比方法对同类型的第一校验对象和第二校验对象进行比较。
[0074]
103、根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告;
[0075]
本实施例中,根据校验标识信息,对第一校验对象和第二校验对象进行分类;根据第一校验对象和第二校验对象的类型,采用对应的预置差异对比规则对两者进行逐一对比,得到两者的差异;对两者的差异进行标准化处理,生成两者的差异报告。
[0076]
比如对于同为json格式的第一校验对象和第二校验对象,可直接使用python的difflib库的differ().compare()方法检查两者的差异;而对于同为txt格式文件的第一校验对象和第二校验对象,可使用如beyond compare的文本检查工具检查两者的差异。
[0077]
另外,差异报告包括全量数据对比报告和差异数据对比报告,后者用于呈现第一配置文件和第二配置文件的差异,而前者用于辅助定位两者的差异位置。
[0078]
104、基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0079]
本实施例中,校验结果指第一配置文件和第二配置文件之间的差异位置和差异内容,可以通过差异报告进行确定。
[0080]
优选的,校验结果指第二配置文件(生产环境)相对于第一配置文件(测试环境)的差异位置和差异内容,故可参照第一配置文件,基于差异位置和差异内容对第二配置文件进行修改,以调整软件产品部署环境中的测试环境。
[0081]
本发明实施例中,通过将软件产品部署环境的多个第一配置文件和多个第二配置
文件转化为便于差异对比的第一校验对象和第二校验对象;然后通过对校验标识信息对两者进行对比,生成两者的差异报告;最后通过差异报告表示对应第一配置文件和第二配置文件的校验结果,实现对软件产品部署环境配置文件差异的全面校验。
[0082]
请参阅图2,本发明实施例中配置文件差异校验方法的第二个实施例包括:
[0083]
201、获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0084]
202、将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0085]
203、根据所述校验标识信息,将所述各第一校验对象划分为第一结构化校验对象和第一非结构化校验对象,以及将所述各第二校验对象划分为第二结构化校验对象和第二非结构化校验对象;
[0086]
本实施例中,结构化校验对象指该类文件集合具有多层结构,特点是结构基本统一;非结构化对象通常指自定义的特殊属性文件,特点时结构配置自由度较高。此处结构化校验对象包括第一结构化校验对象和第二结构化校验对象;非结构化校验对象包括第一非结构化校验对象和第二非结构化校验对象。
[0087]
优选地,此处以文件后缀作为校验标识信息,区分结构化校验对象和非结构化校验对象;结构化校验对象的文件后缀包括yml、json等,通常为数据交换格式;非结构化校验对象的文件后缀包括properties、ini、conf、txt。
[0088]
204、采用所述第一对比规则,对所述第一结构化校验对象和所述第二结构化校验对象进行对比,生成两者的全量数据对比报告;
[0089]
本实施例中,结构化校验对象可以直接进行全量数据的对比,面对大量的校验对象时,增加校验效率;具体可使用python的difflib库的differ().compare()方法进行对比。此处全量数据对比报告以html格式文件进行表示,用于定位第一结构化校验对象和第二结构化校验对象差异位置。
[0090]
205、获取配置过滤列表,所述配置过滤列表包括历史部署配置和与所述软件产品部署环境无关的配置;
[0091]
本实施例中,历史部署的配置包括:
[0092]
a.无关规则,如非代码逻辑相关配置,比如application相关文件为springcloud框架配置,一直没有做变更,这类配置文件可以无需进行校验;
[0093]
b.失效规则,如历史版本失效配置。
[0094]
而欲软件产品部署环境无关的配置可以包括:
[0095]
c.无关配置,如环境差异配置,不需要关注是否匹配;
[0096]
d.容错规则,如剧本版本号,在剧本迭代过程中某些剧本带版本号,某些不带,不作为匹配检测必要条件。
[0097]
206、筛除所述配置过滤列表中各配置对应的所述第一非结构化校验对象和所述第二非结构化校验对象;
[0098]
本实施例中,历史部署的配置其具体的筛除方法如下所示:
[0099]
a.无关规则,通过配置关键字段进行识别,比如对于tfservinghost或tfservingport相关文件,具体可通过except_str=#,tfservinghost,tfservingport进行筛除;
[0100]
b.失效规则,可通过文件名关键字识别,比如对于application相关文件,具体可通过except_file=_application进行筛除。
[0101]
而欲软件产品部署环境无关的配置可以包括:
[0102]
c.无关配置,可通过配置关键字识别,比如对于intent.scenes.v1,intent.scenes类文件,可通过invalid_cfg=intent.scenes.v1,intent.scenes进行筛除;
[0103]
d.容错规则,可通过配置关键字识别,比如对于某一些剧本版本配置,可通过invalid_cfg=version进行筛除。
[0104]
207、采用所述第二对比规则,对所述第一非结构化校验对象和所述第二非结构化校验对象进行对比,生成两者的差异数据对比报告;
[0105]
本实施例中,而非结构校验对象可以对特殊属性数据进行对比,直接确定第一非结构化校验对象和第二非结构化校验对象的差异内容,增加校验精度;具体可通过字符串一一对比的形式进行对比。其中,差异数据对比报告以txt格式文件进行展示,用于显示第一非结构化校验对象和第二非结构化校验对象差异内容。
[0106]
208、基于所述全量数据对比报告和所述差异数据对比报告,得到所述各第一校验对象和所述各第二校验对象的差异报告;
[0107]
本实施例中,结合全量数据对比报告和差异数据对比报告,可得到测试环境和生产环境之间的区别,其中,全量数据报告展示测试环境和生产环境之间的基础架构的差异;差异数据对比报告展示测试环境和生产环境之间的内容的差异。
[0108]
209、基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0109]
本发明实施例中,详细介绍了通过差异对比规则对比第一校验对象和第二校验对象,主要通过第一规则对第一结构化校验对象和第二结构化校验对象进行全量数据的对比,得到对应的全量数据对比报告,以用于快速定位第一配置文件与第二配置文件的差异位置;然后通过第二规则对第一非结构化校验对象和第二非结构化校验对象进行差异数据,得到对应的差异数据对比报告,以用于详细对比第一配置文件和第二配置文件的差异内容。
[0110]
请参阅图3,本发明实施例中配置文件差异校验方法的第三个实施例包括:
[0111]
301、获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0112]
302、解析所述各第一配置文件与所述各第二配置文件,得到对应的第一配置字符集和第二配置字符集;
[0113]
303、采用预设校验格式,将所述第一配置字符集转化为多个第一字符串,以及采用预设校验格式,将所述第二配置字符集转化为多个第二字符串;
[0114]
304、将所述第一字符串保存为第一校验对象,以及将所述第二字符串保存为第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0115]
本实施例中,第一配置文件和第二配置文件的解析过程如下所示:html解析引擎将html中的标签数据解析并转换为dom(document object model,文档对象模型)节点;然后根据该dom节点构建dom树;css(cascading style sheets,层叠样式表)解析器通过异步线程对html样式文件进行解析得到样式规则;通过dom树和样式规则构建render树;最后基
于render树,通过html解析引擎构建上下文内容,并将上下文内容生成多个字符串,存储至数据库。
[0116]
305、根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告;
[0117]
306、基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0118]
本发明实施例中,详细介绍了第一配置文件和第二配置文件分别转化为对应的第一校验对象和第二校验对象的过程,可简化对比流程以及扩展对比范围。
[0119]
请参阅图4,本发明实施例中配置文件差异校验方法的第四个实施例包括:
[0120]
401、获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0121]
402、将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0122]
403、根据所述校验标识信息,将所述各第一校验对象划分为第一结构化校验对象和第一非结构化校验对象,以及将所述各第二校验对象划分为第二结构化校验对象和第二非结构化校验对象;
[0123]
404、采用所述第一对比规则,对所述第一结构化校验对象和所述第二结构化校验对象进行对比,生成两者的全量数据对比报告;
[0124]
405、获取所述所述软件产品部署环境的配置拼接逻辑,并确定所述配置拼接逻辑中的拼接节点;
[0125]
本实施例中,配置拼接逻辑指实现所述软件产品部署环境的properties、ini、conf、txt类型文件的配置顺序,包括每一类型文件下的多层级子文件,进行顺序拼接,以最低层级的子文件为一个独立分区,不同独立分区之间构建对应的拼接节点即可;最后通过构建的拼接节点,生成对应的未包含数据的字典模板。
[0126]
406、根据所述拼接节点,对筛除后的各第一非结构化校验对象进行拼接,得到对应第一数据字典,以及根据所述拼接节点,对筛除后的各第二非结构化校验对象进行拼接,得到对应的第二数据字典;
[0127]
本实施例中,第一非结构化校验对象和第二非结构化校验对象对应的拼接节点相同,若出现多余的第一非结构化校验对象或第二非结构化校验对象,则直接作为差异数据即可。
[0128]
本实施例中,根据各拼接节点指向的第一非结构化校验对象和第二非结构化校验对象的子文件,创建key-value(键-值)对,其中key用于索引,value用于具体的数据内容对比;将第一非结构化校验对象和第二非结构化校验对象分别写对独立的字典模板后,即对应生成对应的第一数据字典和第二数据字典。
[0129]
407、根据所述第一数据字典与所述第二数据字典,逐一对比所述第一非结构化校验对象和所述第二非结构化校验对象,生成两者的差异数据对比报告;
[0130]
本实施例中,通过key索引遍历第一数据字典与第二数据字典,得到第一非结构化校验对象和第二非结构化校验对象中对应的数据(value),然后逐一进行顺序对比,即可得到两者的差异数据,并写成差异数据对比报告。
[0131]
其中,在两者的差异数据对比报告之后,还包括:
[0132]
(1)判断是否存在未进行对比的第一非结构化校验对象或第二非结构化校验对象;
[0133]
(2)若是,则将所述未进行对比的第一非结构化校验对象或第二非结构化校验对象写入所述差异数据对比报告中。
[0134]
本实施例中,差异数据对比报告中包含前面未包含相同节点的,多余的第一非结构化校验对象或第二非结构化校验对象。
[0135]
408、基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0136]
本发明实施例中,详细介绍了通过第一规则对第一非结构校验对象和第二非结构化校验对象进行对比的过程,通过建立第一数据字典和第二数据字典,采用key-value的数据存储方式,更有利于对两者中具体数据进行更细致,更具逻辑性的对比。
[0137]
上面对本发明实施例中配置文件差异校验方法进行了描述,下面对本发明实施例中配置文件差异校验装置进行描述,请参阅图5,本发明实施例中配置文件差异校验装置一个实施例包括:
[0138]
获取模块501,用于获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0139]
转化模块502,用于将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0140]
对比模块503,用于根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告;
[0141]
生成模块504,用于基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0142]
本发明实施例中,通过将软件产品部署环境的多个第一配置文件和多个第二配置文件转化为便于差异对比的第一校验对象和第二校验对象;然后通过对校验标识信息对两者进行对比,生成两者的差异报告;最后通过差异报告表示对应第一配置文件和第二配置文件的校验结果,实现对软件产品部署环境配置文件差异的全面校验。
[0143]
请参阅图6,本发明实施例中配置文件差异校验装置的另一个实施例包括:
[0144]
获取模块501,用于获取软件产品部署环境的多个第一配置文件和多个第二配置文件;
[0145]
转化模块502,用于将所述各第一配置文件和所述各第二配置文件分别转化为对应的第一校验对象和第二校验对象,其中,所述第一校验对象和所述第二校验对象带有校验标识信息;
[0146]
对比模块503,用于根据所述校验标识信息,采用预置差异对比规则,对所述各第一校验对象和所述各第二校验对象进行逐一对比,生成两者的差异报告;
[0147]
生成模块504,用于基于所述差异报告,确定所述第一配置文件和第二配置文件的差异校验结果。
[0148]
具体的,所述转化模块502包括:
[0149]
解析单元5021,用于解析所述各第一配置文件与所述各第二配置文件,得到对应
的第一配置字符集和第二配置字符集;
[0150]
转化单元5022、用于采用预设校验格式,将所述第一配置字符集转化为多个第一字符串,以及采用预设校验格式,将所述第二配置字符集转化为多个第二字符串;
[0151]
保存单元5023,用于将所述第一字符串保存为第一校验对象,以及将所述第二字符串保存为第二校验对象。
[0152]
具体的,所述对比模块503包括:
[0153]
分类单元5031,用于根据所述校验标识信息,将所述各第一校验对象划分为第一结构化校验对象和第一非结构化校验对象,以及将所述各第二校验对象划分为第二结构化校验对象和第二非结构化校验对象;
[0154]
第一对比单元5032,用于采用所述第一对比规则,对所述第一结构化校验对象和所述第二结构化校验对象进行对比,生成两者的全量数据对比报告;
[0155]
第二对比单元5033,用于采用所述第二对比规则,对所述第一非结构化校验对象和所述第二非结构化校验对象进行对比,生成两者的差异数据对比报告;
[0156]
生成单元5034,用于基于所述全量数据对比报告和所述差异数据对比报告,得到所述各第一校验对象和所述各第二校验对象的差异报告。
[0157]
具体的,在所述第二对比单元5033之前,还包括过滤单元5035,所述过滤单元5035用于:
[0158]
获取配置过滤列表,所述配置过滤列表包括历史部署配置和与所述软件产品部署环境无关的配置;
[0159]
筛除所述配置过滤列表中各配置对应的所述第一非结构化校验对象和所述第二非结构化校验对象。
[0160]
具体的,所述第二对比单元5033包括:
[0161]
确定子单元50331,用于获取所述所述软件产品部署环境的配置拼接逻辑,并确定所述配置拼接逻辑中的拼接节点;
[0162]
拼接子单元50332,用于根据所述拼接节点,对筛除后的各第一非结构化校验对象进行拼接,得到对应第一数据字典,以及根据所述拼接节点,对筛除后的各第二非结构化校验对象进行拼接,得到对应的第二数据字典;
[0163]
对比子单元50333,用于根据所述第一数据字典与所述第二数据字典,逐一对比所述第一非结构化校验对象和所述第二非结构化校验对象,生成两者的差异数据对比报告。
[0164]
具体的,在所述对比子单元之后,还包括:
[0165]
判别子单元50334,用于判断是否存在未进行对比的第一非结构化校验对象或第二非结构化校验对象;
[0166]
写入子单元50335,用于若存在未进行对比的第一非结构化校验对象或第二非结构化校验对象,则将所述未进行对比的第一非结构化校验对象或第二非结构化校验对象写入所述差异数据对比报告中。
[0167]
具体的,所述第一配置文件和所述多个第二配置文件存储于区块链中。
[0168]
本发明实施例中,详细介绍了通过差异对比规则对比第一校验对象和第二校验对象,主要通过第一规则对第一结构化校验对象和第二结构化校验对象进行全量数据的对比,得到对应的全量数据对比报告,以用于快速定位第一配置文件与第二配置文件的差异
位置;然后通过第二规则对第一非结构化校验对象和第二非结构化校验对象进行差异数据,得到对应的差异数据对比报告,以用于详细对比第一配置文件和第二配置文件的差异内容;还详细介绍了第一配置文件和第二配置文件分别转化为对应的第一校验对象和第二校验对象的过程,可简化对比流程以及扩展对比范围;亦详细介绍了通过第一规则对第一非结构校验对象和第二非结构化校验对象进行对比的过程,通过建立第一数据字典和第二数据字典,采用key-value的数据存储方式,更有利于对两者中具体数据进行更细致,更具逻辑性的对比。
[0169]
上面图5和图6从模块化功能实体的角度对本发明实施例中的配置文件差异校验装置进行详细描述,下面从硬件处理的角度对本发明实施例中配置文件差异校验设备进行详细描述。
[0170]
图7是本发明实施例提供的一种配置文件差异校验设备的结构示意图,该配置文件差异校验设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对配置文件差异校验设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在配置文件差异校验设备700上执行存储介质730中的一系列指令操作。
[0171]
配置文件差异校验设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图7示出的配置文件差异校验设备结构并不构成对配置文件差异校验设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0172]
本发明还提供一种配置文件差异校验设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述配置文件差异校验方法的步骤。
[0173]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述配置文件差异校验方法的步骤。
[0174]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0175]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序
代码的介质。
[0176]
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。