CN105278991B - 一种云应用部署配置模型的构造方法 - Google Patents
一种云应用部署配置模型的构造方法 Download PDFInfo
- Publication number
- CN105278991B CN105278991B CN201510702329.7A CN201510702329A CN105278991B CN 105278991 B CN105278991 B CN 105278991B CN 201510702329 A CN201510702329 A CN 201510702329A CN 105278991 B CN105278991 B CN 105278991B
- Authority
- CN
- China
- Prior art keywords
- model
- software
- script
- deployment configuration
- type
- 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
Links
Abstract
本发明涉及一种应用部署配置模型的构造方法,包括以下步骤:定义软件部署模型,给定某个软件C的部署配置脚本,将脚本转换为模型M的模型实例;将软件C的模型实例信息Mc存储在软件模型信息数据库;通过访问数据库获得软件C对应的模型信息Mc,并将其解析和可视化展现,提供给用户作为软件C的部署配置任务模型元素。本发明实现运维管理工具的执行脚本到云应用部署配置模型的自动转换,衔接高层抽象描述与底层执行脚本,使系统管理员无需编写脚本代码,能够通过可视化建模的方法定义应用部署配置流程,提高应用的部署配置效率,降低对领域知识的要求。
Description
技术领域
本发明涉及一种应用部署配置模型的构造方法,尤其涉及一种面向云应用的部署配置模型的构造和生成,属于计算机软件技术领域。
背景技术
随着云计算技术的发展,越来越多的应用系统部署和运行在云平台上来对外提供服务。在云计算环境下,应用(服务)提供方通过一系列的远程操作以及自动化运维管理工具(如:puppet、chef、ansible等)进行运行环境的搭建和应用的部署与管理,造成应用的部署配置过程即极为繁琐复杂,并且对系统管理员的领域知识与技术背景有较高要求。基于模型的云应用部署配置能够提供可视化的、基于模型元素拖拽的部署配置任务创建环境,屏蔽了底层的任务执行编码和脚本细节,简化了云应用部署配置,能够大大提高效率。
在云应用部署配置的模型规范方面,OASIS(结构化信息标准促进组织)于2013年发布了一个关于IT服务的结构(Topology)和管理(Orchestration)的标准化文档TOSCA(Topology and Orchestration Specification for Cloud Applications)。TOSCA本质上是定义了一套云应用部署配置元模型,采用YAML或者XML格式描述云应用组件属性、组件关系以及组件的行为操作(包括安装、卸载等),创建应用部署拓扑和应用部署任务流程,简化云应用的生命周期管理。
在平台方面,PaaS平台Cloud Foundry和Cloudify能够支持云应用的部署配置。但是,Cloud Foundry更多地专注于应用的开发,部署在Cloud Foundry上的应用需要遵循一定的编程规范和其它规则,或者使用Cloud Foundry提供的服务。Cloudify能够定义应用的拓扑结构和部署配置流程,但是需要使用YAML语言对应用的结构和工作流进行定义,并通过命令行的方式执行部署配置操作,因此对领域知识要求较高。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种应用部署配置模型的构造方法,实现运维管理工具的执行脚本到云应用部署配置模型的自动转换,衔接高层抽象描述与底层执行脚本,使系统管理员无需编写脚本代码,能够通过可视化建模的方法定义应用部署配置流程,提高应用的部署配置效率,降低对领域知识的要求。
本发明的技术方案如图1所示,具体包括以下几个步骤:
1.首先,定义软件部署模型为M=<name,type,OP>,name表示当前软件名称,type为软件类型,OP为软件具有的部署配置操作集合。其中:
1)type∈T,T={t1,t2,...,tp}为本发明预定义的软件类型集合。基于应用的功能,本方法将某个软件或组件归类为数据库,应用服务器等类别。针对某一类型,又可细分为更多的子类型如PHP应用服务器,Java应用服务器等。
2)OP为软件具有的部署配置操作集合,如:安装、启动、卸载等,OP={op1,op2,...,opk},对于任意opi∈OP(1≤i≤k),opi=<ni,A,Si>,其中ni表示操作名称,A表示该操作所有参数的集合,A={a1,a2,...,al},l为集合A中元素的总个数,Si表示该操作对应的执行脚本文件。
2.给定某个软件C的部署配置脚本S,首先进行脚本解析,从中抽取出脚本中所定义的操作方法集合F以及相关参数集合P。F={f1,f2,...,fm},其中fi(1≤i≤m)为脚本中第i个方法(如启动、停止等),而P={p1,p2,...,pl}为抽取出的l个参数。
3.将脚本S转换为模型M的模型实例。针对从脚本S中抽取出的方法集合F和相关参数集合P,建立F和P与模型M中OP和A之间的映射关系集合MF。MF={mf1,mf2,...,mfm},对于mfi∈MF(1≤i≤m),mfi=<fi,opi,PA>,表示脚本中定义的操作fi与模型M中声明的操作opi之间的映射关系,PA表示方法fi涉及的参数集合P与模型M的参数集合A之间的映射,PA={<p1,a1>,<p2,a2>,...,<pl,al>}。由此,针对当前软件C得到其对应的模型信息Mc=<namec,typec,OPc>,其中namec和typec分别为当前软件名称和软件类型。
4.然后,本发明将软件C的模型实例信息Mc存储在软件模型信息数据库。
5.最后,本发明通过访问数据库获得软件C对应的模型信息Mc,并将其解析和可视化展现,提供给用户作为软件C的部署配置任务模型元素。
本发明与现有技术相比的积极效果为:采用本发明的方法,能够快速实现云应用中多种类型的系统软件的部署配置脚本到部署配置模型的转换和构造,从而支持基于模型的云应用部署配置任务可视化建模,使用户无需了解底层脚本的实现细节和使用方法,提高了应用在云环境下的部署效率,降低对使用者领域知识的要求。
附图说明
图1为本发明的实现框图;
图2 Tomcat部署模型可视化展示。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。
本发明实施例以当前广泛使用的自动化运维工具Puppet作为案例,以Puppet所使用的Web应用服务器Tomcat的部署配置脚本为对象来解释说明本发明方法。Puppet使用的部署配置脚本通常以Module(基础模块)的方式提供,其中包括了多个目录和类文件,共同定义了当前Module能够完成的部署配置任务集合。
以Tomcat的Puppet module为例,其中包括Tomcat的安装、启动、部署应用的脚本。对于该实施例,期望从Puppet module中已存在的脚本文件得到遵循统一规范的云应用部署配置模型,可以使用本发明的方法来求解。
具体的步骤如下:
1.采用本发明内容中的步骤2所描述的方法进行脚本解析,抽取可用方法和参数,得到可用的方法与参数集合。方法列表及其主要功能如表1所示。
表1 Tomcat脚本中的方法集合
编号 | 方法名称(f) | 方法类型 | 功能描述 |
1 | tomcat | class | 初始化Tomcat环境 |
2 | tomcat::instance | define | 安装Tomcat |
3 | tomcat::service | define | 管理Tomcat服务状态 |
4 | tomcat::war | define | 部署或删除应用 |
5 | tomcat::instance::uninstall | define | 卸载Tomcat |
6 | tomcat::config::server | define | 更改Tomcat配置 |
2.本发明方法步骤1描述的软件类型可以应用于所有软件,用户同时也可自增新的类型T,首先建立Tomcat所属的类型:应用服务器类(Application Server)。
3.采用本发明内容中的步骤1所描述的方法,建立Tomcat的部署模型,将Tomcat归类于应用服务器类,定义Tomcat上可用的操作以及对应的参数,操作包括:安装、卸载、启动、停止、部署应用、卸载应用。本发明实施例定义的Tomcat的模型可以表示为Mtomcat=<cloudeploy::default::component::package::tomcat,Application Server,OPtomcat>,与本发明步骤1中定义的模型M对应,其中OPtomcat表示tomcat模型中的操作集合。具体的Tomcat部署模型Mtomcat如表2所示。
表2 Tomcat部署模型
4.采用本发明内容的步骤3,建立从Tomcat Module抽取出的方法与Tomcat部署模型中可用操作之间的映射关系集合MF,如表3所示,表中每行的脚本方法(f)与模型操作(op)之间为一对一映射关系,每行的脚本方法参数(p)与模型参数(a)之间为一对一映射关系。
表3 Tomcat的映射关系集合
5.最后,基于发明方法步骤5,对存储在模型数据库中的Tomcat模型信息进行获取和解析,以可视化的方式展示出Tomcat对应的模型信息。如图2所示,用户可以在部署建模环境中使用Tomcat部署模型,同时可以看到tomcat模型中对应包括了安装、配置和部署应用等操作。用户可以自由的组合Tomcat软件的各个操作,来完成Tomcat的部署。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (2)
1.一种应用部署配置模型的构造方法,其特征在于:包括以下步骤:
步骤1,定义软件部署模型为M=<name,type,OP>,name表示当前软件名称,type为软件类型,OP为软件具有的部署配置操作集合,其中:
type∈T,T={t1,t2,...,tp}为预定义的软件类型集合;
OP={op1,op2,...,opk},对于任意opi∈OP(1≤i≤k),opi=<ni,A,Si>,其中ni表示操作名称,A表示该操作所有参数的集合,A={a1,a2,...,al},l为集合A中元素的总个数,Si表示该操作对应的执行脚本文件;
步骤2,给定某个软件C的部署配置脚本S,首先进行脚本解析,从中抽取出脚本中所定义的操作方法集合F以及相关参数集合P,F={f1,f2,...,fm},其中fi(1≤i≤m)为脚本中第i个方法,P={p1,p2,...,pl}为抽取出的l个参数;
步骤3,将脚本S转换为模型M的模型实例;
步骤4,将软件C的模型实例信息Mc存储在软件模型信息数据库;
步骤5,通过访问数据库获得软件C对应的模型信息Mc,并将Mc解析和可视化展现,提供给用户作为软件C的部署配置任务模型元素。
2.根据权利要求1所述的应用部署配置模型的构造方法,其特征在于:所述步骤3中,将脚本S转换为模型M的模型实例的实现为:针对从脚本S中抽取出的方法集合F和相关参数集合P,建立F和P与模型M中OP和A之间的映射关系集合MF,MF={mf1,mf2,...,mfm},对于mfi∈MF(1≤i≤m),mfi=<fi,opi,PA>,表示脚本中定义的操作fi与模型M中声明的操作opi之间的映射关系,PA表示方法fi涉及的参数集合P与模型M的参数集合A之间的映射,PA={<p1,a1>,<p2,a2>,...,<pl,al>};由此,针对当前软件C得到对应的模型信息Mc=<namec,typec,OPc>,其中namec和typec分别为当前软件名称和软件类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510702329.7A CN105278991B (zh) | 2015-10-26 | 2015-10-26 | 一种云应用部署配置模型的构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510702329.7A CN105278991B (zh) | 2015-10-26 | 2015-10-26 | 一种云应用部署配置模型的构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105278991A CN105278991A (zh) | 2016-01-27 |
CN105278991B true CN105278991B (zh) | 2018-08-24 |
Family
ID=55148046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510702329.7A Active CN105278991B (zh) | 2015-10-26 | 2015-10-26 | 一种云应用部署配置模型的构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105278991B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10503493B2 (en) * | 2017-05-16 | 2019-12-10 | Oracle International Corporation | Distributed versioning of applications using cloud-based systems |
CN109144522B (zh) * | 2017-06-19 | 2023-08-01 | 中兴通讯股份有限公司 | 应用部署方法、装置、设备和计算机可读存储介质 |
CN108334895B (zh) * | 2017-12-29 | 2022-04-26 | 腾讯科技(深圳)有限公司 | 目标数据的分类方法、装置、存储介质及电子装置 |
US11372628B2 (en) | 2019-02-20 | 2022-06-28 | Red Hat, Inc. | Application development interface |
CN110134434B (zh) * | 2019-05-15 | 2023-06-20 | 浪潮通用软件有限公司 | 一种应用生成处理方法及系统、应用生成系统 |
CN112464037A (zh) * | 2020-10-23 | 2021-03-09 | 北京思特奇信息技术股份有限公司 | Tosca业务处理方法、处理系统和处理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996814B1 (en) * | 2004-12-21 | 2011-08-09 | Zenprise, Inc. | Application model for automated management of software application deployments |
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署系统及部署方法 |
US8745577B2 (en) * | 2010-09-29 | 2014-06-03 | International Business Machines Corporation | End to end automation of application deployment |
CN104317642A (zh) * | 2014-09-28 | 2015-01-28 | 华为技术有限公司 | 云计算环境下的软件部署方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5681795B2 (ja) * | 2011-05-17 | 2015-03-11 | 株式会社日立製作所 | 計算機システムと計算機システムの情報処理方法及び情報処理プログラム |
-
2015
- 2015-10-26 CN CN201510702329.7A patent/CN105278991B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7996814B1 (en) * | 2004-12-21 | 2011-08-09 | Zenprise, Inc. | Application model for automated management of software application deployments |
US8745577B2 (en) * | 2010-09-29 | 2014-06-03 | International Business Machines Corporation | End to end automation of application deployment |
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署系统及部署方法 |
CN104317642A (zh) * | 2014-09-28 | 2015-01-28 | 华为技术有限公司 | 云计算环境下的软件部署方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105278991A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105278991B (zh) | 一种云应用部署配置模型的构造方法 | |
US20190340037A1 (en) | Blueprint-driven environment template creation in a virtual infrastructure | |
US9003406B1 (en) | Environment-driven application deployment in a virtual infrastructure | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
CN103441900B (zh) | 集中式跨平台自动化测试系统及其控制方法 | |
US20150261552A1 (en) | Environment template-driven environment provisioning in a virtual infrastructure | |
CN110519100A (zh) | 一种多集群管理方法、终端及计算机可读存储介质 | |
CN104778124A (zh) | 一种软件应用自动化测试方法 | |
CN105577475A (zh) | 自动化性能测试系统及方法 | |
Prehofer et al. | From internet of things mashups to model-based development | |
US8701079B2 (en) | Procedure and development environment for generation of an executable overall control program | |
CN102946415B (zh) | 一种移动终端本地应用的实现方法和装置 | |
CN103914307A (zh) | 一种基于可复用库的交互界面快速实现方法 | |
CN106648771B (zh) | 一种Openstack云平台自定义部署系统及部署方法 | |
CN106227397A (zh) | 基于应用虚拟化技术的计算集群作业管理系统及方法 | |
CN111813419A (zh) | 一种基于kubernetes声明式管理裸机生命周期的方法 | |
CN105573774A (zh) | 应用程序参数管理及配置方法 | |
CN111367618A (zh) | 基于docker的代码管理方法、系统、终端及介质 | |
US20200186431A1 (en) | Internet of things system topology generation | |
CN104219290B (zh) | 一种多模块云应用弹性配置方法 | |
CN107357569B (zh) | 多语言资源文件的统一管理方法及系统、计算机可读存储介质及设备 | |
CN104063219A (zh) | 一种web系统的表格开发方法及系统 | |
CN116431200A (zh) | 应用数据配置信息的配置方法、装置、设备及存储介质 | |
Prehofer et al. | From IoT mashups to model-based IoT | |
CN110891239B (zh) | Pnf配置及pnfd tosca实现方法和装置 |
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 |