云计算环境下的软件部署方法和装置制造方法

文档序号:6628857阅读:272来源:国知局
云计算环境下的软件部署方法和装置制造方法
【专利摘要】本发明的实施例提供一种云计算环境下的软件部署方法和装置,涉及云计算领域,能够使得云计算环境下的软件部署效率更高。其方法为:首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,通过将应用模板的实例化来驱动部署框架实现自动云化部署。本发明实施例用于在云计算环境下进行软件部署。
【专利说明】云计算环境下的软件部署方法和装置

【技术领域】
[0001] 本发明涉及计算机【技术领域】,尤其涉及云计算环境下的软件部署方法和装置。

【背景技术】
[0002] 运营商内部的IT系统规模不断增大,各运营商开始建设自己的私有云、公有云系 统,将传统业务逐步迁移到云化的资源池上,方便硬件和软件的统一管理。
[0003] 现有技术往往利用迁移工具将传统业务迁移到云计算环境中,首先利用迁移工具 收集物理环境,整理出物理设备、存储设备和网络设备的要求,根据不同操作系统设备不同 参数来编译不同的安装包。
[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]定义所述检查参数的属性,所述属性包括所述检查参数的类型、取值范围以及表 示该参数是否为必须的标识;
[0059]调用创建的接口实现与所述接口对应的功能。
[0060]结合第一方面的第十种可能的实现方式,在第i^一种可能的实现方式中,所述调 用创建的接口实现与所述接口对应的功能包括:
[0061]通过所述分析检查接口对所述部署模板进行检查,检查该部署模板所需的所述软 件包、所述配置包、以及所述虚拟机资源、存储资源和所述网络资源是否完整。
[0062]结合第一方面的第三种可能的实现方式,在第十二种可能的实现方式中,所述为 用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括: [0063]创建所述部署模板查询接口,为所述部署模板查询接口设置部署模板查询参数, 所述部署模板查询参数包括所述部署模板对应的用户名、所述部署模板的名称、所述部署 模板的版本、所述部署模板的描述信息、所述部署模板的内容、所述部署模板的创建时间、 所述部署模板的状态以及所述部署模板对应的所述应用模板和所述部署模板生成的所述 软件安装实例的编号;
[0064]定义所述部署模板查询参数的属性,所述属性包括所述部署模板查询参数的类 型、取值范围以及表示该参数是否为必须的标识;
[0065]创建所述部署模板列表查询接口,为所述部署模板列表查询接口设置部署模板列 表查询参数,所述部署模板列表查询参数包括所述部署模板对应的用户名、所述部署模板 的名称、查询偏移量、查询的列表数目的最大值、所述部署模板的描述信息、所述部署模板 的状态以及所述部署模板对应的所述应用模板和所述部署模板生成的所述软件安装实例 的编号;
[0066] 定义所述部署模板列表查询参数的属性,所述属性包括所述部署模板列表查询参 数的类型、取值范围以及表示该参数是否为必须的标识;
[0067]创建所述部署模板更新接口,为所述部署模板更新接口设置部署模板更新参数, 所述部署模板更新参数包括所述部署模板对应的用户名、所述应用模板的名称、所述部署 模板的版本、所述部署模板的内容、所述部署模板的描述信息、新的部署模板的名称、新的 部署模板的版本以及新的部署模板的内容;
[0068] 定义所述部署模板更新参数的属性,所述属性包括所述部署模板更新参数的类 型、取值范围以及表示该参数是否为必须的标识;
[0069]创建所述部署模板删除接口,为所述部署模板删除接口设置部署模板删除参数, 所述部署模板删除参数包括所述部署模板对应的用户名和所述部署模板的名称;
[0070] 定义所述部署模板删除参数的属性,所述属性包括所述部署模板删除参数的类 型、取值范围以及表示该参数是否为必须的标识;
[0071] 调用创建的接口实现与所述接口对应的功能。
[0072] 结合第一方面的第十二种可能的实现方式,在第十三种可能的实现方式中,所述 调用创建的接口实现与所述接口对应的功能包括:
[0073] 通过所述部署模板查询接口查询所述部署模板的内容;
[0074] 通过所述部署模板列表查询接口查询所述部署模板组成的列表;
[0075] 通过所述部署模板更新接口更新所述部署模板;
[0076] 通过所述部署模板删除接口删除所述部署模板。
[0077] 结合第一方面的第三种可能的实现方式,在第十四种可能的实现方式中,所述为 用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
[0078] 创建暂停部署接口,为所述暂停部署接口设置暂停部署参数,所述暂停部署参数 包括所述部署模板对应的用户名、所述部署模板当前的状态和所述部署模板生成的所述软 件安装实例的编号;
[0079]定义所述暂停部署参数的属性,所述属性包括所述暂停部署参数的类型、取值范 围以及表示该参数是否为必须的标识;
[0080] 创建继续部署接口,为所述继续部署接口设置继续部署参数,所述继续部署参数 包括所述部署模板对应的用户名、所述部署模板当前的状态和所述部署模板生成的所述软 件安装实例的编号;
[0081] 定义所述继续部署参数的属性,所述属性包括所述继续部署参数的类型、取值范 围以及表示该参数是否为必须的标识;
[0082] 创建实例卸载接口,为所述实例卸载接口设置卸载参数,所述卸载参数包括所述 部署模板对应的用户名、所述部署模板的名称、所述部署模板当前的状态和所述部署模板 生成的所述软件安装实例的编号;
[0083]定义所述卸载参数的属性,所述属性包括所述卸载参数的类型、取值范围以及表 示该参数是否为必须的标识。
[0084]结合第一方面的第三种可能的实现方式,在第十五种可能的实现方式中,所述调 用所述接口实现与所述接口对应的功能包括:
[0085] 通过所述暂停部署接口暂停所述软件部署;
[0086] 通过所述继续部署接口继续执行被暂停的软件部署过程;
[0087] 通过所述实例卸载接口删除指定的部署模型生成的软件安装实例。
[0088] 本发明实施例第二方面是提供一种云计算环境下的软件部署方法,该方法包括: [0089] 云计算服务器获取软件安装申请消息,所述申请消息包括需要安装的软件的软件 类型;
[0090] 云计算服务器根据所述软件类型确定与所述软件类型对应的应用模板;
[0091] 根据所述应用模板中的部署模型通过应用部署编排生成部署模板,所述部署模板 表示所述应用模板在被调用时的工作流;
[0092] 通过所述部署模板进行软件部署,所述软件部署包括生成所述需要安装的软件对 应的软件安装实例,所述软件安装实例为描述所述需要安装的软件对应的软件安装过程的 文件,所述软件安装实例包括部署实例和应用实例,所述部署实例为描述软件部署方式的 文件,所述应用实例为描述所述软件在部署时所用的资源的文件;
[0093] 云计算服务器将所述软件安装实例中的应用实例所描述的资源发送至所述虚拟 机资源的列表中的虚拟机,所述资源包括所述软件类型对应的所述应用模板中的软件包和 配置包,以便该虚拟机通过执行所述软件包与所述配置包中的安装脚本按照所述软件安装 实例中的部署实例进行软件安装。
[0094] 结合第二方面,在第一种可能实现方式中,所述应用模板创建于所述云服务器中, 所述应用模板包括应用模型、部署模型和资源模型;
[0095] 在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包;
[0096] 在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云计算 环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组网方 式、所述存储资源的部署方式和所述网络资源的部署方式;
[0097] 在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所述虚 拟机资源的列表、所述存储资源的列表和所述网络资源的列表。
[0098] 结合第二方面的第一种可能的实现方式,所述部署编排是在所述应用模板创建完 成后在所述服务器中创建的,所述应用部署编排表示通过所述应用模型进行软件部署时的 部署任务的流程,以便在云计算环境下按照所述应用部署编排进行软件部署,所述部署任 务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和所述脚本的执行操 作。
[0099] 本发明实施例的第三方面是提供一种云计算环境下的软件部署装置,所述装置包 括:
[0100] 应用模板创建单元,用于在云计算服务器中创建应用模板,所述应用模板包括应 用模型、部署模型和资源模型;
[0101] 应用模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所 述应用模型,在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包;
[0102] 部署模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所 述部署模型,在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云 计算环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组 网方式、所述存储资源的部署方式和所述网络资源的部署方式;
[0103] 资源模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所 述资源模型,在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所 述虚拟机资源的列表、所述存储资源的列表和所述网络资源的列表;
[0104] 部署编排创建单元,用于创建应用部署编排,所述应用部署编排表示通过所述应 用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照所述应用部署编排进 行软件部署,所述部署任务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操 作和所述脚本的执行操作;
[0105] 软件部署单元,用于根据创建的所述应用模板进行软件部署。
[0106] 结合第三方面,在第一种可能的实现方式中,该装置还包括:
[0107] 安装消息获取单元,用于获取软件安装申请消息,所述申请消息包括需要安装的 软件的软件类型;
[0108] 应用模板确定单元,用于从所述安装申请消息获取单元获取所述软件类型,根据 所述软件类型确定与所述软件类型对应的所述应用模板;
[0109] 部署模板生成单元,用于从所述部署编排创建单元获取所述部署编排,根据所述 应用模板通过所述应用部署编排生成部署模板,所述部署模板表示所述应用模板在被调用 时的工作流;
[0110] 模板部署单元,用于从所述部署模板生成单元获取所述部署模板,通过所述部署 模板进行软件部署,所述软件部署包括生成所述需要安装的软件对应的软件安装实例,所 述软件安装实例为描述所述需要安装的软件对应的软件安装过程的文件,所述安装实例包 括部署实例和应用实例,所述部署实例为描述软件部署方式的文件,所述应用实例为描述 所述软件在部署时所用的资源的文件;
[0111] 发送单元,用于在所述部署单元进行所述软件部署后,将所述软件安装实例中的 应用实例所描述的资源发送至所述虚拟机资源的列表中的虚拟机,所述资源包括所述软件 类型对应的所述应用模板中的软件包和配置包,以便该虚拟机通过执行所述软件包与所述 配置包中的安装脚本按照所述软件安装实例中的部署实例进行软件安装。
[0112] 结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,每个所述 软件包与所述组件具有独立的编号,所述配置包具有独立的编号,所述软件包的编号与所 述配置包的编号对应,所述配置包包括操作系统与安装脚本以及所述操作系统的编号与所 述安装脚本的编号;
[0113] 所述工作流包括:
[0114] 根据所述组件的编号确定所述软件包的编号,而后根据所述软件包的编号确定与 该软件包的编号对应的所述部署模型;
[0115] 根据所述软件包编号确定与该软件包编号对应的所述资源模型,将所述应用模 型、所述部署模型和所述资源模型按照应用部署编排生成所述软件安装实例,所述应用部 署编排描述所述应用模型、部署模型和资源模型被调用的过程。
[0116] 结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置 还包括:
[0117] 接口创建单元,用于为用户创建接口,并为所述接口设置参数,调用所述接口实现 与所述接口对应的功能。
[0118] 结合第三方面的第一种可能的实现方式,在第四种可能的实现方式中,所述接口 创建单元具体用于:
[0119] 创建所述执行部署接口,为所述执行部署接口设置部署参数,所述部署参数包括 所述部署模板对应的用户名和所述部署模板生成的所述软件安装实例的编号;
[0120] 定义所述部署参数的属性,所述属性包括所述部署参数的类型、取值范围以及表 示该参数是否为必须的标识;
[0121] 调用创建的接口实现与所述接口对应的功能。
[0122] 结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述接口 创建单元具体用于:
[0123] 调用所述执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个所 述软件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在 第二任务的执行顺序之前,则所述第一任务执行完成后所述第二任务才被执行,在执行顺 序上相邻的任务为互相关联的任务。
[0124] 结合第三方面的第三种可能实现方式,在第六种可能的实现方式中,所述接口创 建单元还用于 :
[0125] 创建所述应用模板设计接口,为所述应用模板设计接口设置应用模板设计参数, 所述应用模板设计参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用 模板的版本、所述应用模板的描述信息以及所述应用模板的内容;
[0126] 定义所述应用模板设计参数的属性,所述属性包括所述应用模板设计参数的类 型、取值范围以及表示该参数是否为必须的标识;
[0127] 创建所述模型上线接口,为所述模型上线接口设置上线参数,所述上线参数包括 所述应用模板对应的用户名、所述应用模板的名称以及所述应用模板的版本;
[0128] 定义所述上线参数的属性,所述属性包括所述上线参数的类型、取值范围以及表 示该参数是否为必须的标识;
[0129] 调用创建的接口实现与所述接口对应的功能。
[0130] 本发明实施例提供一种云计算环境下的软件部署方法和装置,首先创建应用模板 即对软件进行打包,而后根据该应用模板进行部署编排,,通过将应用模板的实例化来驱动 部署框架实现自动云化部署,能够使得云计算环境下的软件部署效率更高。

【专利附图】

【附图说明】
[0131] 为了更清楚地说明本发明的实施例或现有技术中的技术方案,下面将对实施例或 现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
[0132] 图1为本发明的实施例提供的云计算环境下的软件部署方法的流程示意图一;
[0133] 图2为本发明的实施例提供的云计算环境下的软件部署方法的流程示意图二;
[0134] 图3为本发明的实施例提供的云计算环境下的软件部署方法的流程示意图三;
[0135] 图4为本发明的实施例提供的应用模板的结构示意图;
[0136] 图5为本发明的实施例提供的应用模型的结构示意图;
[0137] 图6为本发明的实施例提供的部署模型的结构示意图;
[0138] 图7为本发明的实施例提供的资源模型的结构示意图;
[0139]图8为本发明的实施例提供的软件部署装置的结构示意图一;
[0140] 图9为本发明的实施例提供的软件部署装置的结构示意图二;
[0141] 图10为本发明的实施例提供的软件部署装置的结构示意图三;
[0142] 图11为本发明的实施例提供的云计算服务器的结构示意图。

【具体实施方式】
[0143] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本 发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0144] 在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制 本发明。在本发明实施例和所附权利要求书中所使用的单数形式的"一种"和"该"也旨在 包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或" 是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0145] 本发明实施例提供一种云计算下的快速应用打包和部署实现方法,通过设置应用 模板,由应用模板导出应用模型、资源模型和部署模型,从而实现应用的快速打包和云环境 下的一键部署。应用模型定义应用软件包和软件安装控制方法;资源模型定义软件依赖的 云化资源;部署模型定义应用模型与资源模型的部署依赖关系,通过将应用模板的实例化 来驱动部署框架实现自动云化部署。
[0146] 本发明的实施例提供云计算环境下的软件部署方法和装置,如图1所示,该方法 包括:
[0147] S101、在云计算服务器中创建应用模板,应用模板包括应用模型、部署模型和资源 模型。
[0148] S102、创建应用模型,在应用模型中生成至少一个组件,组件包括软件包和配置 包。
[0149] S103、创建部署模型,在部署模型中生成该部署模型对应的资源的部署类型,资源 包括云计算环境中的虚拟机资源、存储资源和网络资源,部署类型包括虚拟机资源的组网 方式、存储资源的部署方式和网络资源的部署方式。
[0150] S104、创建资源模型,在资源模型中生成软件包对应的资源的列表,列表包括虚拟 机资源的列表、存储资源的列表和网络资源的列表。
[0151] S105、创建应用部署编排,应用部署编排表示通过应用模型进行软件部署时的部 署任务的流程,以便在云计算环境下按照应用部署编排进行软件部署,部署任务包括虚拟 机资源、存储资源与网络资源的调用操作和脚本的执行操作;
[0152] S106、根据创建的应用模板进行软件部署。
[0153] 本发明的实施例提供云计算环境下的软件部署方法,首先创建应用模板即对软件 进行打包,而后根据该应用模板进行部署编排,通过将应用模板的实例化来驱动部署框架 实现自动云化部署,能够使得云计算环境下的软件部署效率更高。
[0154] 本发明的实施例提供云计算环境下的软件部署方法,如图2所示,该方法具体可 以包括:
[0155] S201、云计算服务器获取软件安装申请消息,申请消息包括需要安装的软件的软 件类型。
[0156] S202、云计算服务器根据软件类型确定与软件类型对应的应用模板。
[0157] S203、根据部署模型通过应用部署编排生成部署模板,部署模板表示应用模板在 被调用时的工作流。
[0158] S204、通过部署模板进行软件部署,软件部署包括生成需要安装的软件对应的软 件安装实例,软件安装实例为描述需要安装的软件对应的软件安装过程的文件,安装实例 包括部署实例和应用实例,部署实例为描述软件部署方式的文件,应用实例为描述软件在 部署时所用的资源的文件。
[0159] S205、云计算服务器将软件类型对应的应用模板中的软件包和配置包发送至虚拟 机资源的列表中的虚拟机,以便该虚拟机根据软件包与配置包中的安装脚本进行软件安 装。
[0160] 本发明的实施例提供云计算环境下的软件部署方法,首先获取软件包和与软件包 对应的软件安装脚本,根据该软件包通过运行软件安装脚本安装与软件包对应的软件,能 够使得云计算环境下的软件安装效率更高。
[0161] 下面为本发明实施例提供的云计算环境下的软件部署方法提供一种更为详细的 实施例。
[0162] 本发明的实施例提供云计算环境下的软件部署方法,如图3所示,该方法包括:
[0163] 301、创建应用模板,将应用软件进行打包。
[0164] 具体的,可通过以下方法实现:
[0165] 创建应用模板设计接口,为应用模板设计接口设置应用模板设计参数,应用模板 设计参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本、应用模板的描述 信息以及应用模板的内容;
[0166] 定义应用模板设计参数的属性,属性包括应用模板设计参数的类型、取值范围以 及表示该参数是否为必须的标识。
[0167] 示例性的,该接口格式如下:
[0168]

【权利要求】
1. 一种云计算环境下的软件部署方法,其特征在于,包括: 在云计算服务器中创建应用模板,所述应用模板包括应用模型、部署模型和资源模 型; 创建所述应用模型,在所述应用模型中生成至少一个组件,所述组件包括软件包和配 置包; 创建所述部署模型,在所述部署模型中生成该部署模型对应的资源的部署类型,所述 资源包括云计算环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟 机资源的组网方式、所述存储资源的部署方式和所述网络资源的部署方式; 创建所述资源模型,在所述资源模型中生成所述软件包对应的所述资源的列表,所述 列表包括所述虚拟机资源的列表、所述存储资源的列表和所述网络资源的列表; 创建应用部署编排,所述应用部署编排表示通过所述应用模型进行软件部署时的部署 任务的流程,以便在云计算环境下按照所述应用部署编排进行软件部署,所述部署任务包 括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和所述配置包中的安装脚本 的执行操作; 根据创建的所述应用模板进行软件部署。
2. 根据权利要求1所述的方法,其特征在于,所述根据创建的所述应用模板进行软件 部署,包括: 云计算服务器获取软件安装申请消息,所述申请消息包括需要安装的软件的软件类 型; 云计算服务器根据所述软件类型确定与所述软件类型对应的所述应用模板; 根据所述部署模型通过所述应用部署编排生成部署模板,所述部署模板表示所述应用 模板在被调用时的工作流; 通过所述部署模板进行软件部署,所述软件部署包括生成所述需要安装的软件对应 的软件安装实例,所述软件安装实例为描述所述需要安装的软件对应的软件安装过程的文 件,所述安装实例包括部署实例和应用实例,所述部署实例为描述软件部署方式的文件, 所述应用实例为描述所述软件在部署时所用的资源的文件; 云计算服务器将所述软件安装实例中的应用实例所描述的资源发送至所述虚拟机资 源的列表中的虚拟机,所述资源包括所述软件类型对应的所述应用模板中的软件包和配置 包,以便该虚拟机通过执行所述软件包与所述配置包中的安装脚本按照所述软件安装实例 中的部署实例进行软件安装。
3. 根据权利要求2所述的方法,其特征在于,每个所述软件包与所述组件具有独立的 编号,所述配置包具有独立的编号,所述软件包的编号与所述配置包的编号对应,所述配置 包包括操作系统与安装脚本以及所述操作系统的编号与所述安装脚本的编号; 所述工作流包括: 根据所述组件的编号确定所述软件包的编号,而后根据所述软件包的编号确定与该软 件包的编号对应的所述部署模型; 根据所述软件包编号确定与该软件包编号对应的所述资源模型,将所述应用模型、所 述部署模型和所述资源模型按照应用部署编排生成所述软件安装实例,所述应用部署编排 描述所述应用模型、部署模型和资源模型被调用的过程。
4. 根据权利要求2所述的方法,其特征在于,所述方法还包括: 为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能。
5. 根据权利要求4所述的方法,其特征在于,所述为用户创建接口,并为所述接口设置 参数,调用所述接口实现与所述接口对应的功能包括: 创建所述执行部署接口,为所述执行部署接口设置部署参数,所述部署参数包括所述 部署模板对应的用户名和所述部署模板生成的所述软件安装实例的编号; 定义所述部署参数的属性,所述属性包括所述部署参数的类型、取值范围以及表示该 参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
6. 根据权利要求5所述的方法,其特征在于,所述调用创建的接口实现与所述接口对 应的功能包括: 调用所述执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个所述软 件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二 任务的执行顺序之前,则所述第一任务执行完成后所述第二任务才被执行,在执行顺序上 相邻的任务为互相关联的任务。
7. 根据权利要求4所述的方法,其特征在于,所述为用户创建接口,并为所述接口设置 参数,调用所述接口实现与所述接口对应的功能包括: 创建所述应用模板设计接口,为所述应用模板设计接口设置应用模板设计参数,所述 应用模板设计参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板 的版本、所述应用模板的描述信息以及所述应用模板的内容; 定义所述应用模板设计参数的属性,所述属性包括所述应用模板设计参数的类型、取 值范围以及表示该参数是否为必须的标识; 创建所述模型上线接口,为所述模型上线接口设置上线参数,所述上线参数包括所述 应用模板对应的用户名、所述应用模板的名称以及所述应用模板的版本; 定义所述上线参数的属性,所述属性包括所述上线参数的类型、取值范围以及表示该 参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
8. 根据权利要求7所述的方法,其特征在于,所述调用创建的接口实现与所述接口对 应的功能包括: 通过所述应用模板设计接口创建所述应用模板; 通过所述模型上线接口将所述应用模板上线。
9. 根据权利要求4所述的方法,其特征在于,所述为用户创建接口,并为所述接口设置 参数,调用所述接口实现与所述接口对应的功能包括: 创建所述应用模板列表查询接口,为所述应用模板列表查询接口设置列表查询参数, 所述列表查询参数包括所述部署模板对应的用户名、所述应用模板的名称和编号、反馈的 列表数量、所述应用模板的版本以及查询偏移量; 定义所述列表查询参数的属性,所述属性包括所述列表查询参数的类型、取值范围以 及表示该参数是否为必须的标识; 创建所述应用模板查询接口,为所述应用模板查询接口设置查询参数,所述查询参数 包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板的版本以及所述应 用模板的状态; 定义所述查询参数的属性,所述属性包括所述查询参数的类型、取值范围以及表示该 参数是否为必须的标识; 创建所述删除应用模板接口,为所述删除应用模板接口设置删除参数,所述删除参数 包括所述部署模板对应的用户名、所述应用模板的名称和所述应用模板的版本; 定义所述删除参数的属性,所述属性包括所述删除参数的类型、取值范围以及表示该 参数是否为必须的标识; 创建所述更新应用模板接口,为所述更新应用模板接口设置更新参数,所述更新参数 包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板的版本、所述应用模 板的内容、所述应用模板的描述信息、新的应用模板的名称、新的应用模板的版本以及新的 应用模板的内容; 定义所述更新参数的属性,所述属性包括所述更新参数的类型、取值范围以及表示该 参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
10. 根据权利要求7所述方法,其特征在于,所述调用创建的接口实现与所述接口对应 的功能包括: 在创建所述应用模板之后,通过所述应用模板列表查询接口查询用户所有已创建的所 述应用模板组成的列表; 在创建所述应用模板之后,通过所述应用模板查询接口查询用户所有已创建的所述应 用模板的内容; 当需要删除所述应用模板,则通过所述删除应用模板接口删除所述应用模板; 当需要更新所述应用模板,则通过所述更新应用模板接口更新所述应用模板。
11. 根据权利要求4所述的方法,其特征在于,所述为用户创建接口,并为所述接口设 置参数,调用所述接口实现与所述接口对应的功能包括: 创建所述分析检查接口,为所述分析检查接口设置检查参数,所述检查参数包括所述 部署模板对应的用户名、所述部署模板的名称、检查完成后生成的所述软件安装实例的编 号、所述部署模板的状态、所述软件安装实例的个数、检查完成所需的时间、检查失败后生 成的错误报告列表、导致检查失败的部署模板的节点的类型、导致检查失败的部署模板的 节点的名称、错误报告对应的编号、检查失败的提示信息以及修改建议信息; 定义所述检查参数的属性,所述属性包括所述检查参数的类型、取值范围以及表示该 参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
12. 根据权利要求11所述的方法,其特征在于,所述调用创建的接口实现与所述接口 对应的功能包括: 通过所述分析检查接口对所述部署模板进行检查,检查该部署模板所需的所述软件 包、所述配置包、以及所述虚拟机资源、存储资源和所述网络资源是否完整。
13. 根据权利要求4所述的方法,其特征在于,所述为用户创建接口,并为所述接口设 置参数,调用所述接口实现与所述接口对应的功能包括: 创建所述部署模板查询接口,为所述部署模板查询接口设置部署模板查询参数,所述 部署模板查询参数包括所述部署模板对应的用户名、所述部署模板的名称、所述部署模板 的版本、所述部署模板的描述信息、所述部署模板的内容、所述部署模板的创建时间、所述 部署模板的状态以及所述部署模板对应的所述应用模板和所述部署模板生成的所述软件 安装实例的编号; 定义所述部署模板查询参数的属性,所述属性包括所述部署模板查询参数的类型、取 值范围以及表示该参数是否为必须的标识; 创建所述部署模板列表查询接口,为所述部署模板列表查询接口设置部署模板列表查 询参数,所述部署模板列表查询参数包括所述部署模板对应的用户名、所述部署模板的名 称、查询偏移量、查询的列表数目的最大值、所述部署模板的描述信息、所述部署模板的状 态以及所述部署模板对应的所述应用模板和所述部署模板生成的所述软件安装实例的编 号; 定义所述部署模板列表查询参数的属性,所述属性包括所述部署模板列表查询参数的 类型、取值范围以及表示该参数是否为必须的标识; 创建所述部署模板更新接口,为所述部署模板更新接口设置部署模板更新参数,所述 部署模板更新参数包括所述部署模板对应的用户名、所述应用模板的名称、所述部署模板 的版本、所述部署模板的内容、所述部署模板的描述信息、新的部署模板的名称、新的部署 模板的版本以及新的部署模板的内容; 定义所述部署模板更新参数的属性,所述属性包括所述部署模板更新参数的类型、取 值范围以及表示该参数是否为必须的标识; 创建所述部署模板删除接口,为所述部署模板删除接口设置部署模板删除参数,所述 部署模板删除参数包括所述部署模板对应的用户名和所述部署模板的名称; 定义所述部署模板删除参数的属性,所述属性包括所述部署模板删除参数的类型、取 值范围以及表示该参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
14. 根据权利要求13所述的方法,其特征在于,所述调用创建的接口实现与所述接口 对应的功能包括: 通过所述部署模板查询接口查询所述部署模板的内容; 通过所述部署模板列表查询接口查询所述部署模板组成的列表; 通过所述部署模板更新接口更新所述部署模板; 通过所述部署模板删除接口删除所述部署模板。
15. 根据权利要求4所述的方法,其特征在于,所述为用户创建接口,并为所述接口设 置参数,调用所述接口实现与所述接口对应的功能包括: 创建暂停部署接口,为所述暂停部署接口设置暂停部署参数,所述暂停部署参数包括 所述部署模板对应的用户名、所述部署模板当前的状态和所述部署模板生成的所述软件安 装实例的编号; 定义所述暂停部署参数的属性,所述属性包括所述暂停部署参数的类型、取值范围以 及表示该参数是否为必须的标识; 创建继续部署接口,为所述继续部署接口设置继续部署参数,所述继续部署参数包括 所述部署模板对应的用户名、所述部署模板当前的状态和所述部署模板生成的所述软件安 装实例的编号; 定义所述继续部署参数的属性,所述属性包括所述继续部署参数的类型、取值范围以 及表示该参数是否为必须的标识; 创建实例卸载接口,为所述实例卸载接口设置卸载参数,所述卸载参数包括所述部署 模板对应的用户名、所述部署模板的名称、所述部署模板当前的状态和所述部署模板生成 的所述软件安装实例的编号; 定义所述卸载参数的属性,所述属性包括所述卸载参数的类型、取值范围以及表示该 参数是否为必须的标识。
16. 根据权利要求4所述的方法,其特征在于,所述调用所述接口实现与所述接口对应 的功能包括: 通过所述暂停部署接口暂停所述软件部署; 通过所述继续部署接口继续执行被暂停的软件部署过程; 通过所述实例卸载接口删除指定的部署模型生成的软件安装实例。
17. -种云计算环境下的软件部署方法,其特征在于,所述方法包括: 云计算服务器获取软件安装申请消息,所述申请消息包括需要安装的软件的软件类 型; 云计算服务器根据所述软件类型确定与所述软件类型对应的应用模板; 根据所述应用模板中的部署模型通过应用部署编排生成部署模板,所述部署模板表示 所述应用模板在被调用时的工作流; 通过所述部署模板进行软件部署,所述软件部署包括生成所述需要安装的软件对应 的软件安装实例,所述软件安装实例为描述所述需要安装的软件对应的软件安装过程的文 件,所述软件安装实例包括部署实例和应用实例,所述部署实例为描述软件部署方式的文 件,所述应用实例为描述所述软件在部署时所用的资源的文件; 云计算服务器将所述软件安装实例中的应用实例所描述的资源发送至虚拟机资源的 列表中的虚拟机,所述资源包括所述软件类型对应的所述应用模板中的软件包和配置包, 以便该虚拟机通过执行所述软件包与所述配置包中的安装脚本,按照所述软件安装实例中 的部署实例进行软件安装。
18. 如权利要求17所述的方法,其特征在于,所述应用模板创建于所述云服务器中,所 述应用模板包括应用模型、部署模型和资源模型; 在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包; 在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云计算环境 中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组网方式、所 述存储资源的部署方式和所述网络资源的部署方式; 在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所述虚拟机 资源的列表、所述存储资源的列表和所述网络资源的列表。
19. 根据权利要求17所述的方法,其特征在于,所述部署编排是在所述应用模板创建 完成后在所述服务器中创建的,所述应用部署编排表示通过所述应用模型进行软件部署时 的部署任务的流程,以便在云计算环境下按照所述应用部署编排进行软件部署,所述部署 任务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和所述脚本的执行操 作。
20. -种云计算环境下的软件部署装置,其特征在于,所述装置包括: 应用模板创建单元,用于在云计算服务器中创建应用模板,所述应用模板包括应用模 型、部署模型和资源模型; 应用模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所述应 用模型,在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包; 部署模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所述部 署模型,在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云计算 环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组网方 式、所述存储资源的部署方式和所述网络资源的部署方式; 资源模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所述资 源模型,在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所述虚 拟机资源的列表、所述存储资源的列表和所述网络资源的列表; 部署编排创建单元,用于创建应用部署编排,所述应用部署编排表示通过所述应用模 型进行软件部署时的部署任务的流程,以便在云计算环境下按照所述应用部署编排进行软 件部署,所述部署任务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和 所述脚本的执行操作; 软件部署单元,用于根据创建的所述应用模板进行软件部署。
21. 根据权利要求20所述的装置,其特征在于,该装置还包括: 安装消息获取单元,用于获取软件安装申请消息,所述申请消息包括需要安装的软件 的软件类型; 应用模板确定单元,用于从所述安装申请消息获取单元获取所述软件类型,根据所述 软件类型确定与所述软件类型对应的所述应用模板; 部署模板生成单元,用于从所述部署编排创建单元获取所述部署编排,根据所述应用 模板通过所述应用部署编排生成部署模板,所述部署模板表示所述应用模板在被调用时的 工作流; 模板部署单元,用于从所述部署模板生成单元获取所述部署模板,通过所述部署模板 进行软件部署,所述软件部署包括生成所述需要安装的软件对应的软件安装实例,所述软 件安装实例为描述所述需要安装的软件对应的软件安装过程的文件,所述安装实例包括部 署实例和应用实例,所述部署实例为描述软件部署方式的文件,所述应用实例为描述所述 软件在部署时所用的资源的文件; 发送单元,用于在所述部署单元进行所述软件部署后,将所述软件安装实例中的应用 实例所描述的资源发送至所述虚拟机资源的列表中的虚拟机,所述资源包括所述软件类型 对应的所述应用模板中的软件包和配置包,以便该虚拟机通过执行所述软件包与所述配置 包中的安装脚本按照所述软件安装实例中的部署实例进行软件安装。
22. 根据权利要求21所述的装置,其特征在于,每个所述软件包与所述组件具有独立 的编号,所述配置包具有独立的编号,所述软件包的编号与所述配置包的编号对应,所述配 置包包括操作系统与安装脚本以及所述操作系统的编号与所述安装脚本的编号; 所述工作流包括: 根据所述组件的编号确定所述软件包的编号,而后根据所述软件包的编号确定与该软 件包的编号对应的所述部署模型; 根据所述软件包编号确定与该软件包编号对应的所述资源模型,将所述应用模型、所 述部署模型和所述资源模型按照应用部署编排生成所述软件安装实例,所述应用部署编排 描述所述应用模型、部署模型和资源模型被调用的过程。
23. 根据权利要求21所述的装置,其特征在于,所述装置还包括: 接口创建单元,用于为用户创建接口,并为所述接口设置参数,调用所述接口实现与所 述接口对应的功能。
24. 根据权利要求23所述的装置,其特征在于,所述接口创建单元具体用于: 创建所述执行部署接口,为所述执行部署接口设置部署参数,所述部署参数包括所述 部署模板对应的用户名和所述部署模板生成的所述软件安装实例的编号; 定义所述部署参数的属性,所述属性包括所述部署参数的类型、取值范围以及表示该 参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
25. 根据权利要求24所述的装置,其特征在于,所述接口创建单元具体用于: 调用所述执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个所述软 件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二 任务的执行顺序之前,则所述第一任务执行完成后所述第二任务才被执行,在执行顺序上 相邻的任务为互相关联的任务。
26. 根据权利要求23所述的装置,其特征在于,所述接口创建单元还用于: 创建所述应用模板设计接口,为所述应用模板设计接口设置应用模板设计参数,所述 应用模板设计参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板 的版本、所述应用模板的描述信息以及所述应用模板的内容; 定义所述应用模板设计参数的属性,所述属性包括所述应用模板设计参数的类型、取 值范围以及表示该参数是否为必须的标识; 创建所述模型上线接口,为所述模型上线接口设置上线参数,所述上线参数包括所述 应用模板对应的用户名、所述应用模板的名称以及所述应用模板的版本; 定义所述上线参数的属性,所述属性包括所述上线参数的类型、取值范围以及表示该 参数是否为必须的标识; 调用创建的接口实现与所述接口对应的功能。
【文档编号】G06F9/46GK104317642SQ201410509978
【公开日】2015年1月28日 申请日期:2014年9月28日 优先权日:2014年9月28日
【发明者】严永福, 黄花 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1