CN104317642B - 云计算环境下的软件部署方法和装置 - Google Patents

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

Info

Publication number
CN104317642B
CN104317642B CN201410509978.0A CN201410509978A CN104317642B CN 104317642 B CN104317642 B CN 104317642B CN 201410509978 A CN201410509978 A CN 201410509978A CN 104317642 B CN104317642 B CN 104317642B
Authority
CN
China
Prior art keywords
deployment
template
interface
application
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410509978.0A
Other languages
English (en)
Other versions
CN104317642A (zh
Inventor
严永福
黄花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410509978.0A priority Critical patent/CN104317642B/zh
Publication of CN104317642A publication Critical patent/CN104317642A/zh
Application granted granted Critical
Publication of CN104317642B publication Critical patent/CN104317642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明的实施例提供一种云计算环境下的软件部署方法和装置,涉及云计算领域,能够使得云计算环境下的软件部署效率更高。其方法为:首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,通过将应用模板的实例化来驱动部署框架实现自动云化部署。本发明实施例用于在云计算环境下进行软件部署。

Description

云计算环境下的软件部署方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及云计算环境下的软件部署方法和装置。
背景技术
运营商内部的IT系统规模不断增大,各运营商开始建设自己的私有云、公有云系统,将传统业务逐步迁移到云化的资源池上,方便硬件和软件的统一管理。
现有技术往往利用迁移工具将传统业务迁移到云计算环境中,首先利用迁移工具收集物理环境,整理出物理设备、存储设备和网络设备的要求,根据不同操作系统设备不同参数来编译不同的安装包。
在实现上述业务迁移的过程中,发明人发现现有技术至少存在如下问题:
利用迁移工具将传统业务迁移至云计算环境时,需要根据不同的硬件设备对应的操作系统来编译不同的安装包,而当需要将该业务迁移到其他设备上时,若其他硬件设备的操作系统不同时,则需要重新根据其他硬件设备的操作系统重新编译安装包才能执行部署,使得云计算的软件部署效率低。
发明内容
本发明的实施例提供一种云计算环境下的软件部署方法和装置,能够使得云计算环境下的软件部署效率更高。
本发明实施例的第一方面是提供一种云计算环境下的软件部署方法,该方法包括:
在云计算服务器中创建应用模板,所述应用模板包括应用模型、部署模型和资源模型;
创建所述应用模型,在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包;
创建所述部署模型,在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云计算环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组网方式、所述存储资源的部署方式和所述网络资源的部署方式;
创建所述资源模型,在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所述虚拟机资源的列表、所述存储资源的列表和所述网络资源的列表;
创建应用部署编排,所述应用部署编排表示通过所述应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照所述应用部署编排进行软件部署,所述部署任务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和所述脚本的执行操作;
根据创建的所述应用模板进行软件部署。
结合第一方面,在第一种可能的实现方式中,所述根据创建的所述应用模板进行软件部署,包括:
云计算服务器获取软件安装申请消息,所述申请消息包括需要安装的软件的软件类型;
云计算服务器根据所述软件类型确定与所述软件类型对应的所述应用模板;
根据所述部署模型通过所述应用部署编排生成部署模板,所述部署模板表示所述应用模板在被调用时的工作流;
通过所述部署模板进行软件部署,所述软件部署包括生成所述需要安装的软件对应的软件安装实例,所述软件安装实例为描述所述需要安装的软件对应的软件安装过程的文件,所述安装实例包括部署实例和应用实例,所述部署实例为描述软件部署方式的文件,所述应用实例为描述所述软件在部署时所用的资源的文件;
云计算服务器将所述软件安装实例中的应用实例所描述的资源发送至所述虚拟机资源的列表中的虚拟机,所述资源包括所述软件类型对应的所述应用模板中的软件包和配置包,以便该虚拟机通过执行所述软件包与所述配置包中的安装脚本按照所述软件安装实例中的部署实例进行软件安装。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,每个所述软件包与所述组件具有独立的编号,所述配置包具有独立的编号,所述软件包的编号与所述配置包的编号对应,所述配置包包括操作系统与安装脚本以及所述操作系统的编号与所述安装脚本的编号;
所述工作流包括:
根据所述组件的编号确定所述软件包的编号,而后根据所述软件包的编号确定与该软件包的编号对应的所述部署模型;
根据所述软件包编号确定与该软件包编号对应的所述资源模型,将所述应用模型、所述部署模型和所述资源模型按照应用部署编排生成所述软件安装实例,所述应用部署编排描述所述应用模型、部署模型和资源模型被调用的过程。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
创建所述执行部署接口,为所述执行部署接口设置部署参数,所述部署参数包括所述部署模板对应的用户名和所述部署模板生成的所述软件安装实例的编号;
定义所述部署参数的属性,所述属性包括所述部署参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述调用创建的接口实现与所述接口对应的功能包括:
调用所述执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个所述软件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二任务的执行顺序之前,则所述第一任务执行完成后所述第二任务才被执行,在执行顺序上相邻的任务为互相关联的任务。
结合第一方面的第三种可能的实现方式,在第六种可能的实现方式中,所述为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
创建所述应用模板设计接口,为所述应用模板设计接口设置应用模板设计参数,所述应用模板设计参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板的版本、所述应用模板的描述信息以及所述应用模板的内容;
定义所述应用模板设计参数的属性,所述属性包括所述应用模板设计参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述模型上线接口,为所述模型上线接口设置上线参数,所述上线参数包括所述应用模板对应的用户名、所述应用模板的名称以及所述应用模板的版本;
定义所述上线参数的属性,所述属性包括所述上线参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述调用创建的接口实现与所述接口对应的功能包括:
通过所述应用模板设计接口创建所述应用模板;
通过所述模型上线接口将所述应用模板上线。
结合第一方面的第三种可能的实现方式,在第八种可能的实现方式中,所述为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
创建所述应用模板列表查询接口,为所述应用模板列表查询接口设置列表查询参数,所述列表查询参数包括所述部署模板对应的用户名、所述应用模板的名称和编号、反馈的列表数量、所述应用模板的版本以及查询偏移量;
定义所述列表查询参数的属性,所述属性包括所述列表查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述应用模板查询接口,为所述应用模板查询接口设置查询参数,所述查询参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板的版本以及所述应用模板的状态;
定义所述查询参数的属性,所述属性包括所述查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述删除应用模板接口,为所述删除应用模板接口设置删除参数,所述删除参数包括所述部署模板对应的用户名、所述应用模板的名称和所述应用模板的版本;
定义所述删除参数的属性,所述属性包括所述删除参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述更新应用模板接口,为所述更新应用模板接口设置更新参数,所述更新参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板的版本、所述应用模板的内容、所述应用模板的描述信息、新的应用模板的名称、新的应用模板的版本以及新的应用模板的内容;
定义所述更新参数的属性,所述属性包括所述更新参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
结合第一方面的第六种可能的实现方式,在第九种可能的实现方式中,所述调用创建的接口实现与所述接口对应的功能包括:
在创建所述应用模板之后,通过所述应用模板列表查询接口查询用户所有已创建的所述应用模板组成的列表;
在创建所述应用模板之后,通过所述应用模板查询接口查询用户所有已创建的所述应用模板的内容;
当需要删除所述应用模板,则通过所述删除应用模板接口删除所述应用模板;
当需要更新所述应用模板,则通过所述更新应用模板接口更新所述应用模板。
结合第一方面的第三种可能的实现方式,在第十种可能的实现方式中,所述为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
创建所述分析检查接口,为所述分析检查接口设置检查参数,所述检查参数包括所述部署模板对应的用户名、所述部署模板的名称、检查完成后生成的所述软件安装实例的编号、所述部署模板的状态、所述软件安装实例的个数、检查完成所需的时间、检查失败后生成的错误报告列表、导致检查失败的部署模板的节点的类型、导致检查失败的部署模板的节点的名称、错误报告对应的编号、检查失败的提示信息以及修改建议信息;
定义所述检查参数的属性,所述属性包括所述检查参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
结合第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述调用创建的接口实现与所述接口对应的功能包括:
通过所述分析检查接口对所述部署模板进行检查,检查该部署模板所需的所述软件包、所述配置包、以及所述虚拟机资源、存储资源和所述网络资源是否完整。
结合第一方面的第三种可能的实现方式,在第十二种可能的实现方式中,所述为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
创建所述部署模板查询接口,为所述部署模板查询接口设置部署模板查询参数,所述部署模板查询参数包括所述部署模板对应的用户名、所述部署模板的名称、所述部署模板的版本、所述部署模板的描述信息、所述部署模板的内容、所述部署模板的创建时间、所述部署模板的状态以及所述部署模板对应的所述应用模板和所述部署模板生成的所述软件安装实例的编号;
定义所述部署模板查询参数的属性,所述属性包括所述部署模板查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述部署模板列表查询接口,为所述部署模板列表查询接口设置部署模板列表查询参数,所述部署模板列表查询参数包括所述部署模板对应的用户名、所述部署模板的名称、查询偏移量、查询的列表数目的最大值、所述部署模板的描述信息、所述部署模板的状态以及所述部署模板对应的所述应用模板和所述部署模板生成的所述软件安装实例的编号;
定义所述部署模板列表查询参数的属性,所述属性包括所述部署模板列表查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述部署模板更新接口,为所述部署模板更新接口设置部署模板更新参数,所述部署模板更新参数包括所述部署模板对应的用户名、所述应用模板的名称、所述部署模板的版本、所述部署模板的内容、所述部署模板的描述信息、新的部署模板的名称、新的部署模板的版本以及新的部署模板的内容;
定义所述部署模板更新参数的属性,所述属性包括所述部署模板更新参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述部署模板删除接口,为所述部署模板删除接口设置部署模板删除参数,所述部署模板删除参数包括所述部署模板对应的用户名和所述部署模板的名称;
定义所述部署模板删除参数的属性,所述属性包括所述部署模板删除参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
结合第一方面的第十二种可能的实现方式,在第十三种可能的实现方式中,所述调用创建的接口实现与所述接口对应的功能包括:
通过所述部署模板查询接口查询所述部署模板的内容;
通过所述部署模板列表查询接口查询所述部署模板组成的列表;
通过所述部署模板更新接口更新所述部署模板;
通过所述部署模板删除接口删除所述部署模板。
结合第一方面的第三种可能的实现方式,在第十四种可能的实现方式中,所述为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能包括:
创建暂停部署接口,为所述暂停部署接口设置暂停部署参数,所述暂停部署参数包括所述部署模板对应的用户名、所述部署模板当前的状态和所述部署模板生成的所述软件安装实例的编号;
定义所述暂停部署参数的属性,所述属性包括所述暂停部署参数的类型、取值范围以及表示该参数是否为必须的标识;
创建继续部署接口,为所述继续部署接口设置继续部署参数,所述继续部署参数包括所述部署模板对应的用户名、所述部署模板当前的状态和所述部署模板生成的所述软件安装实例的编号;
定义所述继续部署参数的属性,所述属性包括所述继续部署参数的类型、取值范围以及表示该参数是否为必须的标识;
创建实例卸载接口,为所述实例卸载接口设置卸载参数,所述卸载参数包括所述部署模板对应的用户名、所述部署模板的名称、所述部署模板当前的状态和所述部署模板生成的所述软件安装实例的编号;
定义所述卸载参数的属性,所述属性包括所述卸载参数的类型、取值范围以及表示该参数是否为必须的标识。
结合第一方面的第三种可能的实现方式,在第十五种可能的实现方式中,所述调用所述接口实现与所述接口对应的功能包括:
通过所述暂停部署接口暂停所述软件部署;
通过所述继续部署接口继续执行被暂停的软件部署过程;
通过所述实例卸载接口删除指定的部署模型生成的软件安装实例。
本发明实施例第二方面是提供一种云计算环境下的软件部署方法,该方法包括:
云计算服务器获取软件安装申请消息,所述申请消息包括需要安装的软件的软件类型;
云计算服务器根据所述软件类型确定与所述软件类型对应的应用模板;
根据所述应用模板中的部署模型通过应用部署编排生成部署模板,所述部署模板表示所述应用模板在被调用时的工作流;
通过所述部署模板进行软件部署,所述软件部署包括生成所述需要安装的软件对应的软件安装实例,所述软件安装实例为描述所述需要安装的软件对应的软件安装过程的文件,所述软件安装实例包括部署实例和应用实例,所述部署实例为描述软件部署方式的文件,所述应用实例为描述所述软件在部署时所用的资源的文件;
云计算服务器将所述软件安装实例中的应用实例所描述的资源发送至所述虚拟机资源的列表中的虚拟机,所述资源包括所述软件类型对应的所述应用模板中的软件包和配置包,以便该虚拟机通过执行所述软件包与所述配置包中的安装脚本按照所述软件安装实例中的部署实例进行软件安装。
结合第二方面,在第一种可能实现方式中,所述应用模板创建于所述云服务器中,所述应用模板包括应用模型、部署模型和资源模型;
在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包;
在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云计算环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组网方式、所述存储资源的部署方式和所述网络资源的部署方式;
在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所述虚拟机资源的列表、所述存储资源的列表和所述网络资源的列表。
结合第二方面的第一种可能的实现方式,所述部署编排是在所述应用模板创建完成后在所述服务器中创建的,所述应用部署编排表示通过所述应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照所述应用部署编排进行软件部署,所述部署任务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和所述脚本的执行操作。
本发明实施例的第三方面是提供一种云计算环境下的软件部署装置,所述装置包括:
应用模板创建单元,用于在云计算服务器中创建应用模板,所述应用模板包括应用模型、部署模型和资源模型;
应用模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所述应用模型,在所述应用模型中生成至少一个组件,所述组件包括软件包和配置包;
部署模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所述部署模型,在所述部署模型中生成该部署模型对应的资源的部署类型,所述资源包括云计算环境中的虚拟机资源、存储资源和网络资源,所述部署类型包括所述虚拟机资源的组网方式、所述存储资源的部署方式和所述网络资源的部署方式;
资源模型创建单元,用于在所述应用模板创建单元创建所述应用模板后,创建所述资源模型,在所述资源模型中生成所述软件包对应的所述资源的列表,所述列表包括所述虚拟机资源的列表、所述存储资源的列表和所述网络资源的列表;
部署编排创建单元,用于创建应用部署编排,所述应用部署编排表示通过所述应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照所述应用部署编排进行软件部署,所述部署任务包括所述虚拟机资源、所述存储资源与所述网络资源的调用操作和所述脚本的执行操作;
软件部署单元,用于根据创建的所述应用模板进行软件部署。
结合第三方面,在第一种可能的实现方式中,该装置还包括:
安装消息获取单元,用于获取软件安装申请消息,所述申请消息包括需要安装的软件的软件类型;
应用模板确定单元,用于从所述安装申请消息获取单元获取所述软件类型,根据所述软件类型确定与所述软件类型对应的所述应用模板;
部署模板生成单元,用于从所述部署编排创建单元获取所述部署编排,根据所述应用模板通过所述应用部署编排生成部署模板,所述部署模板表示所述应用模板在被调用时的工作流;
模板部署单元,用于从所述部署模板生成单元获取所述部署模板,通过所述部署模板进行软件部署,所述软件部署包括生成所述需要安装的软件对应的软件安装实例,所述软件安装实例为描述所述需要安装的软件对应的软件安装过程的文件,所述安装实例包括部署实例和应用实例,所述部署实例为描述软件部署方式的文件,所述应用实例为描述所述软件在部署时所用的资源的文件;
发送单元,用于在所述部署单元进行所述软件部署后,将所述软件安装实例中的应用实例所描述的资源发送至所述虚拟机资源的列表中的虚拟机,所述资源包括所述软件类型对应的所述应用模板中的软件包和配置包,以便该虚拟机通过执行所述软件包与所述配置包中的安装脚本按照所述软件安装实例中的部署实例进行软件安装。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,每个所述软件包与所述组件具有独立的编号,所述配置包具有独立的编号,所述软件包的编号与所述配置包的编号对应,所述配置包包括操作系统与安装脚本以及所述操作系统的编号与所述安装脚本的编号;
所述工作流包括:
根据所述组件的编号确定所述软件包的编号,而后根据所述软件包的编号确定与该软件包的编号对应的所述部署模型;
根据所述软件包编号确定与该软件包编号对应的所述资源模型,将所述应用模型、所述部署模型和所述资源模型按照应用部署编排生成所述软件安装实例,所述应用部署编排描述所述应用模型、部署模型和资源模型被调用的过程。
结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
接口创建单元,用于为用户创建接口,并为所述接口设置参数,调用所述接口实现与所述接口对应的功能。
结合第三方面的第一种可能的实现方式,在第四种可能的实现方式中,所述接口创建单元具体用于:
创建所述执行部署接口,为所述执行部署接口设置部署参数,所述部署参数包括所述部署模板对应的用户名和所述部署模板生成的所述软件安装实例的编号;
定义所述部署参数的属性,所述属性包括所述部署参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述接口创建单元具体用于:
调用所述执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个所述软件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二任务的执行顺序之前,则所述第一任务执行完成后所述第二任务才被执行,在执行顺序上相邻的任务为互相关联的任务。
结合第三方面的第三种可能实现方式,在第六种可能的实现方式中,所述接口创建单元还用于:
创建所述应用模板设计接口,为所述应用模板设计接口设置应用模板设计参数,所述应用模板设计参数包括所述应用模板对应的用户名、所述应用模板的名称、所述应用模板的版本、所述应用模板的描述信息以及所述应用模板的内容;
定义所述应用模板设计参数的属性,所述属性包括所述应用模板设计参数的类型、取值范围以及表示该参数是否为必须的标识;
创建所述模型上线接口,为所述模型上线接口设置上线参数,所述上线参数包括所述应用模板对应的用户名、所述应用模板的名称以及所述应用模板的版本;
定义所述上线参数的属性,所述属性包括所述上线参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与所述接口对应的功能。
本发明实施例提供一种云计算环境下的软件部署方法和装置,首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,,通过将应用模板的实例化来驱动部署框架实现自动云化部署,能够使得云计算环境下的软件部署效率更高。
附图说明
为了更清楚地说明本发明的实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的云计算环境下的软件部署方法的流程示意图一;
图2为本发明的实施例提供的云计算环境下的软件部署方法的流程示意图二;
图3为本发明的实施例提供的云计算环境下的软件部署方法的流程示意图三;
图4为本发明的实施例提供的应用模板的结构示意图;
图5为本发明的实施例提供的应用模型的结构示意图;
图6为本发明的实施例提供的部署模型的结构示意图;
图7为本发明的实施例提供的资源模型的结构示意图;
图8为本发明的实施例提供的软件部署装置的结构示意图一;
图9为本发明的实施例提供的软件部署装置的结构示意图二;
图10为本发明的实施例提供的软件部署装置的结构示意图三;
图11为本发明的实施例提供的云计算服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
本发明实施例提供一种云计算下的快速应用打包和部署实现方法,通过设置应用模板,由应用模板导出应用模型、资源模型和部署模型,从而实现应用的快速打包和云环境下的一键部署。应用模型定义应用软件包和软件安装控制方法;资源模型定义软件依赖的云化资源;部署模型定义应用模型与资源模型的部署依赖关系,通过将应用模板的实例化来驱动部署框架实现自动云化部署。
本发明的实施例提供云计算环境下的软件部署方法和装置,如图1所示,该方法包括:
S101、在云计算服务器中创建应用模板,应用模板包括应用模型、部署模型和资源模型。
S102、创建应用模型,在应用模型中生成至少一个组件,组件包括软件包和配置包。
S103、创建部署模型,在部署模型中生成该部署模型对应的资源的部署类型,资源包括云计算环境中的虚拟机资源、存储资源和网络资源,部署类型包括虚拟机资源的组网方式、存储资源的部署方式和网络资源的部署方式。
S104、创建资源模型,在资源模型中生成软件包对应的资源的列表,列表包括虚拟机资源的列表、存储资源的列表和网络资源的列表。
S105、创建应用部署编排,应用部署编排表示通过应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照应用部署编排进行软件部署,部署任务包括虚拟机资源、存储资源与网络资源的调用操作和脚本的执行操作;
S106、根据创建的应用模板进行软件部署。
本发明的实施例提供云计算环境下的软件部署方法,首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,通过将应用模板的实例化来驱动部署框架实现自动云化部署,能够使得云计算环境下的软件部署效率更高。
本发明的实施例提供云计算环境下的软件部署方法,如图2所示,该方法具体可以包括:
S201、云计算服务器获取软件安装申请消息,申请消息包括需要安装的软件的软件类型。
S202、云计算服务器根据软件类型确定与软件类型对应的应用模板。
S203、根据部署模型通过应用部署编排生成部署模板,部署模板表示应用模板在被调用时的工作流。
S204、通过部署模板进行软件部署,软件部署包括生成需要安装的软件对应的软件安装实例,软件安装实例为描述需要安装的软件对应的软件安装过程的文件,安装实例包括部署实例和应用实例,部署实例为描述软件部署方式的文件,应用实例为描述软件在部署时所用的资源的文件。
S205、云计算服务器将软件类型对应的应用模板中的软件包和配置包发送至虚拟机资源的列表中的虚拟机,以便该虚拟机根据软件包与配置包中的安装脚本进行软件安装。
本发明的实施例提供云计算环境下的软件部署方法,首先获取软件包和与软件包对应的软件安装脚本,根据该软件包通过运行软件安装脚本安装与软件包对应的软件,能够使得云计算环境下的软件安装效率更高。
下面为本发明实施例提供的云计算环境下的软件部署方法提供一种更为详细的实施例。
本发明的实施例提供云计算环境下的软件部署方法,如图3所示,该方法包括:
301、创建应用模板,将应用软件进行打包。
具体的,可通过以下方法实现:
创建应用模板设计接口,为应用模板设计接口设置应用模板设计参数,应用模板设计参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本、应用模板的描述信息以及应用模板的内容;
定义应用模板设计参数的属性,属性包括应用模板设计参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该接口格式如下:
该模板的格式如下:
其中的参数描述如表1所示:
变量 类型 取值范围 重要性 描述
uid Stirng 64 Bytes M 设计模板归属的用户名
name Stirng 128Bytes M 设计模板名称
version Stirng 128Bytes M 设计模板版本
description Stirng 1024Bytes O 设计模板描述信息
content Stirng M 设计模板内容
表1
其中字母M表示该变量为必须的变量,字母O表示该变量为非必须的变量。
该接口的响应如下:
其中的参数描述如表2所示:
表2
应用模板如图4所示,应用模板40包括应用模型401、部署模型402和资源模型403,通过应用模板管理404对上述三个模板进行定义;
在创建应用模板时,创建应用模型,如图5所示,在应用模型40中生成至少一个组件401,组件401包括软件包4011和配置包4012,每个软件包4011与组件401具有独立的编号,配置包4012具有独立的编号,软件包4011的编号与配置包4012的编号对应,配置包4012包括操作系统与安装脚本和其他控制脚本以及操作系统的编号与安装脚本的编号;
在创建应用模板时,创建部署模型,如图6所示,在部署模型60中生成该部署模型60对应的资源的部署类型,不同的软件包601对应不同的资源,资源包括云计算环境中的虚拟机资源602、存储资源603和网络资源604,部署类型包括虚拟机资源的组网方式、存储资源的部署方式和网络资源的部署方式;
在创建应用模板时,创建资源模型,如图7所示,在资源模型70中生成软件包701对应的不同云平台的资源列表,列表包括虚拟机资源列表702、存储资源列表703和网络资源列表704;
在创建应用模板时,创建应用部署编排,应用部署编排表示通过应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照应用部署编排进行软件部署,部署任务包括虚拟机资源、存储资源与网络资源的调用操作和脚本的执行操作。
在创建上述应用模板后,创建应用模板列表查询接口,为应用模板列表查询接口设置列表查询参数,列表查询参数包括部署模板对应的用户名、应用模板的名称和编号、反馈的列表数量、应用模板的版本以及查询偏移量;
定义列表查询参数的属性,属性包括列表查询参数的类型、取值范围以及表示该参数是否为必须的标识。
该列表查询接口如下:
Request Syntax
GET/c3/alm/<uid>/templates[?name=<name>&version=<version>&id=<id>&offset=OFFSET&limit=LIMIT]HTTP/1.1
该接口的参数描述如表3所示:
表3
该接口的响应如下:
该响应中的参数描述如表4所示:
表4
在创建应用模板之后,通过应用模板列表查询接口查询用户所有已创建的应用模板组成的列表。
在创建上述应用模板后,还可以创建应用模板查询接口,为应用模板查询接口设置查询参数,查询参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本以及应用模板的状态;
定义查询参数的属性,属性包括查询参数的类型、取值范围以及表示该参数是否为必须的标识。
应用模板的查询接口如下:
Request Syntax
GET/c3/alm/<uid>/template/<name>/version/<version>HTTP/1.1
该接口的参数描述如下表5所示:
表5
该查询接口的响应如下:
该响应中的参数描述如下表6所示:
表6
在创建应用模板之后,通过应用模板查询接口查询用户所有已创建的应用模板的内容。
若需要删除应用模板,还可以为用户创建删除应用模板接口,为删除应用模板接口设置删除参数,删除参数包括部署模板对应的用户名、应用模板的名称和应用模板的版本;
定义删除参数的属性,属性包括删除参数的类型、取值范围以及表示该参数是否为必须的标识。
该删除应用模板接口如下:
Request Syntax
DELETE/c3/alm/<uid>/template/<name>/version/<version>HTTP/1.1
该接口的参数描述如下表7所示:
表7
该接口的响应如下:
该响应中的参数描述如下表8所示:
表8
通过删除应用模板接口删除应用模板。
创建模型上线接口,为模型上线接口设置上线参数,上线参数包括应用模板对应的用户名、应用模板的名称以及应用模板的版本;
定义上线参数的属性,属性包括上线参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,创建上线接口如下:
Request Syntax
POST/c3/alm/<uid>/template/<name>/version/<version>publish HTTP/1.1
其中的参数说明如下表9所示:
表9
该上线接口的响应为:
其中的参数说明如下表10所示:
表10
通过上线应用模板接口将创建好的模板进行上线。
若在该模板上线之后需要对其进行更新,则可以为用户创建更新应用模板接口,为更新应用模板接口设置更新参数,更新参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本、应用模板的内容、应用模板的描述信息、新的应用模板的名称、新的应用模板的版本以及新的应用模板的内容;
定义更新参数的属性,属性包括更新参数的类型、取值范围以及表示该参数是否为必须的标识。
该更新应用模板接口如下:
该接口的参数描述如下表11所示:
变量 类型 取值范围 是否为必须 描述
uid Stirng 64 Bytes M 设计模板归属的用户名
name Stirng 128Bytes M 设计模板名称
version String 128 Bytes M 设计模板版本号
name Stirng 128Bytes M 新设计模板的名字
version Stirng 128Bytes M 新设计模板版本
description Stirng 1024Bytes M 设计模板描述信息
content Stirng O 设计模板内容
表11
该接口的响应如下:
该响应中的参数描述如下表12所示:
表12
通过更新应用模板接口更新应用模板。
302、将软件部署在虚拟机中。
具体的,可通过以下方法实现:
云计算服务器获取软件安装申请消息,申请消息包括需要安装的软件的软件类型;
云计算服务器根据软件类型确定与软件类型对应的应用模板;
根据应用模板通过应用部署编排生成部署模板,部署模板表示应用模板在被调用时的工作流;
通过该部署模板进行软件部署,软件部署包括生成需要安装的软件对应的软件安装实例,软件安装实例为描述需要安装的软件对应的软件安装过程的文件;
云计算服务器将软件类型对应的应用模板中的软件包和配置包发送至虚拟机资源的列表中的虚拟机,以便该虚拟机根据软件包与配置包中的安装脚本进行软件安装。
其中该工作流为:根据组件的编号确定软件包的编号,而后根据软件包的编号确定与该软件包的编号对应的部署模型;
根据软件包编号确定与该软件包编号对应的资源模型,将应用模型、部署模型和资源模型按照应用部署编排生成软件安装实例,应用部署编排描述应用模型、部署模型和资源模型被调用的过程。
示例性的,可为用户创建执行部署接口,为执行部署接口设置部署参数,部署参数包括部署模板对应的用户名和部署模板生成的软件安装实例的编号;
定义部署参数的属性,属性包括部署参数的类型、取值范围以及表示该参数是否为必须的标识。
该部署接口如下:
该部署模板的格式如下:
其中的参数描述如下表13所示:
表13
该接口的响应如下:
该响应中的参数说明如下表14所示:
表14
调用执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个软件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二任务的执行顺序之前,则第一任务执行完成后第二任务才被执行,在执行顺序上相邻的任务为互相关联的任务。
在进行软件部署之前,可以对部署模板进行检查分析,可以为用户创建分析检查接口,为分析检查接口设置检查参数,检查参数包括部署模板对应的用户名、部署模板的名称、检查完成后生成的软件安装实例的编号、部署模板的状态、软件安装实例的个数、检查完成所需的时间、检查失败后生成的错误报告列表、导致检查失败的部署模板的节点的类型、导致检查失败的部署模板的节点的名称、错误报告对应的编号、检查失败的提示信息以及修改建议信息;
定义检查参数的属性,属性包括检查参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,为用户创建分析检查接口,该接口如下:
Request Syntax
POST/c3/alm/<uid>/deployment/name/<name>/parse HTTP/1.1
该接口的参数描述如下表15所示:
表15
该接口的响应如下:
该响应中的参数描述如下表16:
表16
需要说明的是当前实现只考虑一个部署模板生成一份实例。
在部署模板创建之后,还可以查询部署模板的具体内容,可以通过创建部署模板查询接口,为部署模板查询接口设置部署模板查询参数,部署模板查询参数包括部署模板对应的用户名、部署模板的名称、部署模板的版本、部署模板的描述信息、部署模板的内容、部署模板的创建时间、部署模板的状态以及部署模板对应的应用模板和部署模板生成的软件安装实例的编号;
定义部署模板查询参数的属性,属性包括部署模板查询参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该部署模板查询接口如下:
Request Syntax
GET/c3/alm/<uid>/deployment/name/<name>HTTP/1.1
GET/c3/alm/<uid>/deployment?name=<name>HTTP/1.1
GET/c3/alm/<uid>/deployment/id/<id>HTTP/1.1
GET/c3/alm/<uid>/deployment?id=<id>HTTP/1.1
该接口的参数描述如下表17:
表17
该接口的响应如下:
该响应中的参数描述如下表18所示:
表18
在部署模板创建后,还可以查询部署模板的列表,可以为用户创建部署模板列表查询接口,为部署模板列表查询接口设置部署模板列表查询参数,部署模板列表查询参数包括部署模板对应的用户名、部署模板的名称、查询偏移量、查询的列表数目的最大值、部署模板的描述信息、部署模板的状态以及部署模板对应的应用模板和部署模板生成的软件安装实例的编号;
定义部署模板列表查询参数的属性,属性包括部署模板列表查询参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该部署模板列表查询接口如下:
Request Syntax
GET/c3/alm/<uid>/deployments[?offset=OFFSET&limit=LIMIT]HTTP/1.1
该接口的参数描述如下表19所示:
表19
该接口的响应如下:
该响应中的参数描述如下表20所示:
表20
在部署模板创建后,还可以更新部署模板,可以为用户创建部署模板更新接口,为部署模板更新接口设置部署模板更新参数,部署模板更新参数包括部署模板对应的用户名、应用模板的名称、部署模板的版本、部署模板的内容、部署模板的描述信息、新的部署模板的名称、新的部署模板的版本以及新的部署模板的内容;
定义部署模板更新参数的属性,属性包括部署模板更新参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该部署模板更新接口如下:
Request Syntax
状态为DEPLOY_PAUSE或DEPLOY_ERROR时更新模板文件:
PUT/c3/alm/<uid>/deployment/id/<id>HTTP/1.1
状态为INIT或READY时更新模板文件:
该接口的参数说明如下表21所示:
表21
该接口的响应为:
该响应中的参数说明如下表22所示:
表22
需要说明的是,可以在部署模板未上线部署之前,状态为INIT或READY时,更新部署模板文件中部分参数,或
在部署模板上线部署中断了,状态为DEPLOY_PAUSE或DEPLOY_ERROR时,更新部署模板文件中部分参数。
并且该更新过程可以是更新部署模板是全文件更新都提交,不支持部分修改片断提交,且可以是更新部署模板只能修改资源或组件参数,不能再修改部署模板中的应用设计拓扑,如增加或删除资源,增加或删除组件。修改部署组件的依赖关系,调整组件与资源的部署关系;
其中当更新部署模板只能修改资源或组件参数,不能再修改部署模板中的应用设计拓扑时,更新部署模板文件参数,对已经部署的资源或组件参数无效。只对未部署的资源或组件有效。
若需要删除部署模板,则可以为用户创建部署模板删除接口,为部署模板删除接口设置部署模板删除参数,部署模板删除参数包括部署模板对应的用户名和部署模板的名称;
定义部署模板删除参数的属性,属性包括部署模板删除参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该删除部署模板接口如下:
Request Syntax
DELETE/c3/alm/<uid>/deployment/name/<name>HTTP/1.1
该接口参数描述如下表23所示:
表23
该接口的响应如下:
该响应中的参数描述如下表24所示:
表24
在部署模板进行部署之前,还可以对部署模板进行部署之前的分析检查,可以为用户创建分析检查接口,为分析检查接口设置检查参数,检查参数包括部署模板对应的用户名、部署模板的名称、检查完成后生成的软件安装实例的编号、部署模板的状态、软件安装实例的个数、检查完成所需的时间、检查失败后生成的错误报告列表、导致检查失败的部署模板的节点的类型、导致检查失败的部署模板的节点的名称、错误报告对应的编号、检查失败的提示信息以及修改建议信息;
定义检查参数的属性,属性包括检查参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该分析检查接口如下:
Request Syntax
POST/c3/alm/<uid>/deployment/name/<name>/parse HTTP/1.1
该接口的参数描述如下表25所示:
表25
该接口的响应为:
该响应中的参数描述如下表26所示:
表26
需要说明的是当前实现只考虑一个部署模板生成一份实例。
在对部署模板进行分析检查后,可以对部署模板进行执行部署,可以为用户创建执行部署接口,为执行部署接口设置部署参数,部署参数包括部署模板对应的用户名和部署模板生成的软件安装实例的编号;
定义部署参数的属性,属性包括部署参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该执行部署接口如下:
Request Syntax
POST/c3/alm/<uid>/deployment/id/<id>/execute HTTP/1.1
该接口的参数描述如下表27所示:
表27
该接口的响应如下:
该响应中的参数描述如下表28所示:
表28
其中,一个部署模板会按资源与应用组件生成多个任务,每一个资源与应用实例对应一个任务。任务与任务之间存在依赖,即任务与任务之间具有执行的先后顺序,只有依赖的任务完成,才能开始依赖于完成的任务的下一个任务。
在部署模板执行部署的过程中还可以暂停该模板的部署过程,可以为用户创建暂停部署接口,为暂停部署接口设置暂停部署参数,暂停部署参数包括部署模板对应的用户名、部署模板当前的状态和部署模板生成的软件安装实例的编号;
定义暂停部署参数的属性,属性包括暂停部署参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该暂停部署接口如下:
Request Syntax
POST/c3/alm/<uid>/deployment/id/<id>/pause HTTP/1.1
该接口的参数描述如下表29所示:
表29
该接口的响应如下:
该响应中的参数描述如下表30所示:
表30
需要说明的是,当部署模板在上线部署运行中,可以调用此接口暂停部署,对于已执行的部署任务继承完成,未开始的任务暂停处理,状态迁移到DEPLOY_PAUSE。
当部署失败,修改参数再提交模板,或手工中断部署之后,可以进行继续部署,完成未完成的任务,可以为用户创建继续部署接口,为继续部署接口设置继续部署参数,继续部署参数包括部署模板对应的用户名、部署模板当前的状态和部署模板生成的软件安装实例的编号;
定义继续部署参数的属性,属性包括继续部署参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该继续部署接口如下:
Request Syntax
POST/c3/alm/<uid>/deployment/<id>/resume HTTP/1.1
该接口的参数描述如下表31所示:
变量 类型 取值范围 是否为必须 描述
uid Stirng 64 Bytes M 部署模板归属的用户名
id string 128 Bytes M 部署模板实例ID
表31
该接口的响应如下:
该响应中的参数描述如下表32所示:
表32
若不需要部署模板,则还可以将模板进行卸载,可以为用户创建实例卸载接口,为实例卸载接口设置卸载参数,卸载参数包括部署模板对应的用户名、部署模板的名称、部署模板当前的状态和部署模板生成的软件安装实例的编号;
定义卸载参数的属性,属性包括卸载参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该卸载接口如下:
Request Syntax
DELETE/c3/alm/<uid>/deployment/id/<id>HTTP/1.1
该接口的参数描述如下表33所示:
表33
该接口的响应如下:
该响应中的参数描述如下表34所示:
表34
需要说明的是只有部署模板的状态为DELOYED/DEPLOY_ERROR/DEPLOY_PAUSE时才能删除实例,删除成功之后状态为INIT。
当部署任务中的子任务被暂停、中断或未完成时,可以为用户创建继续子任务接口,已完成上述被暂停、中断或未完成的子任务,为继续子任务接口设置子任务参数,子任务参数包括部署模板对应的用户名、部署模板当前的状态和部署模板生成的软件安装实例的编号与子任务的编号;
定义子任务参数的属性,属性包括子任务参数的类型、取值范围以及表示该参数是否为必须的标识。
示例性的,该继续子任务接口如下:
Request Syntax
POST/c3/alm/<uid>/deployment/id/<id>/task/<tid>/resume HTTP/1.1
该接口参数说明如下表35所示:
表35
该接口的响应如下所示:
该响应中的参数描述如下表36所示:
表36
在部署模板进行上线或下线卸载时,可以通过查询子任务接口查询单个子任务的详情。
示例性的,该查询子任务接口如下:
Request Syntax
GET/c3/alm/<uid>/deployment/id/<id>/task/<tid>HTTP/1.1
该接口参数描述如下表37所示:
表37
该接口响应如下:
该响应中的参数描述如下表38所示:
表38
还可以针对上述部署模板进行伸缩部署,可以为用户提供伸缩部署接口,通过该伸缩部署接口用户可以对该部署模型进行伸缩操作。
示例性的,该伸缩部署接口如下:
该接口的参数描述如下表39所示:
表39
该接口的响应如下:
该响应中的参数描述如下表40所示:
表40
之后还可以通过调用伸缩结果查询接口查询伸缩操作的结果。
示例性的,该伸缩结果查询接口如下:
Request Syntax
GET/c3/alm/<uid>/deployment/id/<id>/scale/<operationId>HTTP/1.1该接口的参数描述如下表41所示:
表41
该接口的响应如下:
该响应中的参数描述如下表42所示:
表42
再由部署模板生成软件安装实例后,用户可以通过查询部署实例列表接口查询该实例的内容和该实例对应的资源组件的列表,该查询部署实例列表接口如下:
Request
Syntax
GET/c3/alm/<uid>/deployment/id/<id>/instances HTTP/1.1
该接口的参数描述如下表43所示:
表43
该接口的响应为:
该响应中的参数描述如下表44所示:
表44
若需要查询上述资源组件内的详细内容,该详细内容包括该资源组内各个资源的统计信息,则可以通过查询部署资源组统计信息接口查询资源组的统计信息,示例性的,该接口如下:
Request
Syntax
GET/c3/alm/<uid>/deployment/id/<id>/resoucegroups HTTP/1.1
该接口的参数描述如下表45所示:
表45
该接口的响应为:
该响应中的参数描述如下表45所示:
表46
若需要查询查询应用实例详情,则可以通过应用实例详情查询接口查询应用实例的详情,示例性的,该接口如下:
Request
Syntax
GET/c3/alm/<uid>/applications/<appId>HTTP/1.1
该接口的参数描述如下表47所示:
表47
该接口的响应如下:
该响应中的参数描述如下表48所示:
表48
303、虚拟机获取软件包和与软件包对应的软件安装脚本,根据该软件包通过运行软件安装脚本安装与软件包对应的软件。
本发明实施提供云计算环境下的软件部署方法,首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,并按照该部署编排进行软件部署,最后虚拟机接收该软件包和与软件包对应的软件安装脚本,根据该软件包通过运行软件安装脚本安装与软件包对应的软件,能够使得云计算环境下的软件安装效率更高。
本发明实施例提供一种云计算环境下的软件部署方法,首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,,通过将应用模板的实例化来驱动部署框架实现自动云化部署,能够使得云计算环境下的软件部署效率更高。
本发明实施例提供一种云计算环境下的软件部署装置01,如图8所示,该装置01包括:
应用模板创建单元011,用于在云计算服务器中创建应用模板,应用模板包括应用模型、部署模型和资源模型;
应用模型创建单元012,用于在应用模板创建单元创建应用模板后,创建应用模型,在应用模型中生成至少一个组件,组件包括软件包和配置包;
部署模型创建单元013,用于在应用模板创建单元创建应用模板后,创建部署模型,在部署模型中生成该部署模型对应的资源的部署类型,资源包括云计算环境中的虚拟机资源、存储资源和网络资源,部署类型包括虚拟机资源的组网方式、存储资源的部署方式和网络资源的部署方式;
资源模型创建单元014,用于在应用模板创建单元创建应用模板后,创建资源模型,在资源模型中生成软件包对应的资源的列表,列表包括虚拟机资源的列表、存储资源的列表和网络资源的列表;
部署编排创建单元015,用于创建应用部署编排,应用部署编排表示通过应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照应用部署编排进行软件部署,部署任务包括虚拟机资源、存储资源与网络资源的调用操作和脚本的执行操作;
软件部署单元016,用于根据创建的应用模板进行软件部署。
进一步的,如图9所示,该装置01还包括:
安装消息获取单元017,用于获取软件安装申请消息,申请消息包括需要安装的软件的软件类型;
应用模板确定单元018,用于从安装申请消息获取单元获取软件类型,根据软件类型确定与软件类型对应的应用模板;
部署模板生成单元019,用于从部署编排创建单元获取部署编排,根据应用模板通过应用部署编排生成部署模板,部署模板表示应用模板在被调用时的工作流;
模板部署单元020,用于从部署模板生成单元获取部署模板,通过部署模板进行软件部署,软件部署包括生成需要安装的软件对应的软件安装实例,软件安装实例为描述需要安装的软件对应的软件安装过程的文件,安装实例包括部署实例和应用实例,部署实例为描述软件部署方式的文件,应用实例为描述软件在部署时所用的资源的文件;
发送单元021,用于在部署单元进行软件部署后,将软件安装实例中的应用实例所描述的资源发送至虚拟机资源的列表中的虚拟机,资源包括软件类型对应的应用模板中的软件包和配置包,以便该虚拟机通过执行软件包与配置包中的安装脚本按照软件安装实例中的部署实例进行软件安装。
优选的,每个软件包与组件具有独立的编号,配置包具有独立的编号,软件包的编号与配置包的编号对应,配置包包括操作系统与安装脚本以及操作系统的编号与安装脚本的编号;
工作流包括:
根据组件的编号确定软件包的编号,而后根据软件包的编号确定与该软件包的编号对应的部署模型;
根据软件包编号确定与该软件包编号对应的资源模型,将应用模型、部署模型和资源模型按照应用部署编排生成软件安装实例,应用部署编排描述应用模型、部署模型和资源模型被调用的过程。
进一步的,如图10所示,该装置01还包括:
接口创建单元022,用于为用户创建接口,并为接口设置参数,调用接口实现与接口对应的功能。
进一步的,接口创建单元具体用于:
创建执行部署接口,为执行部署接口设置部署参数,部署参数包括部署模板对应的用户名和部署模板生成的软件安装实例的编号;
定义部署参数的属性,属性包括部署参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
再进一步的,接口创建单元022具体用于:
调用执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个软件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二任务的执行顺序之前,则第一任务执行完成后第二任务才被执行,在执行顺序上相邻的任务为互相关联的任务。
更进一步的,接口创建单元022还用于:
创建应用模板设计接口,为应用模板设计接口设置应用模板设计参数,应用模板设计参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本、应用模板的描述信息以及应用模板的内容;
定义应用模板设计参数的属性,属性包括应用模板设计参数的类型、取值范围以及表示该参数是否为必须的标识;
创建模型上线接口,为模型上线接口设置上线参数,上线参数包括应用模板对应的用户名、应用模板的名称以及应用模板的版本;
定义上线参数的属性,属性包括上线参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
本发明的实施例提供一种软件部署装置,首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,,通过将应用模板的实例化来驱动部署框架实现自动云化部署,能够使得云计算环境下的软件部署效率更高。
本实施例也适用于上述各方法实施例,本实施例中设备的工作流程和工作原理参见上述各方法实施例中的描述,在此不再赘述。
本发明的实施例提供一种云计算环境下的云计算服务器03,如图11所示,该云计算服务器03包括至少一个接口031、存储器032,总线033以及处理器034,其中存储器032、处理器034通过总线033相连接,该存储器032用于存储指令,该处理器034用于读取该指令用于:
在云计算服务器中创建应用模板,应用模板包括应用模型、部署模型和资源模型;
创建应用模型,在应用模型中生成至少一个组件,组件包括软件包和配置包;
创建部署模型,在部署模型中生成该部署模型对应的资源的部署类型,资源包括云计算环境中的虚拟机资源、存储资源和网络资源,部署类型包括虚拟机资源的组网方式、存储资源的部署方式和网络资源的部署方式;
创建资源模型,在资源模型中生成软件包对应的资源的列表,列表包括虚拟机资源的列表、存储资源的列表和网络资源的列表;
创建应用部署编排,应用部署编排表示通过应用模型进行软件部署时的部署任务的流程,以便在云计算环境下按照应用部署编排进行软件部署,部署任务包括虚拟机资源、存储资源与网络资源的调用操作和脚本的执行操作;
根据创建的应用模板进行软件部署。
进一步的,处理器034读取该指令具体用于:
取软件安装申请消息,申请消息包括需要安装的软件的软件类型;
根据软件类型确定与软件类型对应的应用模板;
根据部署模型通过应用部署编排生成部署模板,部署模板表示应用模板在被调用时的工作流;
通过部署模板进行软件部署,软件部署包括生成需要安装的软件对应的软件安装实例,软件安装实例为描述需要安装的软件对应的软件安装过程的文件,安装实例包括部署实例和应用实例,部署实例为描述软件部署方式的文件,应用实例为描述软件在部署时所用的资源的文件;
云计算服务器将软件安装实例中的应用实例所描述的资源发送至虚拟机资源的列表中的虚拟机,资源包括软件类型对应的应用模板中的软件包和配置包,以便该虚拟机通过执行软件包与配置包中的安装脚本按照软件安装实例中的部署实例进行软件安装。
优选的,每个软件包与组件具有独立的编号,配置包具有独立的编号,软件包的编号与配置包的编号对应,配置包包括操作系统与安装脚本以及操作系统的编号与安装脚本的编号;
工作流包括:
根据组件的编号确定软件包的编号,而后根据软件包的编号确定与该软件包的编号对应的部署模型;
根据软件包编号确定与该软件包编号对应的资源模型,将应用模型、部署模型和资源模型按照应用部署编排生成软件安装实例,应用部署编排描述应用模型、部署模型和资源模型被调用的过程。
再进一步的,处理器034读取该指令还用于:
为用户创建接口,并为接口设置参数,调用接口实现与接口对应的功能。
再进一步的,处理器034读取该指令具体用于:
创建执行部署接口,为执行部署接口设置部署参数,部署参数包括部署模板对应的用户名和部署模板生成的软件安装实例的编号;
定义部署参数的属性,属性包括部署参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
再进一步的,处理器034读取该指令具体用于:
调用执行部署接口进行软件部署,每个部署模板生成至少一个任务,每个软件安装实例对应一个任务,每个任务的执行有先后顺序,若第一任务的执行顺序排在第二任务的执行顺序之前,则第一任务执行完成后第二任务才被执行,在执行顺序上相邻的任务为互相关联的任务。
再进一步的,处理器034读取该指令具体用于:
创建应用模板设计接口,为应用模板设计接口设置应用模板设计参数,应用模板设计参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本、应用模板的描述信息以及应用模板的内容;
定义应用模板设计参数的属性,属性包括应用模板设计参数的类型、取值范围以及表示该参数是否为必须的标识;
创建模型上线接口,为模型上线接口设置上线参数,上线参数包括应用模板对应的用户名、应用模板的名称以及应用模板的版本;
定义上线参数的属性,属性包括上线参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
再进一步的,处理器034读取该指令具体用于:
通过应用模板设计接口创建应用模板;
通过模型上线接口将应用模板上线。
再进一步的,处理器034读取该指令具体用于:
创建应用模板列表查询接口,为应用模板列表查询接口设置列表查询参数,列表查询参数包括部署模板对应的用户名、应用模板的名称和编号、反馈的列表数量、应用模板的版本以及查询偏移量;
定义列表查询参数的属性,属性包括列表查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建应用模板查询接口,为应用模板查询接口设置查询参数,查询参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本以及应用模板的状态;
定义查询参数的属性,属性包括查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建删除应用模板接口,为删除应用模板接口设置删除参数,删除参数包括部署模板对应的用户名、应用模板的名称和应用模板的版本;
定义删除参数的属性,属性包括删除参数的类型、取值范围以及表示该参数是否为必须的标识;
创建更新应用模板接口,为更新应用模板接口设置更新参数,更新参数包括应用模板对应的用户名、应用模板的名称、应用模板的版本、应用模板的内容、应用模板的描述信息、新的应用模板的名称、新的应用模板的版本以及新的应用模板的内容;
定义更新参数的属性,属性包括更新参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
再进一步的,处理器034读取该指令具体用于:
在创建应用模板之后,通过应用模板列表查询接口查询用户所有已创建的应用模板组成的列表;
在创建应用模板之后,通过应用模板查询接口查询用户所有已创建的应用模板的内容;
当需要删除应用模板,则通过删除应用模板接口删除应用模板;
当需要更新应用模板,则通过更新应用模板接口更新应用模板。
再进一步的,处理器034读取该指令具体用于:
创建分析检查接口,为分析检查接口设置检查参数,检查参数包括部署模板对应的用户名、部署模板的名称、检查完成后生成的软件安装实例的编号、部署模板的状态、软件安装实例的个数、检查完成所需的时间、检查失败后生成的错误报告列表、导致检查失败的部署模板的节点的类型、导致检查失败的部署模板的节点的名称、错误报告对应的编号、检查失败的提示信息以及修改建议信息;
定义检查参数的属性,属性包括检查参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
再进一步的,处理器034读取该指令具体用于:
通过分析检查接口对部署模板进行检查,检查该部署模板所需的软件包、配置包、以及虚拟机资源、存储资源和网络资源是否完整。
再进一步的,处理器034读取该指令具体用于:
创建部署模板查询接口,为部署模板查询接口设置部署模板查询参数,部署模板查询参数包括部署模板对应的用户名、部署模板的名称、部署模板的版本、部署模板的描述信息、部署模板的内容、部署模板的创建时间、部署模板的状态以及部署模板对应的应用模板和部署模板生成的软件安装实例的编号;
定义部署模板查询参数的属性,属性包括部署模板查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建部署模板列表查询接口,为部署模板列表查询接口设置部署模板列表查询参数,部署模板列表查询参数包括部署模板对应的用户名、部署模板的名称、查询偏移量、查询的列表数目的最大值、部署模板的描述信息、部署模板的状态以及部署模板对应的应用模板和部署模板生成的软件安装实例的编号;
定义部署模板列表查询参数的属性,属性包括部署模板列表查询参数的类型、取值范围以及表示该参数是否为必须的标识;
创建部署模板更新接口,为部署模板更新接口设置部署模板更新参数,部署模板更新参数包括部署模板对应的用户名、应用模板的名称、部署模板的版本、部署模板的内容、部署模板的描述信息、新的部署模板的名称、新的部署模板的版本以及新的部署模板的内容;
定义部署模板更新参数的属性,属性包括部署模板更新参数的类型、取值范围以及表示该参数是否为必须的标识;
创建部署模板删除接口,为部署模板删除接口设置部署模板删除参数,部署模板删除参数包括部署模板对应的用户名和部署模板的名称;
定义部署模板删除参数的属性,属性包括部署模板删除参数的类型、取值范围以及表示该参数是否为必须的标识;
调用创建的接口实现与接口对应的功能。
再进一步的,处理器034读取该指令具体用于:
通过部署模板查询接口查询部署模板的内容;
通过部署模板列表查询接口查询部署模板组成的列表;
通过部署模板更新接口更新部署模板;
通过部署模板删除接口删除部署模板。
再进一步的,处理器034读取该指令具体用于:
创建暂停部署接口,为暂停部署接口设置暂停部署参数,暂停部署参数包括部署模板对应的用户名、部署模板当前的状态和部署模板生成的软件安装实例的编号;
定义暂停部署参数的属性,属性包括暂停部署参数的类型、取值范围以及表示该参数是否为必须的标识;
创建继续部署接口,为继续部署接口设置继续部署参数,继续部署参数包括部署模板对应的用户名、部署模板当前的状态和部署模板生成的软件安装实例的编号;
定义继续部署参数的属性,属性包括继续部署参数的类型、取值范围以及表示该参数是否为必须的标识;
创建实例卸载接口,为实例卸载接口设置卸载参数,卸载参数包括部署模板对应的用户名、部署模板的名称、部署模板当前的状态和部署模板生成的软件安装实例的编号;
定义卸载参数的属性,属性包括卸载参数的类型、取值范围以及表示该参数是否为必须的标识。
再进一步的,处理器034读取该指令具体用于:
通过暂停部署接口暂停软件部署;
通过继续部署接口继续执行被暂停的软件部署过程;
通过实例卸载接口删除指定的部署模型生成的软件安装实例。
本实施例也适用于上述各方法实施例,本实施例中设备的工作流程和工作原理参见上述各方法实施例中的描述,在此不再赘述。
本发明的实施例提供一种云计算服务器,首先创建应用模板即对软件进行打包,而后根据该应用模板进行部署编排,,通过将应用模板的实例化来驱动部署框架实现自动云化部署,能够使得云计算环境下的软件部署效率更高。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (26)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410509978.0A CN104317642B (zh) 2014-09-28 2014-09-28 云计算环境下的软件部署方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410509978.0A CN104317642B (zh) 2014-09-28 2014-09-28 云计算环境下的软件部署方法和装置

Publications (2)

Publication Number Publication Date
CN104317642A CN104317642A (zh) 2015-01-28
CN104317642B true CN104317642B (zh) 2017-12-29

Family

ID=52372877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410509978.0A Active CN104317642B (zh) 2014-09-28 2014-09-28 云计算环境下的软件部署方法和装置

Country Status (1)

Country Link
CN (1) CN104317642B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI813962B (zh) * 2021-03-05 2023-09-01 中華電信股份有限公司 企業雲網整合監控之建置與演進系統、方法及電腦可讀媒介

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699508B (zh) * 2015-03-25 2017-08-22 南京大学 云计算平台中快速部署和更新虚拟环境系统及其方法
CN105591792B (zh) * 2015-07-06 2019-03-15 新华三技术有限公司 一种服务模板的推荐方法和装置
CN106469068B (zh) * 2015-08-14 2020-11-03 中国移动通信集团安徽有限公司 应用程序的部署方法及系统
CN105187250B (zh) * 2015-09-25 2018-11-06 浪潮(北京)电子信息产业有限公司 一种基于组件模板部署节点的方法及系统
CN105187252A (zh) * 2015-09-28 2015-12-23 浪潮(北京)电子信息产业有限公司 一种批量部署定制化系统的方法及系统
CN105160954A (zh) * 2015-09-28 2015-12-16 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种云计算实验教学系统构建方法及系统
CN106559239A (zh) * 2015-09-29 2017-04-05 镇江雅迅软件有限责任公司 一种云平台部署办法
CN106610853A (zh) * 2015-10-26 2017-05-03 阿里巴巴集团控股有限公司 一种应用部署方法和装置
CN105278991B (zh) * 2015-10-26 2018-08-24 中国科学院软件研究所 一种云应用部署配置模型的构造方法
CN105487859B (zh) * 2015-11-25 2018-11-13 北京工业大学 一种基于模板的大数据组件web部署方法
US9798583B2 (en) * 2015-12-04 2017-10-24 Microsoft Technology Licensing, Llc Onboarding of a service based on automated supervision of task completion
CN105787117A (zh) * 2016-03-28 2016-07-20 广东三盟信息科技有限公司 一种云计算环境下大数据节点的自动部署方法及其装置
CN107273178B (zh) * 2016-04-06 2021-07-27 阿里巴巴集团控股有限公司 配置虚拟化系统的方法和装置
CN106020719A (zh) * 2016-05-13 2016-10-12 广东电网有限责任公司信息中心 一种分布式存储系统的初始参数配置方法
CN107391092B (zh) * 2016-05-16 2021-01-26 北京京东振世信息技术有限公司 自动部署关联软件的方法和系统
CN106095479A (zh) * 2016-05-31 2016-11-09 北京中亦安图科技股份有限公司 一种企业应用发布方法、装置及系统
CN106055388A (zh) * 2016-06-25 2016-10-26 国云科技股份有限公司 一种云平台应用自动部署框架
CN106528268A (zh) * 2016-11-07 2017-03-22 国云科技股份有限公司 一种云平台windows系统的软件应用包制作方法
CN108170483A (zh) * 2016-12-13 2018-06-15 上海仪电(集团)有限公司中央研究院 基于Unikernel的智慧城市应用删除方法及装置
CN108574702A (zh) * 2017-03-08 2018-09-25 中兴通讯股份有限公司 一种云应用部署方法和系统
CN107145380B (zh) * 2017-03-27 2020-06-16 华为技术有限公司 虚拟资源编排方法及装置
CN108073426B (zh) * 2017-03-29 2021-07-06 北京青云科技股份有限公司 一种基于云计算的软件管理方法、装置及系统
CN107015837A (zh) * 2017-05-17 2017-08-04 郑州云海信息技术有限公司 一种软件包自动化安装与配置方法及装置
CN107426294A (zh) * 2017-06-08 2017-12-01 郑州云海信息技术有限公司 一种部署负载均衡设备的方法及装置
CN109117146A (zh) * 2017-06-22 2019-01-01 中兴通讯股份有限公司 云平台双机容灾系统的自动部署方法、装置、存储介质和计算机设备
CN108334366B (zh) * 2017-08-24 2021-09-10 北京寄云鼎城科技有限公司 一种在线软件交付方法、网购平台和交付系统
CN107656798A (zh) * 2017-09-30 2018-02-02 郑州云海信息技术有限公司 基于云计算的房产交易系统的建立方法和装置
CN107656814B (zh) * 2017-09-30 2021-10-01 郑州云海信息技术有限公司 一种中间件服务实现方法和装置
CN107766060A (zh) * 2017-10-31 2018-03-06 新华三云计算技术有限公司 应用配置部署方法及装置
CN110300007B (zh) * 2018-03-22 2022-03-29 中兴通讯股份有限公司 Vnfd多部署规格的部署方法、装置、网元设备、管理设备及存储介质
CN108595335B (zh) * 2018-05-07 2022-06-10 财付通支付科技有限公司 测试环境部署方法、部署装置及存储介质
CN109002351B (zh) * 2018-06-29 2020-05-05 国家超级计算天津中心 一种嵌套式工作流设置方法
CN108958937B (zh) * 2018-06-29 2020-05-05 国家超级计算天津中心 一种模板化计算环境配置方法
CN108961897A (zh) * 2018-07-04 2018-12-07 北京四航科技有限公司 一种虚拟学习系统及方法
CN110830759B (zh) * 2018-08-09 2021-09-07 华为技术有限公司 智能应用部署的方法、装置和系统
CN109298870A (zh) * 2018-08-24 2019-02-01 山东中创软件商用中间件股份有限公司 一种应用部署方法及相关装置
JP6954256B2 (ja) * 2018-11-02 2021-10-27 横河電機株式会社 エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
CN109828840A (zh) * 2018-12-29 2019-05-31 东软集团股份有限公司 资源编排方法、装置、存储介质及电子设备
CN110347422B (zh) * 2019-06-27 2021-03-09 华云数据控股集团有限公司 一种应用编排方法、装置及电子设备
US11057471B2 (en) 2019-09-24 2021-07-06 Xiamen Wangsu Co., Ltd. Edge application management method and system
CN110737442B (zh) * 2019-09-24 2021-06-22 厦门网宿有限公司 一种边缘应用管理方法及系统
CN110647318B (zh) * 2019-09-29 2020-08-04 星环信息科技(上海)有限公司 一种有状态应用的实例创建方法、装置、设备及介质
CN111857736B (zh) * 2020-07-28 2024-03-08 中国建设银行股份有限公司 云计算产品的生成方法、装置、设备及存储介质
CN113077534B (zh) * 2021-03-22 2023-11-28 上海哔哩哔哩科技有限公司 图片合成云平台及图片合成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236554A (zh) * 2011-07-18 2011-11-09 国家电网公司 在线应用软件的构建平台、系统和方法
CN103458002A (zh) * 2013-08-15 2013-12-18 中电长城网际系统应用有限公司 云系统的一键部署方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271974B2 (en) * 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US9319286B2 (en) * 2012-03-30 2016-04-19 Cognizant Business Services Limited Apparatus and methods for managing applications in multi-cloud environments

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236554A (zh) * 2011-07-18 2011-11-09 国家电网公司 在线应用软件的构建平台、系统和方法
CN103458002A (zh) * 2013-08-15 2013-12-18 中电长城网际系统应用有限公司 云系统的一键部署方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI813962B (zh) * 2021-03-05 2023-09-01 中華電信股份有限公司 企業雲網整合監控之建置與演進系統、方法及電腦可讀媒介

Also Published As

Publication number Publication date
CN104317642A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
CN104317642B (zh) 云计算环境下的软件部署方法和装置
CN109933522B (zh) 一种自动化用例的测试方法、测试系统及存储介质
US9152402B2 (en) Automated deployment and servicing of distributed applications
CN104253866B (zh) 虚拟网络功能网元的软件部署方法、系统及相关设备
CN104978258B (zh) 软件自动化测试方法及系统
Sandobalin et al. An infrastructure modelling tool for cloud provisioning
CN108243012B (zh) 在线计费系统ocs中计费应用处理系统、方法及装置
US20100070449A1 (en) Deployment pattern realization with models of computing environments
US9720656B2 (en) Method and apparatus for enabling agile development of services in cloud computing and traditional environments
CN105260203B (zh) 一种基于模型的Hadoop部署以及配置方法
CN106874189B (zh) 一种电网实时数据库系统的自动化测试系统的实现方法
CN105117346A (zh) 虚拟化平台的分布式系统自动化测试方法及系统
CN109063295A (zh) 基于cae模型的节点信息优化处理方法和装置
CN104391701A (zh) 一种能效评估软件开发方法
WO2016069420A2 (en) Preparing installations and updates for software systems
CN108141378A (zh) Vnfd中的休眠vdu
CN104331315A (zh) 一种任意层次json对象的解析与生成方法及系统
CN105354073B (zh) 一种基于安卓系统的单机应用网络化方法和系统
CN115860143A (zh) 算子模型生成方法、装置和设备
CN115344015A (zh) 卷烟生产系统生成方法、装置和存储介质
CN106293651A (zh) 一种通用接口的实现方法及装置
CN112306622B (zh) 一种vnf模板的构建方法及装置
CN107819598A (zh) 一种管理网络功能节点的方法及装置
CN110868330B (zh) 云平台可划分cpu资源的评估方法、装置及评估系统
Ahmed-Nacer et al. OCCI-compliant cloud configuration simulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant