一种应用部署方法及装置的制造方法

文档序号:10724636阅读:576来源:国知局
一种应用部署方法及装置的制造方法
【专利摘要】本发明的实施例提供一种应用部署方法及装置,涉及软件技术领域,可以识别出影响应用运行结果的配置项,从而提高构建出的生产环境的可靠性,降低应用部署失败的风险。该方法包括:获取第一配置项,该第一配置项为开发环境在运行应用的可执行代码之前与运行该应用的可执行代码之后发生变化的数据;获取第二配置项,该第二配置项为运行该可执行代码之前的开发环境与初始生产环境之间不相同的数据;这样,根据该第一配置项和该第二配置项,可修正该初始生产环境的配置项内容,得到可靠性更高的修正生产环境;那么,将该应用部署至该修正生产环境中后,可提高应用部署的成功率。
【专利说明】
一种应用部署方法及装置
技术领域
[0001] 本发明涉及软件技术领域,尤其涉及一种应用部署方法及装置。
【背景技术】
[0002] -个应用从开发到成功部署上线,首先需要经历源代码的编写阶段,进而,需要在 开发环境(即开发人员所使用的环境)中对源代码进行编译、安装、调试和运行,当可执行代 码在开发环境中成功运行后,可以通过现有的自动构建系统构建部署应用的生产环境(即 应用长期实际运行的环境),最终,在构建的生产环境中对可执行代码进行测试和运行,得 到可以成功运行的应用。
[0003] 其中,开发环境和生产环境之间可能存在规模差异、部署区域差异等,例如,开发 环境可能只有很少几台设备组成,而生产环境则可能由几千台设备组成;开发环境中可能 包含开发语言的一个或多个运行库,而生产环境中则可能没有应用运行所需的运行库。
[0004] 正是由于这些差异,导致可以成功在开发环境中运行的应用却可能无法在生产环 境中成功运行,因此,在构建部署应用的生产环境时,还需要设置影响应用运行结果的配置 项(Configuration Item),从而构建出更加可靠的生产环境。
[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] 图1为本发明实施例提供的一种应用部署装置的结构示意图;
[0038] 图2为本发明实施例提供的一种应用部署装置的原理示意图;
[0039] 图3为本发明实施例提供的一种应用部署方法的流程示意图;
[0040] 图4为本发明实施例提供的一种应用管理设备的结构示意图。
【具体实施方式】
[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0042] 另外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性 或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或者 隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,"多个"的含义是两 个或两个以上。
[0043]本发明的实施例提供一种应用部署方法,可应用于基于DevOps(开发运维一体化, 是一组过程、方法与系统的统称)技术的应用开发和部署过程中。
[0044] 具体的,一个互联网应用可以使用多种开发语言和开发方式完成源代码的编写和 开发,同时,为了使应用能够正确运行,还需要设置应用所在运行环境的配置项内容,例如, 应用的修改脚本等。
[0045] 但是,应用的开发环境和生产环境之间可能存在规模差异、部署区域差异等,因 此,开发人员在开发环境中成功运行应用后,并不能保证可以在实际投产的生产环境中成 功运行该应用,因此,在构建生产环境时通常由开发人员提前识别和设置配置项内容中会 影响应用运行结果的配置项,这种人工部署和调测不仅会导致重复投入问题,而且,对于应 用版本更新频率较快,应用部署规模较大的应用场景,还会增加应用部署失败的风险。
[0046] 对此,本发明实施例提供的应用部署方法及装置,可以通过对比应用在开发前后 的运行环境,自动识别出影响应用运行结果的配置项,从而构建出更加可靠的生产环境,在 部署应用的过程中形成有效的反馈调节机制,从而降低应用部署失败的风险。
[0047] 其中,本发明实施例提供的应用部署方法,可应用在图1所示的应用部署装置100 中,该应用部署装置100包括快照单元11、与快照单元11相连的对比单元12,与对比单元12 相连的环境构建单元02,以及与环境构建单元02相连的部署单元03,其中,该环境构建单元 02还可以与存储有各个版本的应用的版本库04相连。
[0048] 具体的,如图2所示,快照单元11可以在开发前,即运行应用的可执行代码之前,保 存开发环境的第一快照信息,并在开发后,即成功运行应用的可执行代码之后,保存开发环 境的第二快照信息,此时,对比单元12用于对快照单元11中存储的第一快照信息和第二快 照信息进行对比,识别出应用在开发环境中成功运行所需的第一配置项,进而,在部署准备 阶段,快照单元11还可以保存初始生产环境的第三快照信息;而对比单元12可用于比较第 一快照信息与第三快照信息之间的不同信息,识别出应用在初始生产环境中成功运行所需 的第二配置项,并将第一配置项和第二配置项输出到环境构建单元02,这样,在部署阶段, 环境构建单元02根据第一配置项和第二配置项设置初始生产环境中的配置项内容,并从版 本库04中得到应用软件,执行自动构建功能,得到修正后的修正生产环境,最后,部署单元 03将应用部署到修正生产环境上,完成应用部署。
[0049] 可以看出,如果开发环境和初始生产环境一致,可直接在初始生产环境的配置项 内容中设置上述第一配置项,得到修正生产环境,这样便可以使应用在修正生产环境中成 功运行;当开发环境和初始生产环境不一致时,需要在初始生产环境的配置项内容中同时 设置上述第一配置项和第二配置项,得到修正生产环境,从而将应用部署到上述修正生产 环境中,使应用可以成功运行。
[0050] 其中,快照单元11和对比单元12也可以由获取单元01代替,此时,获取单元01用于 向环境构建单元02提供影响应用运行结果的配置项,例如,上述第一配置项和第二配置项。
[0051] 另外,本次应用部署时得到的修正生产环境,可以作为下一次应用部署时的初始 生产环境,进而通过快照单元11和对比单元12,又可以得到下一次应用部署时的各个配置 项,从而实现有效的反馈调节机制以重复部署应用。
[0052] 进一步地,仍如图1所示,应用部署装置100还可以包括测试单元05和回滚单元06, 其中,测试单元05,可用于对构建的修正生产环境进行测试,以验证修正生产环境是否正 常;此时,用于若测试结果不正常,由于快照单元11内存储有初始生产环境(即上一次成功 部署应用时构建出的修正生产环境)的快照,因此,回滚单元06可用于将修正生产环境还原 至初始生产环境,以便于开发人员在上一次成功部署应用时构建出的修正生产环境的基础 上,进行修改和调试。
[0053]需要说明的是,在本发明实例中,上述应用部署装置100中的各个功能单元,例如, 快照单元11、对比单元12以及环境构建单元02等,可以以逻辑功能模块的形式集成在一个 实体设备中,又或者,上述各个功能单元可以以逻辑功能模块的形式分别设置在一个或多 个实体设备中,此时,应用部署装置100以系统的形式实现上述应用部署方法,本发明实施 例对此不做限定。
[0054]进一步地,为了更清楚地介绍本发明实施例提供的应用部署方法,下文中均以逻 辑功能模块作为执行主体进行说明,本领域技术人员可以理解,逻辑功能模块在具体实现 时需依赖于其所在的实体设备上的硬件资源。
[0055] 基于图1以及图2所示的应用部署装置,本发明实施例提供一种应用部署方法,如 图3所示,该应用部署方法包括:
[0056] 101、在开发环境内运行应用的可执行代码之前,应用部署装置保存开发环境的第 一快照信息。
[0057] 102、在开发环境内成功运行该应用的可执行代码之后,应用部署装置保存该开发 环境的第二快照信息。
[0058] 103、应用部署装置比较第一快照信息与第二快照信息,根据第二快照信息中与第 一快照信息不同的部分,确定第一配置项。
[0059] 104、在初始生产环境中运行该应用的可执行代码之前,应用部署装置保存该初始 生产环境的第三快照信息。
[0060] 105、应用部署装置比较第一快照信息与第三快照信息,根据第三快照信息中与第 一快照信息不同的部分,确定第二配置项。
[0061] 106、应用部署装置判断第一配置项和第二配置项中是否含有公共配置项,该公共 配置项为第一配置项和第二配置项的交集。
[0062] 107a、若包括公共配置项,则应用部署装置将第一配置项中除公共配置项外的配 置项,复制到初始生产环境的配置项内容中。
[0063] 108a、(可选的)应用部署装置在预设的配置字典中查找与该公共配置项对应的替 换配置项;并将查找到的与该公共配置项对应的替换配置项也复制到上述配置项内容中, 得到修正生产环境。
[0064] 107b、若不包括公共配置项,则应用部署装置将第一配置项复制到初始生产环境 的配置项内容中,得到修正生产环境。或者,
[0065] 108b、若不包括公共配置项,则应用部署装置在预设的配置字典中查找与第一配 置项对应的替换配置项;并将查找到的与第一配置项对应的替换配置项复制到上述配置项 内容中,得到修正生产环境。
[0066] 109、应用部署装置将应用部署至上述修正生产环境中。
[0067] 110、应用部署装置对上述修正生产环境进行测试。
[0068] 111、若测试结果不符合预设的测试结果,则应用部署装置将上述修正生产环境还 原至初始生产环境。
[0069] 其中,开发环境,指的是应用的开发人员在进行源代码编译以及测试过程中所使 用的环境,例如,开发应用A使用的测试服务器或测试手机等。
[0070] 在步骤101中,在开发环境内运行应用的可执行代码之前,快照单元11可以对此时 的开发环境进行快照,得到开发环境的第一快照信息。
[0071] 例如,当开发人员使用计算机编写和运行网页服务这一应用的可执行代码时,这 台计算机便可以作为开发环境,在该计算机上运行网页服务的可执行代码之前,快照单元 11可以通过文件备份、数据库备份技术等数据复制手段,将开发环境(即该计算机)的全部 信息完整地保存下来,得到第一快照信息。
[0072]再例如,当开发人员使用计算机编写手机APP(Application,应用)时,开发人员使 用的计算机不被认为是所述开发环境,只有使用的测试手机是开发环境,在该测试手机上 运行手机APP的可执行代码之前,快照单元11可以通过手机系统备份、文件备份、内存导出 等数据复制手段,将开发环境(即该测试手机)的全部信息完整地保存下来,得到第一快照 信息。
[0073]进而,开发人员可以在开发环境内对应用的源代码进行编写、编译、调试等,当该 应用在开发环境内成功运行后,在步骤102中,快照单元11可以对此时的开发环境再次进行 快照,得到开发环境的第二快照信息。
[0074]例如,当上述网页服务或手机APP可成功在开发环境内运行时,类似的,快照单元 11可以通过文件备份、数据库备份、内存导出技术等数据复制手段,将此时计算机(或手机) 的全部信息完整地保存下来,得到第二快照信息。
[0075] 那么,在步骤103中,对比单元12可进一步比较上述第一快照信息与第二快照信 息,找到第二快照信息中与第一快照信息不同的数据(即差别数据),例如,经过比较后可发 现第二快照信息中的参数发生了增减,或参数的数值发生变化,又或者,是某个文件(例如, 可执行代码、库文件等)发生增删,进而,根据第二快照信息中与第一快照信息不同的数据, 确定第一配置项,即该应用在开发环境中成功运行所需的配置项。
[0076] 例如,如表1所示,通过对比第一快照信息与第二快照信息,可确定参数A、B在成功 运行应用前后的取值发生了改变,并且,在成功运行应用后还增加了文件C,此时,不在步骤 103中,可将第二快照信息中参数A、B、文件C以及参数A、B、文件C的取值这些差别数据作为 第一配置项,也就是说,要想成功运行该应用,需要改变开发环境中参数A、B的取值,并增加 文件C。
[0077] 表 1
[0079] 又或者,对比单元12在比较上述第一快照信息与第二快照信息之后,可确定出第 一快照信息与第二快照信息中发生变化的数据(即差别数据),例如上述参数A和B的取值改 变,且第二快照信息中新增加了文件C,此时,参数A、B、C为上述差别数据,那么,对比单元12 可进一步在预设的配置字典中,根据上述差别数据的标识和/或类型,查找与该差别数据对 应的替换数据,例如,上述参数A的替换数据为1110;进而,将查找到的与上述差别数据对应 的替换数据作为第一配置项。
[0080] 其中,上述配置字典中预先存储有至少一个数据(例如任意参数、配置项、文件或 程序),以及每个数据在生产环境中对应的替换数据或替换配置的取值规则,即存储有每个 数据与该数据的替换数据之间的映射关系,例如,配置项Y的替换配置项为配置项M;参数A 指示的是内存大小,该配置字典中可以存储参数A的取值规则为:将第二快照信息中参数A 的取值乘以5作为第一配置项中参数A的取值,即在生产环境中运行该应用时内存的大小可 以设置为第二快照信息中参数A的取值的5倍。
[0081] 由于应用实际运行的环境(即生产环境),通常与开发环境存在许多差异,因此,若 想要应用在生产环境中成功运行,不仅需要在生产环境中安装应用的可执行代码,还需要 对应用运行的生产环境的配置项内容进行相应的设置,也就是说,当应用成功在开发环境 中运行后,还需为应用构建可靠的生产环境,这一阶段可称为应用的部署准备阶段。
[0082] 其中,本发明实施例中将构建前的生产环境称为初始生产环境,将构建后形成的 生产环境称为修正生产环境。
[0083] 具体的,在部署准备阶段,如步骤104中所述,在初始生产环境中运行该应用的可 执行代码之前,快照单元11可以保存该初始生产环境的第三快照信息。
[0084] 进而,在步骤105中,对比单元12比较上述第三快照信息与步骤101中存储的第一 快照信息,也就是说,通过第一快照信息和第三快照信息对比开发前的开发环境与初始生 产环境之间的差异。例如,经过比较后可发现第三快照信息中的参数发生了增减,或参数的 数值发生变化,又或者,是某个文件(例如,可执行代码、库文件等)发生增删等。
[0085]可以理解的是,如果第一快照信息和第三快照信息完全相同,则说明该初始生产 环境与未运行该应用前的开发环境相同,此时,为了使应用可以在初始生产环境中成功运 行,仅需要按照步骤103中得到的第一配置项对初始生产环境的配置项内容进行修改,即可 构建出修正生产环境。
[0086]例如,当第一快照信息和第三快照信息完全相同时,可将表1内第二快照信息中参 数A、B、以及文件C的取值,覆盖第三快照信息中相应的参数A、B、以及文件C的取值,即可构 建出修正生产环境。
[0087]然而,开发环境与初始生产环境一般是不相同的,例如,开发环境中可能只有一台 设备,而初始生产环境则可能是几千台设备组成,此时,与步骤103类似的,对比单元12可根 据第三快照信息中与第一快照信息不同的部分,确定第二配置项,即应用在初始生产环境 中成功运行时需要保留的配置参数。
[0088]例如,可以直接将第三快照信息中与第一快照信息不同的部分,即发生变化的差 异数据作为第二配置项。
[0089] 例如,如表2所示,通过对比第一快照信息与第三快照信息,可确定参数A的取值发 生了改变,也就是说,初始生产环境与开发前的开发环境相比,参数A可反映初始生产环境 的固有属性的参数,即参数A是应用在初始生产环境中成功运行所必需的,例如,当参数A为 IP地址信息时,第一快照信息与第三快照信息中的IP地址信息不同,如果单一的将第一快 照信息中的IP地址信息复制到第三快照信息中,将导致应用无法在初始生产环境中正常运 行。
[0090] 此时,可将第三快照信息中参数A的取值作为第二配置项,也就是说,要想在初始 生产环境中成功运行该应用,需要保留第三快照信息中的参数A。
[0091] 表2
[0093]又或者,对比单元12在比较上述第一快照信息与第三快照信息之后,可确定出第 三快照信息与第一快照信息中发生变化的差别数据,例如上述参数A,那么,由于上述配置 字典中存储有参数A在生产环境中对应的替换数据或替换数据的取值规则,因此,对比单元 12可进一步在上述配置字典中查找与该差别数据对应的替换数据;进而,将查找到的与差 别数据对应的替换数据作为第二配置项。
[0094] 这样,经过上述步骤101-105,应用部署装置可通过两次快照对比,识别出影响应 用运行结果的第一配置项和第二配置项,以便于后续环境构建单元02为应用构建出更加可 靠的修正生产环境。
[0095] 进一步地,在步骤106中,环境构建单元02根据对比单元12得到的第一配置项和第 二配置项,判断该第一配置项和第二配置项中是否有相同的配置项(本发明实施例中称为 公共配置项),即该公共配置项为第一配置项和第二配置项的交集。
[0096] 例如,在表1和表2所指示的第一配置项和第二配置项中,由于参数A是第一配置项 和第二配置项的交集,因此,参数A可作为上述公共配置项。
[0097] 进而,若第一配置项和第二配置项中包括公共配置项,则执行上述步骤107a-108a;若第一配置项和第二配置项中不包括公共配置项,则执行上述步骤107b或108b。
[0098] 具体的,在步骤107a中,若第一配置项和第二配置项中包括上述公共配置项,例如 上述参数A,那么,环境构建单元02可以保留初始生产环境的配置项内容中的参数A,即第三 快照信息中的参数A,并将第一配置项中除了该公共配置项外的其他配置项,例如,上述第 二快照中的参数B、文件C以及参数B、文件C的取值,复制到初始生产环境的配置项内容中, 从而构建出修正生产环境。
[0099] 进一步,可选的,对于第一配置项和第二配置项中共同的公共配置项,在步骤108a 中,环境构建单元02也可以在上述配置字典中查找与该公共配置项对应的替换配置;并将 查找到的与该公共配置项对应的替换配置也复制到上述配置项内容中,得到修正生产环 境。
[0?00]相应的,若第一配置项和第二配置项中不包括上述公共配置项,则在步骤107b中, 环境构建单元02可直接将第一配置项复制到初始生产环境的配置项内容中,从而构建出修 正生产环境。
[0101] 又或者,若第一配置项和第二配置项中不包括上述公共配置项,在步骤108b中,环 境构建单元02可以在上述配置字典中查找与第一配置项对应的替换配置;并将查找到的与 第一配置项对应的替换配置复制到上述配置项内容中,得到修正生产环境。
[0102] 最后,在步骤109中,部署单元03可以从版本库04中获取上述应用的源代码进行编 译得到可执行代码,并将该可执行代码部署至上述构建出的修正生产环境中,实现应用的 自动部署上线功能。
[0103] 进一步可选的,应用部署装置还可以设置测试单元05对上述修正生产环境进行测 试,例如,在上述修正生产环境中试运行上述应用的可执行代码,以检测步骤中构建出的修 正生产环境是否正常。
[0104] 进而,在步骤111中,若上述测试结果不符合预设的测试结果,还可以设置回滚单 元06将上述修正生产环境还原至初始生产环境,由于该初始生产环境即为上一次成功部署 应用时构建出的修正生产环境,因此,还原至初始生产环境后方便开发人员在上一次成功 部署应用时的修正生产环境的基础上,进行修改和调试。
[0105] 至此,本发明提供一种应用部署方法,可获取到成功运行应用时需要设置的第一 配置项和第二配置项,其中,该第一配置项为开发环境在运行应用的可执行代码之前与运 行所述应用的可执行代码之后发生变化的数据,该第二配置项为运行所述可执行代码之前 的开发环境与初始生产环境之间不相同的数据;这样,应用部署装置根据该第一配置项和 第二配置项修正初始生产环境的配置项内容,可构建出可靠性更高的修正生产环境,那么, 将应用部署至该修正生产环境中后,可提高应用部署的成功率。
[0106] 另外,本发明实施例提供的上述应用部署装置100,可应用在任一种可实现应用部 署的应用管理设备中,如图4所示,为本发明实施例提供的一种应用管理设备200的结构示 意图,本发明实施例提供的应用管理设备200可以用于实施上述图4所示的本发明各实施例 实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示 的,请参照图4所示的本发明各实施例。
[0107] 其中,应用管理设备200包括至少一个处理器11,通信总线12,存储器13以及至少 一个通信接口 14。
[0108] 示例性的,图1中对比单元12、环境构建单元02、测试单元05以及回滚单元06的各 项功能,可以由上述处理器11执行;而快照单元11内存储的快照信息可存储在存储器13内。
[0109] 处理器11可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路 (application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案 程序执行的集成电路。
[0110] 通信总线12可包括一通路,在上述组件之间传送信息。所述通信接口 14,使用任何 收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局 域网(Wireless Local Area Networks,WLAN)等。
[0111] 存储器13可以是只读存储器(read-only memory,R0M)或可存储静态信息和指令 的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信 息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPR0M)、只读光盘(Compact Disc Read-Only Memory,⑶-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用 光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指 令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。 存储器可以是独立存在,通过通信总线与处理器相连接。存储器也可以和处理器集成在一 起。
[0112] 其中,所述存储器13用于存储执行本发明方案的应用程序代码,并由处理器11来 控制执行。所述处理器11用于执行所述存储器13中存储的应用程序代码。
[0113] 在具体实现中,作为一种实施例,处理器11可以包括一个或多个CPU,例如图4中的 CPU0和CPU1。
[0114] 在具体实现中,作为一种实施例,应用管理设备200可以包括多个处理器,例如图4 中的处理器11和处理器18。这些处理器中的每一个可以是一个单核(Single-CPU)处理器, 也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或 用于处理数据(例如计算机程序指令)的处理核。
[0115]在具体实现中,作为一种实施例,应用管理设备200还可以包括输出设备15和输入 设备16。输出设备15和处理器11通信,可以以多种方式来显示信息。例如,输出设备15可以 是液晶显不器(liquid crystal display,LCD),发光二级管(light emitting diode,LED) 显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入 设备16和处理器11通信,可以以多种方式接受用户的输入。例如,输入设备16可以是鼠标、 键盘、触摸屏设备或传感设备等。
[0116]上述的应用管理设备200可以是一个通用计算机设备或者是一个专用计算机设 备。在具体实现中,应用管理设备200可以是台式机、便携式电脑、网络服务器、掌上电脑 (Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入 式设备或有图4中类似结构的设备。本发明实施例不限定应用管理设备200的类型。
[0117]需要说明的是,由于图1中快照单元11、对比单元12以及环境构建单元02等各个功 能单元,可以以逻辑功能模块的形式分别设置在一个或多个实体设备中,因此,可以设置多 个如图4所示的应用管理设备200分别实现图1中部署装置100内各个功能单元的功能。
[0118] 例如,可以设置第一应用管理设备执行快照单元11的相应功能,设置第二应用管 理设备执行对比单元12的相应功能,设置第三应用管理设备执行环境构建单元02的相应功 能,并设置第四应用管理设备执行测试单元05和回滚单元06的相应功能,本发明实施例对 此不做限定。
[0119] 至此,本发明提供一种应用管理设备,可获取到成功运行应用时需要设置的第一 配置项和第二配置项,其中,该第一配置项为开发环境在运行应用的可执行代码之前与运 行所述应用的可执行代码之后发生变化的数据,该第二配置项为运行所述可执行代码之前 的开发环境与初始生产环境之间不相同的数据;这样,应用部署装置根据该第一配置项和 第二配置项修正初始生产环境的配置项内容,可构建出可靠性更高的修正生产环境,那么, 将应用部署至该修正生产环境中后,可提高应用部署的成功率。
[0120] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能 模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模 块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功 能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过 程,在此不再赘述。
[0121] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或 单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元 或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所 显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的 间接耦合或通信连接,可以是电性,机械或其它的形式。
[0122] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0123] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0124] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个 实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器 (ROM,Read_Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘 等各种可以存储程序代码的介质。
[0125]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1. 一种应用部署方法,其特征在于,包括: 获取第一配置项,所述第一配置项为开发环境在运行应用的可执行代码之前与运行所 述应用的可执行代码之后发生变化的数据; 获取第二配置项,所述第二配置项为运行所述可执行代码之前的开发环境与初始生产 环境之间不相同的数据; 根据所述第一配置项和所述第二配置项修正所述初始生产环境的配置项内容,得到修 正生产环境; 将所述应用部署至所述修正生产环境中。2. 根据权利要求1所述的方法,其特征在于,获取第一配置项,包括: 在所述开发环境中运行所述应用的可执行代码之前,保存所述开发环境的第一快照信 息; 在所述开发环境中成功运行所述应用的可执行代码之后,保存所述开发环境的第二快 照信息; 根据所述第二快照信息中与所述第一快照信息不同的部分,确定所述第一配置项。3. 根据权利要求2所述的方法,其特征在于,根据所述第二快照信息中与所述第一快照 信息不同的部分,确定所述第一配置项,包括: 将所述第二快照信息中与所述第一快照信息不同的差别数据作为第一配置项。4. 根据权利要求2所述的方法,其特征在于,根据所述第二快照信息中与所述第一快照 信息不同的部分,确定所述第一配置项,包括: 根据所述第二快照信息中与所述第一快照信息不同的差别数据,在预设的配置字典中 查找与所述差别数据对应的替换数据,所述配置字典中存储有所述差别数据与差别内容之 间的映射关系; 将查找到的与所述差别数据对应的替换数据作为第一配置项。5. 根据权利要求2-4中任一项所述的方法,其特征在于,获取第二配置项,包括: 在所述初始生产环境中运行所述应用的可执行代码之前,保存所述初始生产环境的第 二快照?目息; 根据所述第三快照信息中与所述第一快照信息不同的部分,确定所述第二配置项。6. 根据权利要求1-5中任一项所述的方法,其特征在于,根据所述第一配置项和所述第 二配置项修正所述初始生产环境的配置项内容,得到修正生产环境,包括: 若所述第一配置项和所述第二配置项中没有公共配置项,则将所述第一配置项复制到 所述配置项内容中,得到修正生产环境,所述公共配置项为所述第一配置项和所述第二配 置项的交集。7. 根据权利要求1-5中任一项所述的方法,其特征在于,根据所述第一配置项和所述第 二配置项修正所述初始生产环境的配置项内容,得到修正生产环境,包括: 若所述第一配置项和所述第二配置项中没有公共配置项,则在预设的配置字典中查找 与所述第一配置项对应的替换配置项,所述公共配置项为所述第一配置项和所述第二配置 项的交集,所述配置字典中存储有所述第一配置项与替换配置项之间的对应关系; 将查找到的与所述第一配置项对应的替换配置项复制到所述配置项内容中,得到修正 生产环境。8. 根据权利要求6或7所述的方法,其特征在于,若所述第一配置项和所述第二配置项 中包含公共配置项,则还包括: 将所述第一配置项中除所述公共配置项外的配置项,复制到所述初始生产环境的配置 项内容中,得到修正生产环境。9. 根据权利要求8所述的方法,其特征在于,在将所述第一配置项中除所述公共配置项 外的配置项,复制到所述初始生产环境的配置项内容中之后,还包括: 在预设的配置字典中查找与所述公共配置项对应的替换配置项,所述配置字典中存储 有所述公共配置项与替换配置项之间的对应关系; 将查找到的与所述公共配置项对应的替换配置项复制到所述配置项内容中,得到修正 生产环境。10. 根据权利要求1-5中任一项所述的方法,其特征在于,在根据所述第一配置项和所 述第二配置项修正所述初始生产环境的配置项内容之后,还包括: 对所述修正生产环境进行测试; 若测试结果不符合预设的测试结果,则将所述修正生产环境还原至所述初始生产环 境。11. 一种应用部署装置,其特征在于,包括: 获取单元,用于获取第一配置项以及第二配置项,其中,所述第一配置项为开发环境在 运行应用的可执行代码之前与运行所述应用的可执行代码之后发生变化的数据,所述第二 配置项为运行所述可执行代码之前的开发环境与初始生产环境之间不相同的数据; 环境构建单元,用于根据所述第一配置项和所述第二配置项修正所述初始生产环境的 配置项内容,得到修正生产环境; 部署单元,用于将所述应用部署至所述修正生产环境中。12. 根据权利要求11所述的装置,其特征在于,所述装置还包括: 快照单元,用于在所述开发环境中运行所述应用的可执行代码之前,保存所述开发环 境的第一快照信息;以及,在所述开发环境中成功运行所述应用的可执行代码之后,保存所 述开发环境的第二快照信息; 对比单元,用于根据所述第二快照信息中与所述第一快照信息不同的部分,确定所述 第一配置项。13. 根据权利要求12所述的装置,其特征在于, 所述对比单元,具体用于将所述第二快照信息中与所述第一快照信息不同的差别数据 作为第一配置项。14. 根据权利要求12所述的装置,其特征在于, 所述对比单元,具体用于根据所述第二快照信息中与所述第一快照信息不同的差别数 据,在预设的配置字典中查找与所述差别数据对应的替换数据,所述配置字典中存储有所 述差别数据与差别内容之间的映射关系;将查找到的与所述差别数据对应的替换数据作为 第一配置项。15. 根据权利要求12-14中任一项所述的装置,其特征在于, 所述快照单元,还用于在所述初始生产环境中运行所述应用的可执行代码之前,保存 所述初始生产环境的第三快照信息; 所述对比单元,还用于根据所述第三快照信息中与所述第一快照信息不同的部分,确 定所述第二配置项。16. 根据权利要求11-15中任一项所述的装置,其特征在于, 所述环境构建单元,具体用于若所述第一配置项和所述第二配置项中没有公共配置 项,则将所述第一配置项复制到所述配置项内容中,得到修正生产环境,所述公共配置项为 所述第一配置项和所述第二配置项的交集。17. 根据权利要求11-15中任一项所述的装置,其特征在于, 所述环境构建单元,具体用于若所述第一配置项和所述第二配置项中没有公共配置 项,则在预设的配置字典中查找与所述第一配置项对应的替换配置项,所述公共配置项为 所述第一配置项和所述第二配置项的交集,所述配置字典中存储有所述第一配置项与替换 配置项之间的对应关系;将查找到的与所述第一配置项对应的替换配置项复制到所述配置 项内容中,得到修正生产环境。18. 根据权利要求16或17所述的装置,其特征在于, 所述环境构建单元,还用于若所述第一配置项和所述第二配置项中包含公共配置项, 则将所述第一配置项中除所述公共配置项外的配置项,复制到所述初始生产环境的配置项 内容中,得到修正生产环境。19. 根据权利要求18所述的装置,其特征在于, 所述环境构建单元,还用于在预设的配置字典中查找与所述公共配置项对应的替换配 置项,所述配置字典中存储有所述公共配置项与替换配置项之间的对应关系;将查找到的 与所述公共配置项对应的替换配置项复制到所述配置项内容中,得到修正生产环境。20. 根据权利要求11-19中任一项所述的装置,其特征在于,所述装置还包括: 测试单元,用于对所述修正生产环境进行测试; 回滚单元,用于若测试结果不符合预设的测试结果,则将所述修正生产环境还原至所 述初始生产环境。
【文档编号】G06F9/445GK106095501SQ201610408133
【公开日】2016年11月9日
【申请日】2016年6月12日
【发明人】俞前
【申请人】华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1