CN104699508A - 云计算平台中快速部署和更新虚拟环境系统及其方法 - Google Patents

云计算平台中快速部署和更新虚拟环境系统及其方法 Download PDF

Info

Publication number
CN104699508A
CN104699508A CN201510133806.2A CN201510133806A CN104699508A CN 104699508 A CN104699508 A CN 104699508A CN 201510133806 A CN201510133806 A CN 201510133806A CN 104699508 A CN104699508 A CN 104699508A
Authority
CN
China
Prior art keywords
virtual machine
model
software package
software
module
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.)
Granted
Application number
CN201510133806.2A
Other languages
English (en)
Other versions
CN104699508B (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.)
Shandong Civic Se Commercial Middleware Co ltd
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201510133806.2A priority Critical patent/CN104699508B/zh
Publication of CN104699508A publication Critical patent/CN104699508A/zh
Application granted granted Critical
Publication of CN104699508B publication Critical patent/CN104699508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开一种云计算平台中快速部署和更新虚拟环境系统及其方法,用配置文件描述虚拟环境,将配置文件解析为模型,计算模型差异获得操作集合,对操作集合排序后执行,执行过程中使用云计算平台提供的编程接口和硬件资源池操作虚拟硬件,使用自动化软件配置管理工具提供的编程接口操作软件,所有操作执行完毕后获得所需虚拟环境,修改配置文件再次提交可以重复上述过程更新已部署的虚拟环境。本发明从多个方面极大的简化用户在部署虚拟环境时的工作,提供了对虚拟环境的更新能力,加速了部署和更新过程,提高了配置的复用能力,具有广阔的应用推广前景。

Description

云计算平台中快速部署和更新虚拟环境系统及其方法
技术领域
本发明涉及云计算技术,具体涉及云计算平台中快速部署和更新虚拟环境系统及其方法。
背景技术
随着云计算的不断普及,用户对云计算产品的需求越来越丰富,从单一地获取虚拟硬件设施,即虚拟机、虚拟存储、虚拟网络,到获取在虚拟硬件上配置了完整软件系统的虚拟环境。虚拟环境由虚拟硬件以及在虚拟硬件上安装的软件系统组成,软件系统则包含了一系列互相关联的软件包。用户可以使用虚拟环境承载个人网站,建立Hadoop集群进行科学实验,对开发中的分布式系统进行测试。
虚拟环境可以按需供给,用户不需要时,可随时销毁停止付费,而且扩容方便,与传统的实体环境相比有很大优势。然而虚拟环境的部署和更新仍然很复杂,用户需具备一定的专业知识来处理软硬件问题。当用户需要多次部署相同环境时,每次都要重复相同的操作。
但是上述现有技术仍然存在着以下缺陷:配置虚拟环境的方法复杂,如配置文件格式复杂、软件包配置复杂以及用户需要手工定义工作流描述部署过程等;软件包配置的重用性差,即在一种虚拟环境配置中起作用的软件包配置定义在另一个虚拟环境中需要重新定义;部署之后的环境没有更新能力,用户需要手工操作虚拟资源和软件进行更新;部署速度慢,主要是由于虚拟硬件尤其是虚拟机的生成需要一定时间。
发明内容
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种云计算平台中快速部署和更新虚拟环境系统及其方法,本发明使用简洁的配置描述格式、方便的软件包注册机制、以及操作排序机制和硬件资源池机制,使得在云计算平台中部署虚拟环境更加快捷高效,本发明中的模型差异算法为虚拟环境提供了更新能力,满足了用户更改、升级虚拟环境的需求。
技术方案:本发明所述的一种云计算平台中快速部署和更新虚拟环境系统,包括依次连接的配置输入模块、配置解析模块、模型差异计算模块和操作执行模块,
所述配置输入模块接收用户输入的配置文件并传入配置解析模块;
所述配置解析模块验证所接收配置文件的合法性和解析用户描述,检测不符合格式要求的描述并返回错误信息,并解析合法文本内容生成相应模型;
所述模型差异计算模块计算两个模型之间的差异,输出从模型A转换到模型B所需的最少操作集合,模型A可以为空,用于计算首次部署虚拟环境时需要的操作集合;并且,模型差异计算模块与配置解析模块之间设置有模型存储模块,所述模型存储模块存储配置解析模块生成的模型,该模型用于更新时进行的模型差异计算;
所述操作执行模块执行模型差异计算模块输出的所有操作集合,本模块包括有三个子模块:操作排序模块,以及分别与操作排序模块连接的硬件操作执行模块和软件操作执行模块;
所述硬件操作执行模块的另一端分别连接有相互联通的云计算平台和硬件资源池模块;所述软件操作执行模块的另一端连接有自动化软件配置管理工具,自动化软件配置管理工具上还连接有软件包注册模块。
进一步的,所述云计算平台和自动化软件配置管理工具上均设有编程接口;
所述硬件资源池模块用于设定资源池容量,维护池中虚拟机资源,在设定硬件资源池最大和最小容量后该模块调用云计算平台提供的编程接口发出指令生成虚拟机直至达到最大容量,由于虚拟机有不同配置类型,容量是一组键值对,例如(Type1:[10,20],Type2:[10,30],Type3:[5,15]),该键值对表示Type1类型的虚拟机的数量保持在10到20之间,Type2类型的虚拟机的数量保持在10到30之间,Type3类型的虚拟保持在5到15之间。
所述操作执行模块在创建虚拟机时优先使用硬件资源池中虚拟机,删除虚拟机时将虚拟机放入资源池而不是立即销毁虚拟机,除非当前资源池容量已经达到预先设定的最大值;
所述软件包注册模块在自动化软件配置管理工具上注册新的软件包;
所述操作排序模块根据操作对象在模型所表示的图形上的拓扑序进行反向排序形成工作流,硬件操作执行模块执行对虚拟机的增加、删除、修改操作,软件操作执行模块于执行对软件的增加、删除和修改操作。
本发明还公开了一种云计算平台中快速部署和更新虚拟环境系统的方法,包括以下步骤:
(1)用户按照虚拟环境配置描述规约描述所需虚拟环境,形成配置文件;其中,虚拟环境包括虚拟机硬件资源和软件系统,以及相互之间的关系,并且该配置文件只描述期望得到的虚拟环境的各组成部分和关联关系;
(2)解析上述所得的配置文件生成模型,模型由顶点和边形成有向图,顶点表示虚拟机和软件包,边表示顶点之间的关系,有向图整体表示所需虚拟环境;
(3)进行模型差异计算得到部署或更新时需要执行的操作集合,并对该操作集合进行排序形成工作流,其中,所述操作集合中的操作包括对顶点和边的增加、删除和修改;在首次部署时使用空模型作为旧模型,后续更新时使用前一次配置作为旧模型,用户最新提交的配置文件解析成的模型是新模型;
(4)生成硬件资源池,在实际部署前创建虚拟机硬件资源,减少部署和更新时等待创建虚拟硬件所需的时间;并使用该硬件资源池和云计算平台提供的编程接口执行硬件相关操作;
(5)将部署和更新所涉及的软件在自动化软件配置管理工具上注册为软件包,注册后的软件包中包括有安装文件、安装方法、卸载方法和配置修改方法,且该软件包用于本次部署和后续更新以及其他部署和更新;
(6)使用自动化软件配置管理工具提供的编程接口和已注册的软件包执行软件相关操作,对软件进行安装、卸载和修改;
(7)按照步骤(3)所得工作流顺序,执行所述硬件相关操作和所述软件相关操作后获得虚拟环境;
(8)修改配置文件并再次提交可以重复上述过程更新已部署的虚拟环境。
进一步的,所述步骤(1)中配置文件的描述规约包括:
使用kindOf关键词声明虚拟机类型和软件包类型,在语句末尾使用with关键词添加属性描述具体配置;
使用hostOn关键词声明某软件包安装于某虚拟机;
使用depengOn关键词声明软件包与软件包之间的依赖关系,在语句末尾使用at关键词声明所涉及的软件包配置项,未指定配置项的使用缺省配置项。
进一步的,所述步骤(2)中,边表示的关系包括软件包与虚拟机之间的hostOn、软件包与软件包之间的dependOn关系;
所述各个顶点和边的属性集为:顶点的属性表示虚拟机的名字、配置类型以及软件包的名字、类型、版本和具体配置;边的属性表示仅用于软件包与软件包之间的dependOn关系以及该dependOn关系所涉及的具体配置,软件包与虚拟机之间的hostOn关系不带属性。
进一步的,所述步骤(3)中,进行模型差异计算输出从模型A转换到模型B所需的操作集合,其具体计算过程包括:
设定四个集合,匹配集合M、新增集合N、删除集合D和修改集合C,集合M表示完全一致不需要进行操作,集合N表示需要创建新的虚拟机或安装新的软件包,集合D表示删除虚拟机或软件包,集合C表示修改软件包的配置或将虚拟机的类型进行更改,且修改虚拟机的类型由删除原虚拟机和创建新虚拟机组成;
对比模型A和模型B,利用顶点的名字匹配各顶点,利用边的起始点、终止点和属性集匹配各边,将所有匹配的对放入集合M;
扫描所有模型A中不存在但在模型B中存在的顶点和边,放入集合N,即这些顶点和边需要新建;
扫描所有模型A中存在但在模型B中不存在的顶点和边,放入集合D,即这些顶点和边需要删除;
扫描M集合中所有匹配的对,将任何有属性更改的对放入集合C并标明修改之处,即这些顶点和边的属性需要修改;
扫描集合M和集合C中初始点是软件包、终止点是虚拟机的边,如果该虚拟机处于集合N、D或C中,即该虚拟机已经不是原来的那台,则说明软件包从原来所处的虚拟机上移动了新创建的虚拟机上,应将该软件包顶点和该边放入集合N,表示在新创建的虚拟机上安装该软件包;
最后,为集合N中元素生成新建操作,为集合D中元素生成删除操作,为集合C中元素生成修改操作,忽略集合M中元素。
进一步的,所述步骤(3)中,所述工作流具体是指,将操作集合中的操作按照操作对象在模型有向图上的拓扑序即依赖关系进行反向排序:从拓扑序最大、依赖关系最深的对象开始依次执行到拓扑序最小、依赖关系最浅的对象,保证操作对象的依赖对象会先于本操作对象被创建。
进一步的,所述步骤(4)中,生成硬件资源池后设定资源池容量的最大值和最小值,调用云计算平台提供的编程接口发出指令生成虚拟机直至达到最大容量,硬件资源池中的虚拟机在部署和更新时被优先使用,其中,硬件资源池容量的最大值和最小值是一组键值对,表示不同虚拟机配置类型所对应的容量;
在执行硬件相关操作时,若需新建硬件资源,优先使用硬件资源池中的资源,硬件资源池中资源无法满足执行操作时,向云计算平台提供的编程接口发出指令创建资源;若需删除资源,优先将资源放入硬件资源池中,除非硬件资源池中相应类型资源数量以达最大值,这种情况下将销毁该资源;使用过硬件资源池中的资源后,若资源池中相应资源的数量少于规定的最小值,则会向云计算平台提供的编程接口发出指令创建一定量资源满足最小值。
有益效果:与现有技术相比,本发明具有以下优点:
(1)本发明简单高效,用户根据配置格式描述所需硬件资源、软件包、软件包与硬件关系以及软件包与软件包之间的关系,即可生成所需虚拟环境;
(2)用户编写的配置文件可以在配置相同环境时重复使用;
(3)本发明具有更新虚拟环境的能力,用户无需手动更改现有软硬件,而是直接描述期望得到的更新后的虚拟环境的各组成部分和关联,系统自动计算需要做出的更改操作并执行;同时,用户无需手动指定部署和更新的工作流,系统根据模型有向图计算依赖关系,按照合法的顺序依次执行操作;
(4)本发明中的硬件资源池加速了部署和更新过程,无需等待新的虚拟机被创建,而是直接从资源池中选用,更新虚拟环境时删除的虚拟机也会进入资源池以备后续使用;
(5)本发明中用户注册的软件包可以在配置其他环境时重复使用,并且该软件包的注册使用了现有的自动化软件配置管理工具,用户需要自行定义的部分大大减少,提高了效率和精度。
综上所述,本发明从多个方面极大的简化用户在部署虚拟环境时的工作,提高了对虚拟环境的更新能能力,加速了部署和更新过程,提高了配置的复用能力,具有广阔的应用推广前景。
附图说明
图1为本发明的模块结构示意图;
图2为本发明中配置解析模块的示意图;
图3为本发明中软件包注册模块与自动化软件配置管理工具之间的关系示意图;
图4为实施例中的模型示意图;
图5为实施例中转换后的模型示意图;
图6为实施例中硬件资源池使用流程示意图;
图7为本发明的流程示意图;
图8为本发明的简略流程示意图。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
如图1至图3所示,本发明的一种云计算平台中快速部署和更新虚拟环境系统,包括依次连接的配置输入模块、配置解析模块、模型差异计算模块和操作执行模块,配置输入模块接收用户输入的配置文件并传入配置解析模块;配置解析模块验证所接收配置文件的合法性和解析用户描述,检测不符合格式要求的描述并返回错误信息,并通过解析器解析合法文本内容生成相应模型;模型差异计算模块计算两个模型之间的差异,输出从模型A转换到模型B所需的最少操作集合,模型A可以为空,用于计算首次部署虚拟环境时需要的操作集合;并且,模型差异计算模块与配置解析模块之间设置有模型存储模块,该模型存储模块存储配置解析模块生成的模型,这些模型用于更新时进行的模型差异计算;操作执行模块执行模型差异计算模块输出的所有操作集合,本模块包括有三个子模块:操作排序模块,以及分别与操作排序模块连接的硬件操作执行模块和软件操作执行模块;硬件操作执行模块的另一端分别连接有相互联通的云计算平台和硬件资源池模块;软件操作执行模块的另一端连接有自动化软件配置管理工具,自动化软件配置管理工具上还连接有软件包注册模块。
上述软件包注册模块用于注册新的软件包,且与自动化软件配置管理工具紧密相关。用户需要上传安装文件,使用自动化软件配置管理工具提供的编程接口定义安装方法、卸载方法、配置修改方法。注册的软件包可以在当前虚拟环境部署中使用,也可以在其他部署中使用。默认提供的常用软件包如Apache、Mysql、PostgreSQL、Hadoop、OpenSSL、HAProxy,已经可以满足用户的基本需求如部署个人网站、计算集群、软件测试环境等,用户若有需求安装自定义软件包,只需根据自动化软件配置管理工具提供的编程接口进行自定义即可,自定义好的软件包可以在日后的部署中重复使用。
上述云计算平台和自动化软件配置管理工具上均设有编程接口;硬件资源池模块设定资源池容量且维护池中虚拟机资源;操作执行模块在创建虚拟机时优先使用硬件资源池中虚拟机,删除虚拟机时将虚拟机放入资源池而不是立即销毁虚拟机,除非当前资源池容量已经达到预先设定的最大值;操作排序模块根据操作对象在模型所表示的图形上的拓扑序进行反向排序形成工作流,硬件操作执行模块执行对虚拟机的增加、删除、修改操作,软件操作执行模块于执行对软件的增加、删除和修改操作。
在本实施例中,配置输入模块能够提供多种用户输入方式:提供本地命令行方式使得用户可以运行本地程序并将配置文件作为参数传入;提供RESTful API方式使得用户可以将文件以POST请求的方式提交;提供网页端图形界面方式使得用户可以使用网页上的上传功能选择配置文件进行上传,或者直接在网页端的编辑器内输入配置文件内容提交。并且该配置输入模块接受的配置文件内容需符合一定格式要求,具体包括:
使用kindOf关键词声明虚拟机类型和软件包类型,还可在语句末尾使用with关键词添加属性描述具体配置;使用hostOn关键词声明某软件包安装于某虚拟机;使用depengOn关键词声明软件包与软件包之间的依赖关系,例如可在语句末尾使用at关键词声明所涉及的软件包配置项,未指定配置项的使用缺省配置项。例如,可以给出以下例配置文件:
server1 kindOf Type1
server2 kindOf Type2
web1 kindOf Web
db1 kindOf Mysql with port=3306
web1 hostOn server1
db1 hostOn server2
web1 dependOn db1 at dbconnection
本实施例中的虚拟环境如图4所示,用户定义类型为Type1的虚拟机server1和类型为Type2的虚拟机server2各一台,此处的Type1和Type2代表不同的硬件配置(例如,4核CPU+8G内存+20G硬盘或者8核CPU+16G内存+128G硬盘,是由云计算平台提供的);用户定义类型为Web的软件包web1和类型为Mysql监听端口为3306的软件包db1,其中,web1是一个用于运行网站的软件包,db1是用来运行数据库的软件包,由系统默认提供,或用户手动注册;用户希望将web1安装在虚拟机server1上,db1安装在虚拟机server2上,并且web1是依赖于db1的,即配置web1时需要将配置中dbconnection的值修改为db1所提供的数据库服务地址,上述工作由软件操作执行模块完成。
上述虚拟环境在部署完成后可以进行更新,例如更新为图5所示的虚拟环境时,模型差异计算模块会计算从图4到图5的模型差异,计算完成后的M集合为{server2,db1,(web1,db1),(db1,server2)},N集合为{server3,server4,h1,web1,web2,(h1,server3),(web1,server1),(web2,server4),(h1,web1),(h1,web2),(web2,db1)},D集合为空,C集合为{server1},其所表示的操作集合为:
将server1从Type1转换为Type2,创建类型为Type2的虚拟机server3和server4,在server3上安装HAProxy类型软件包h1,在server1上安装Web类型软件包web1,在server4上安装Web类型软件包web2,修改h1配置使其依赖于web1和web2,修改web2配置使其依赖于db1。
本实施例中,操作执行模块接收模型差异计算模块生成的操作集合后,调用操作排序模块并根据操作对象在模型形成的图中的拓扑序进行反向排序并输出,按照排序结果,依次调用硬件操作执行模块执行虚拟机相关的操作以及软件操作执行模块执行软件包相关的操作。
而硬件操作执行模块与硬件资源池模块紧密关联,如图6(a)所示,在新增虚拟机时,首先使用资源池中的可用资源,只有在没有可用资源时才调用云计算平台提供的编程接口发出指令生成新的虚拟机,如图6(b)所示,在删除虚拟机时,将虚拟机放入资源池空闲位置,只有在资源池已达最大限制容量时才真正销毁该虚拟机。软件操作执行模块软件包注册模块以及自动化软件配置管理工具紧密相关,在安装、删除、修改软件包时利用自动化软件配置管理工具已有的功能进行实施。
如图7和图8所示,上述云计算平台中快速部署和更新虚拟环境系统的方法,包括以下步骤:
(1)用户按照虚拟环境配置描述规约描述所需虚拟环境,形成配置文件;其中,虚拟环境包括虚拟机硬件资源和软件系统,以及相互之间的关系,并且该配置文件只描述期望得到的虚拟环境的各组成部分和关联关系;
(2)解析上述所得的配置文件生成模型,模型由顶点和边形成有向图,顶点表示虚拟机和软件包,边表示顶点之间的关系,有向图整体表示所需虚拟环境;
(3)进行模型差异计算得到部署或更新时需要执行的操作集合,并对该操作集合进行排序形成工作流,其中,所述操作集合中的操作包括对顶点和边的增加、删除和修改;在首次部署时使用空模型作为旧模型,后续更新时使用前一次配置作为旧模型,用户最新提交的配置文件解析成的模型是新模型;
(4)生成硬件资源池,在实际部署前创建虚拟机硬件资源,减少部署和更新时等待创建虚拟硬件所需的时间;并使用该硬件资源池和云计算平台提供的编程接口执行硬件相关操作;
(5)将部署和更新所涉及的软件在自动化软件配置管理工具上注册为软件包,注册后的软件包中包括有安装文件、安装方法、卸载方法和配置修改方法,且该软件包用于本次部署和后续更新以及其他部署和更新;
(6)使用自动化软件配置管理工具提供的编程接口和已注册的软件包执行软件相关操作,对软件进行安装、卸载和修改;
(7)按照步骤(3)所得工作流顺序,执行所述硬件相关操作和所述软件相关操作后获得虚拟环境;
(8)修改配置文件并再次提交可以重复上述过程更新已部署的虚拟环境。
所述步骤(1)中配置文件的描述规约包括:
使用kindOf关键词声明虚拟机类型和软件包类型,在语句末尾使用with关键词添加属性描述具体配置;
使用hostOn关键词声明某软件包安装于某虚拟机;
使用depengOn关键词声明软件包与软件包之间的依赖关系,在语句末尾使用at关键词声明所涉及的软件包配置项,未指定配置项的使用缺省配置项。
所述步骤(2)中,边表示的关系包括软件包与虚拟机之间的hostOn、软件包与软件包之间的dependOn关系;
所述各个顶点和边的属性集为:顶点的属性表示虚拟机的名字、配置类型以及软件包的名字、类型、版本和具体配置;边的属性表示仅用于软件包与软件包之间的dependOn关系以及该dependOn关系所涉及的具体配置,软件包与虚拟机之间的hostOn关系不带属性。
所述步骤(3)中,进行模型差异计算输出从模型A转换到模型B所需的操作集合,其具体计算过程包括:
设定四个集合,匹配集合M、新增集合N、删除集合D和修改集合C,集合M表示完全一致不需要进行操作,集合N表示需要创建新的虚拟机或安装新的软件包,集合D表示删除虚拟机或软件包,集合C表示修改软件包的配置或将虚拟机的类型进行更改,且修改虚拟机的类型由删除原虚拟机和创建新虚拟机组成;
对比模型A和模型B,利用顶点的名字匹配各顶点,利用边的起始点、终止点和属性集匹配各边,将所有匹配的对放入集合M;
扫描所有模型A中不存在但在模型B中存在的顶点和边,放入集合N,即这些顶点和边需要新建;
扫描所有模型A中存在但在模型B中不存在的顶点和边,放入集合D,即这些顶点和边需要删除;
扫描M集合中所有匹配的对,将任何有属性更改的对放入集合C并标明修改之处,即这些顶点和边的属性需要修改;
扫描集合M和集合C中初始点是软件包、终止点是虚拟机的边,如果该虚拟机处于集合N、D或C中,即该虚拟机已经不是原来的那台,则说明软件包从原来所处的虚拟机上移动了新创建的虚拟机上,应将该软件包顶点和该边放入集合N,表示在新创建的虚拟机上安装该软件包;
最后,为集合N中元素生成新建操作,为集合D中元素生成删除操作,为集合C中元素生成修改操作,忽略集合M中元素。
所述步骤(3)中,所述工作流具体是指,将操作集合中的操作按照操作对象在模型有向图上的拓扑序即依赖关系进行反向排序:从拓扑序最大、依赖关系最深的对象开始依次执行到拓扑序最小、依赖关系最浅的对象,保证操作对象的依赖对象会先于本操作对象被创建。
所述步骤(4)中,生成硬件资源池后设定资源池容量的最大值和最小值,调用云计算平台提供的编程接口发出指令生成虚拟机直至达到最大容量,硬件资源池中的虚拟机在部署和更新时被优先使用,其中,硬件资源池容量的最大值和最小值是一组键值对,表示不同虚拟机配置类型所对应的容量;
在执行硬件相关操作时,若需新建硬件资源,优先使用硬件资源池中的资源,硬件资源池中资源无法满足执行操作时,向云计算平台提供的编程接口发出指令创建资源;若需删除资源,优先将资源放入硬件资源池中,除非硬件资源池中相应类型资源数量以达最大值,这种情况下将销毁该资源;使用过硬件资源池中的资源后,若资源池中相应资源的数量少于规定的最小值,则会向云计算平台提供的编程接口发出指令创建一定量资源满足最小值。
上述云计算平台中快速部署和更新虚拟环境系统的方法,如图7所示,简而言之即是:编写虚拟环境的配置文件,提交配置文件,解析配置文件生成模型,查询模型存储数据库,若是首次部署,则在进行模型差异计算时使用空模型与当前模型进行比较,若不是首次部署即这是一次更新操作,则在进行模型差异计算时使用距离当前最近的旧模型与当前模型进行比较,对模型差异算法输出的操作集合按照拓扑序进行反向排序形成工作流,按照该顺序执行模型差异算法输出的操作,部署、更新相应硬件和软件,最终获得所需的虚拟环境。

Claims (8)

1.一种云计算平台中快速部署和更新虚拟环境系统,其特征在于:包括依次连接的配置输入模块、配置解析模块、模型差异计算模块和操作执行模块,
所述配置输入模块接收用户输入的配置文件并传入配置解析模块;
所述配置解析模块验证所接收配置文件的合法性和解析用户描述,检测不符合格式要求的描述并返回错误信息,并解析合法文本内容生成相应模型;
所述模型差异计算模块计算两个模型之间的差异,输出从模型A转换到模型B所需的最少操作集合,模型A可以为空,用于计算首次部署虚拟环境时需要的操作集合;并且,模型差异计算模块与配置解析模块之间设置有模型存储模块,所述模型存储模块存储配置解析模块生成的模型,该模型用于更新时进行的模型差异计算;
所述操作执行模块执行模型差异计算模块输出的所有操作集合,本模块包括有三个子模块:操作排序模块,以及分别与操作排序模块连接的硬件操作执行模块和软件操作执行模块;
所述硬件操作执行模块的另一端分别连接有相互联通的云计算平台和硬件资源池模块;所述软件操作执行模块的另一端连接有自动化软件配置管理工具,自动化软件配置管理工具上还连接有软件包注册模块。
2.根据权利要求1所述的云计算平台中快速部署和更新虚拟环境系统,其特征在于:所述云计算平台和自动化软件配置管理工具上均设有编程接口;
所述硬件资源池模块设定资源池容量且维护池中虚拟机资源;
所述操作执行模块在创建虚拟机时优先使用硬件资源池中虚拟机,删除虚拟机时将虚拟机放入资源池而不是立即销毁虚拟机,除非当前资源池容量已经达到预先设定的最大值;
所述软件包注册模块在自动化软件配置管理工具上注册新的软件包;
所述操作排序模块根据操作对象在模型所表示的图形上的拓扑序进行反向排序形成工作流,硬件操作执行模块执行对虚拟机的增加、删除、修改操作,软件操作执行模块于执行对软件的增加、删除和修改操作。
3.一种根据权利要求1或2任意一项所述的云计算平台中快速部署和更新虚拟环境系统的方法,其特征在于:包括以下步骤:
(1)用户按照虚拟环境配置描述规约描述所需虚拟环境,形成配置文件;其中,虚拟环境包括虚拟机硬件资源和软件系统,以及相互之间的关系;
(2)解析上述所得的配置文件生成模型,模型由顶点和边形成有向图,顶点表示虚拟机和软件包,边表示顶点之间的关系,有向图整体表示所需虚拟环境;
(3)进行模型差异计算得到部署或更新时需要执行的操作集合,并对该操作集合进行排序形成工作流,其中,所述操作集合中的操作包括对顶点和边的增加、删除和修改;
(4)生成硬件资源池,在实际部署前创建虚拟机硬件资源;并使用该硬件资源池和云计算平台提供的编程接口执行硬件相关操作;
(5)将部署和更新所涉及的软件在自动化软件配置管理工具上注册为软件包,注册后的软件包中包括有安装文件、安装方法、卸载方法和配置修改方法,且该软件包用于本次部署和后续更新以及其他部署和更新;
(6)使用自动化软件配置管理工具提供的编程接口和已注册的软件包执行软件相关操作,对软件进行安装、卸载和修改;
(7)按照步骤(3)所得工作流顺序,执行所述硬件相关操作和所述软件相关操作后获得虚拟环境;
(8)修改配置文件并再次提交可以重复上述过程更新已部署的虚拟环境。
4.根据权利要求3所述的云计算平台中快速部署和更新虚拟环境系统的方法,其特征在于:所述步骤(1)中配置文件的描述规约包括:
使用kindOf关键词声明虚拟机类型和软件包类型,在语句末尾使用with关键词添加属性描述具体配置;
使用hostOn关键词声明某软件包安装于某虚拟机;
使用depengOn关键词声明软件包与软件包之间的依赖关系,在语句末尾使用at关键词声明所涉及的软件包配置项,未指定配置项的使用缺省配置项。
5.根据权利要求3所述的云计算平台中快速部署和更新虚拟环境系统的方法,其特征在于:所述步骤(2)中,边表示的关系包括软件包与虚拟机之间的hostOn、软件包与软件包之间的dependOn关系;
所述各个顶点和边的属性集为:顶点的属性表示虚拟机的名字、配置类型以及软件包的名字、类型、版本和具体配置;边的属性表示仅用于软件包与软件包之间的dependOn关系以及该dependOn关系所涉及的具体配置,软件包与虚拟机之间的hostOn关系不带属性。
6.根据权利要求3所述的云计算平台中快速部署和更新虚拟环境系统的方法,其特征在于:所述步骤(3)中,进行模型差异计算输出从模型A转换到模型B所需的操作集合,其具体计算过程包括:
设定四个集合,匹配集合M、新增集合N、删除集合D和修改集合C,集合M表示完全一致不需要进行操作,集合N表示需要创建新的虚拟机或安装新的软件包,集合D表示删除虚拟机或软件包,集合C表示修改软件包的配置或将虚拟机的类型进行更改,且修改虚拟机的类型由删除原虚拟机和创建新虚拟机组成;
对比模型A和模型B,利用顶点的名字匹配各顶点,利用边的起始点、终止点和属性集匹配各边,将所有匹配的对放入集合M;
扫描所有模型A中不存在但在模型B中存在的顶点和边,放入集合N,即这些顶点和边需要新建;
扫描所有模型A中存在但在模型B中不存在的顶点和边,放入集合D,即这些顶点和边需要删除;
扫描M集合中所有匹配的对,将任何有属性更改的对放入集合C并标明修改之处,即这些顶点和边的属性需要修改;
扫描集合M和集合C中初始点是软件包、终止点是虚拟机的边,如果该虚拟机处于集合N、D或C中,即该虚拟机已经不是原来的那台,则说明软件包从原来所处的虚拟机上移动了新创建的虚拟机上,应将该软件包顶点和该边放入集合N,表示在新创建的虚拟机上安装该软件包;
最后,为集合N中元素生成新建操作,为集合D中元素生成删除操作,为集合C中元素生成修改操作,忽略集合M中元素。
7.根据权利要求3所述的云计算平台中快速部署和更新虚拟环境系统的方法,其特征在于,所述步骤(3)中,所述工作流具体是指,将操作集合中的操作按照操作对象在模型有向图上的拓扑序即依赖关系进行反向排序:从拓扑序最大、依赖关系最深的对象开始依次执行到拓扑序最小、依赖关系最浅的对象,保证操作对象的依赖对象会先于本操作对象被创建。
8.根据权利要求3所述的云计算平台中快速部署和更新虚拟环境系统的方法,其特征在于:所述步骤(4)中,生成硬件资源池后设定资源池容量的最大值和最小值,调用云计算平台提供的编程接口发出指令生成虚拟机直至达到最大容量,硬件资源池中的虚拟机在部署和更新时被优先使用,其中,硬件资源池容量的最大值和最小值是一组键值对,表示不同虚拟机配置类型所对应的容量;
在执行硬件相关操作时,若需新建硬件资源,优先使用硬件资源池中的资源,硬件资源池中资源无法满足执行操作时,向云计算平台提供的编程接口发出指令创建资源;若需删除资源,优先将资源放入硬件资源池中,除非硬件资源池中相应类型资源数量以达最大值,这种情况下将销毁该资源;使用过硬件资源池中的资源后,若资源池中相应资源的数量少于规定的最小值,则会向云计算平台提供的编程接口发出指令创建一定量资源满足最小值。
CN201510133806.2A 2015-03-25 2015-03-25 云计算平台中快速部署和更新虚拟环境系统及其方法 Active CN104699508B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510133806.2A CN104699508B (zh) 2015-03-25 2015-03-25 云计算平台中快速部署和更新虚拟环境系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510133806.2A CN104699508B (zh) 2015-03-25 2015-03-25 云计算平台中快速部署和更新虚拟环境系统及其方法

Publications (2)

Publication Number Publication Date
CN104699508A true CN104699508A (zh) 2015-06-10
CN104699508B CN104699508B (zh) 2017-08-22

Family

ID=53346674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510133806.2A Active CN104699508B (zh) 2015-03-25 2015-03-25 云计算平台中快速部署和更新虚拟环境系统及其方法

Country Status (1)

Country Link
CN (1) CN104699508B (zh)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740408A (zh) * 2016-01-28 2016-07-06 东软集团股份有限公司 调用hadoop集群的方法和装置
CN105808317A (zh) * 2016-03-07 2016-07-27 中标软件有限公司 一种云计算平台虚拟机编辑管理方法
WO2016183799A1 (zh) * 2015-05-19 2016-11-24 华为技术有限公司 一种硬件加速方法以及相关设备
CN107203333A (zh) * 2016-09-28 2017-09-26 郑州云海信息技术有限公司 OpenStack云计算平台中块存储自动接入的方法
CN107515773A (zh) * 2016-06-16 2017-12-26 北京易讯通信息技术股份有限公司 一种基于Openstack快速创建虚拟机的方法
WO2018028321A1 (zh) * 2016-08-09 2018-02-15 中兴通讯股份有限公司 一种虚拟外置存储设备的管理方法、装置及终端
CN107810487A (zh) * 2015-06-26 2018-03-16 微软技术许可有限责任公司 部分地重新配置加速组件
CN107810475A (zh) * 2015-06-30 2018-03-16 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN108206745A (zh) * 2016-12-16 2018-06-26 华为技术有限公司 业务的操作方法、装置及云计算系统
CN108961897A (zh) * 2018-07-04 2018-12-07 北京四航科技有限公司 一种虚拟学习系统及方法
CN109032788A (zh) * 2018-06-29 2018-12-18 北京百度网讯科技有限公司 预留资源池动态调度方法、装置、计算机设备及存储介质
CN109144526A (zh) * 2018-06-28 2019-01-04 国网山东省电力公司菏泽供电公司 一种变电站自动化软件的快速部署系统及方法
CN109783144A (zh) * 2017-11-13 2019-05-21 深圳市创客工场科技有限公司 虚拟环境交互实现中变量的处理方法、装置和存储介质
CN110263305A (zh) * 2019-05-22 2019-09-20 中国平安财产保险股份有限公司 配置文件对比方法、装置、设备及存储介质
CN110383246A (zh) * 2016-09-30 2019-10-25 亚马逊技术有限公司 虚拟机控制可编程硬件的单独子集
CN111610994A (zh) * 2020-05-20 2020-09-01 山东汇贸电子口岸有限公司 一种云数据中心的部署方法、装置、设备及存储介质
CN111756564A (zh) * 2019-03-29 2020-10-09 瞻博网络公司 支持基于图的高级配置模型的并发
US10819657B2 (en) 2015-06-26 2020-10-27 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
CN112698918A (zh) * 2021-01-06 2021-04-23 上海幻电信息科技有限公司 基于构建环境的虚拟机文件生成方法、装置
US11010198B2 (en) 2015-04-17 2021-05-18 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
CN113064698A (zh) * 2021-04-06 2021-07-02 北京元年科技股份有限公司 提供产品环境的方法及相应的装置、系统、设备和介质
US11099906B2 (en) 2015-04-17 2021-08-24 Microsoft Technology Licensing, Llc Handling tenant requests in a system that uses hardware acceleration components
US11288055B2 (en) 2020-02-18 2022-03-29 International Business Machines Corporation Model-based differencing to selectively generate and deploy images in a target computing environment
US11296954B2 (en) 2019-03-29 2022-04-05 Juniper Networks, Inc. Supporting near real time service level agreements
CN114461244A (zh) * 2021-12-27 2022-05-10 华能国际电力股份有限公司上海石洞口第二电厂 一种云桌面系统的客户端硬件更新方法
WO2023084345A1 (en) * 2021-11-09 2023-05-19 International Business Machines Corporation Automated deployment of enterprise archive with dependency on application server via script
US11704459B2 (en) 2016-09-29 2023-07-18 Amazon Technologies, Inc. Logic repository service
US11863406B2 (en) 2016-11-17 2024-01-02 Amazon Technologies, Inc. Networked programmable logic service provider
US11956220B2 (en) 2016-09-29 2024-04-09 Amazon Technologies, Inc. Logic repository service using encrypted configuration data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488903A (zh) * 2009-02-18 2009-07-22 南京大学 基于统一分类接口的数据中心自动化资源管理系统及方法
CN104317642A (zh) * 2014-09-28 2015-01-28 华为技术有限公司 云计算环境下的软件部署方法和装置
CN104391717A (zh) * 2014-11-18 2015-03-04 南京大学 一种调试时代码动态更新方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488903A (zh) * 2009-02-18 2009-07-22 南京大学 基于统一分类接口的数据中心自动化资源管理系统及方法
CN104317642A (zh) * 2014-09-28 2015-01-28 华为技术有限公司 云计算环境下的软件部署方法和装置
CN104391717A (zh) * 2014-11-18 2015-03-04 南京大学 一种调试时代码动态更新方法

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010198B2 (en) 2015-04-17 2021-05-18 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US11099906B2 (en) 2015-04-17 2021-08-24 Microsoft Technology Licensing, Llc Handling tenant requests in a system that uses hardware acceleration components
US11068298B2 (en) 2015-05-19 2021-07-20 Huawei Technologies Co., Ltd. Hardware acceleration method and related device
WO2016183799A1 (zh) * 2015-05-19 2016-11-24 华为技术有限公司 一种硬件加速方法以及相关设备
US10620986B2 (en) 2015-05-19 2020-04-14 Huawei Technologies Co., Ltd. Hardware acceleration method and related device
US11544100B2 (en) 2015-05-19 2023-01-03 Huawei Technologies Co., Ltd. Hardware acceleration method and related device
US10977104B2 (en) 2015-06-26 2021-04-13 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10819657B2 (en) 2015-06-26 2020-10-27 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
CN107810487A (zh) * 2015-06-26 2018-03-16 微软技术许可有限责任公司 部分地重新配置加速组件
US20190155669A1 (en) 2015-06-26 2019-05-23 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
CN107810475A (zh) * 2015-06-30 2018-03-16 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN107810475B (zh) * 2015-06-30 2021-09-10 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN105740408B (zh) * 2016-01-28 2019-02-05 东软集团股份有限公司 调用hadoop集群的方法和装置
CN105740408A (zh) * 2016-01-28 2016-07-06 东软集团股份有限公司 调用hadoop集群的方法和装置
CN105808317A (zh) * 2016-03-07 2016-07-27 中标软件有限公司 一种云计算平台虚拟机编辑管理方法
CN107515773A (zh) * 2016-06-16 2017-12-26 北京易讯通信息技术股份有限公司 一种基于Openstack快速创建虚拟机的方法
WO2018028321A1 (zh) * 2016-08-09 2018-02-15 中兴通讯股份有限公司 一种虚拟外置存储设备的管理方法、装置及终端
CN107203333A (zh) * 2016-09-28 2017-09-26 郑州云海信息技术有限公司 OpenStack云计算平台中块存储自动接入的方法
US11956220B2 (en) 2016-09-29 2024-04-09 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US11704459B2 (en) 2016-09-29 2023-07-18 Amazon Technologies, Inc. Logic repository service
CN110383246A (zh) * 2016-09-30 2019-10-25 亚马逊技术有限公司 虚拟机控制可编程硬件的单独子集
US11863406B2 (en) 2016-11-17 2024-01-02 Amazon Technologies, Inc. Networked programmable logic service provider
US11281494B2 (en) 2016-12-16 2022-03-22 Huawei Technologies Co., Ltd. Business operation method, apparatus, and system for determining and executing operation tasks in cloud computing
CN108206745A (zh) * 2016-12-16 2018-06-26 华为技术有限公司 业务的操作方法、装置及云计算系统
CN108206745B (zh) * 2016-12-16 2020-03-20 华为技术有限公司 业务的操作方法、装置及云计算系统
CN109783144A (zh) * 2017-11-13 2019-05-21 深圳市创客工场科技有限公司 虚拟环境交互实现中变量的处理方法、装置和存储介质
CN109144526A (zh) * 2018-06-28 2019-01-04 国网山东省电力公司菏泽供电公司 一种变电站自动化软件的快速部署系统及方法
CN109144526B (zh) * 2018-06-28 2022-04-12 山东鲁软数字科技有限公司智慧能源分公司 一种变电站自动化软件的快速部署系统及方法
CN109032788A (zh) * 2018-06-29 2018-12-18 北京百度网讯科技有限公司 预留资源池动态调度方法、装置、计算机设备及存储介质
CN109032788B (zh) * 2018-06-29 2019-09-20 北京百度网讯科技有限公司 预留资源池动态调度方法、装置、计算机设备及存储介质
CN108961897A (zh) * 2018-07-04 2018-12-07 北京四航科技有限公司 一种虚拟学习系统及方法
US11689419B2 (en) 2019-03-29 2023-06-27 Juniper Networks, Inc. Supporting concurrency for graph-based high level configuration models
CN111756564A (zh) * 2019-03-29 2020-10-09 瞻博网络公司 支持基于图的高级配置模型的并发
CN111756564B (zh) * 2019-03-29 2021-10-08 瞻博网络公司 用于配置网络的方法、控制器装置以及存储介质
US11296954B2 (en) 2019-03-29 2022-04-05 Juniper Networks, Inc. Supporting near real time service level agreements
CN110263305B (zh) * 2019-05-22 2023-09-19 中国平安财产保险股份有限公司 配置文件对比方法、装置、设备及存储介质
CN110263305A (zh) * 2019-05-22 2019-09-20 中国平安财产保险股份有限公司 配置文件对比方法、装置、设备及存储介质
US11288055B2 (en) 2020-02-18 2022-03-29 International Business Machines Corporation Model-based differencing to selectively generate and deploy images in a target computing environment
CN111610994A (zh) * 2020-05-20 2020-09-01 山东汇贸电子口岸有限公司 一种云数据中心的部署方法、装置、设备及存储介质
CN111610994B (zh) * 2020-05-20 2023-10-20 山东汇贸电子口岸有限公司 一种云数据中心的部署方法、装置、设备及存储介质
CN112698918A (zh) * 2021-01-06 2021-04-23 上海幻电信息科技有限公司 基于构建环境的虚拟机文件生成方法、装置
CN113064698A (zh) * 2021-04-06 2021-07-02 北京元年科技股份有限公司 提供产品环境的方法及相应的装置、系统、设备和介质
WO2023084345A1 (en) * 2021-11-09 2023-05-19 International Business Machines Corporation Automated deployment of enterprise archive with dependency on application server via script
CN114461244A (zh) * 2021-12-27 2022-05-10 华能国际电力股份有限公司上海石洞口第二电厂 一种云桌面系统的客户端硬件更新方法

Also Published As

Publication number Publication date
CN104699508B (zh) 2017-08-22

Similar Documents

Publication Publication Date Title
CN104699508A (zh) 云计算平台中快速部署和更新虚拟环境系统及其方法
US10860339B2 (en) Autonomous creation of new microservices and modification of existing microservices
US8495614B2 (en) Mechanism for dynamically generating spec files for software package managers
US11231912B2 (en) Post-deployment modification of information-technology application using lifecycle blueprint
TW201828220A (zh) 業務處理方法及裝置
CN103078941A (zh) 一种分布式计算系统的任务调度方法及系统
CN103679401A (zh) 一种流程控制方法、服务器、客户端及系统
CN106446019B (zh) 一种软件功能处理方法和装置
WO2021057252A1 (zh) 一种业务处理流程配置方法、业务请求处理方法及装置
US8965746B2 (en) System and method for validating an electrical network model
CN104657274A (zh) 软件界面测试方法及装置
WO2024060725A1 (zh) 一种飞机工装变更方法、装置、设备及存储介质
CA3182208A1 (en) Business data processing method and device, computer equipment and storage medium
CN112052235A (zh) 一种区块链交易数据迁移的方法及装置
KR20130037995A (ko) 멀티테넌시를 지원하는 비즈니스 로직 설정방법
CN105446789A (zh) 一种内置应用程序到安卓系统的方法及装置
CN109033452B (zh) 一种数据仓库智能构建装载方法及系统
WO2023231526A1 (zh) 基于数字孪生DaaS平台的算法仓库管理方法及系统
CN114089889A (zh) 模型训练方法、装置以及存储介质
CN105653334B (zh) 一种基于saas模式的mis系统快速开发框架
WO2017097125A1 (zh) 一种执行代码生成方法及设备
US10768901B2 (en) Converting code of a first code type on a mainframe device in phases to code of a second code type
CN103984540A (zh) 生成硬件接口运行程序的方法及装置
CN113612818B (zh) 一种低代码平台的工业app发布系统
CN114265595B (zh) 一种基于智能合约的云原生应用开发与部署系统和方法

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
TR01 Transfer of patent right

Effective date of registration: 20200629

Address after: No. 41-1, Qianfo Shandong Road, Lixia District, Jinan City, Shandong Province

Patentee after: SHANDONG CIVIC SE COMMERCIAL MIDDLEWARE Co.,Ltd.

Address before: 210008 Nanjing, Gulou District, Jiangsu, No. 22 Hankou Road

Patentee before: NANJING University

TR01 Transfer of patent right