CN108111559B - 一种应用软件部署系统及方法 - Google Patents
一种应用软件部署系统及方法 Download PDFInfo
- Publication number
- CN108111559B CN108111559B CN201611056392.9A CN201611056392A CN108111559B CN 108111559 B CN108111559 B CN 108111559B CN 201611056392 A CN201611056392 A CN 201611056392A CN 108111559 B CN108111559 B CN 108111559B
- Authority
- CN
- China
- Prior art keywords
- application software
- server
- deployed
- deployment
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012544 monitoring process Methods 0.000 claims abstract description 35
- 238000010586 diagram Methods 0.000 description 7
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 5
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 5
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 4
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101150053844 APP1 gene Proteins 0.000 description 3
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 3
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种应用软件部署系统及方法,涉及计算机技术领域,所述系统包括:应用软件策略模块、中心模块、服务器监控模块和应用软件控制模块;所述应用软件策略模块,用于生成应用软件的部署策略;所述服务器监控模块,用于监控服务器池中各个服务器的运行状态,获得服务器的运行信息;所述中心模块,用于获取并记录所述生成的所有应用软件的部署策略和所述各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器;所述应用软件控制模块,用于在所述目标服务器中部署所述待部署应用软件。应用本申请实施例提供的方案,能够降低工作人员的工作量,提高工作人员的工作效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种应用软件部署系统及方法。
背景技术
实际应用中,通常通过服务器池中的服务器为用户提供服务,而用户的实际需求是不同的,所以往往需要在各个服务器中部署各种应用软件以满足用户的不同需求。
现有技术中,在各个服务器中部署应用软件时,一般通过人工方式进行,这样虽然可以实现应用软件的成功部署,但是由于服务器池中服务器数量较多,且需要部署的应用软件数量也较多,工作人员的工作量非常大,工作效率低。
发明内容
本申请实施例公开了一种应用软件部署系统及方法,以降低工作人员的工作量,提高工作人员的工作效率。
为达到上述目的,本申请实施例公开了一种应用软件部署系统,所述系统包括:应用软件策略模块、中心模块、服务器监控模块和应用软件控制模块;
所述应用软件策略模块,用于生成应用软件的部署策略;
所述服务器监控模块,用于监控服务器池中各个服务器的运行状态,获得服务器的运行信息;
所述中心模块,用于获取并记录所述生成的所有应用软件的部署策略和所述各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器;
所述应用软件控制模块,用于在所述目标服务器中部署所述待部署应用软件。
为达到上述目的,本申请实施例公开了一种应用软件部署方法,应用于应用软件部署系统,所述系统包括:应用软件策略模块、中心模块、服务器监控模块和应用软件控制模块;所述方法包括:
所述应用软件策略模块生成应用软件的部署策略;
所述服务器监控模块监控服务器池中各个服务器的运行状态,获得服务器的运行信息;
所述中心模块获取并记录所述生成的所有应用软件的部署策略和所述各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器;
所述应用软件控制模块在所述目标服务器中部署所述待部署应用软件。
由以上可见,本申请实施例提供的方案中,中心模块获得已生成的所有应用软件的部署策略和服务器池中各个服务器当前的运行信息后,确定待部署应用软件和目标服务器,然后由应用软件控制模块在目标服务器上完成待部署应用软件的部署工作。与现有技术相比,应用本申请实施例提供的方案,无需工作人员手动在各个服务器上部署应用软件,进而降低了工作人员的工作量,提高了工作人员的工作效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用软件部署系统的结构示意图;
图2为本申请实施例提供的另一种应用软件部署系统的结构示意图;
图3为本申请实施例提供的一种应用软件部署系统的架构示意图;
图4为本申请实施例提供的一种应用软件部署方法的流程示意图;
图5为本申请实施例提供的另一种应用软件部署方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实际应用中通常是通过服务器池中的服务器为用户提供服务的,而应用软件是部署在上述服务器池中的各个服务器中的,要实现应用软件的自动化部署,需存在一个具有管理功能的设备,对上述服务器池中的服务器、待安装的应用软件等进行管理,进而实现应用软件的自动化部署。上述具有管理功能的设备可以称之为管理服务器,管理服务器可以是物理服务器,还可以是虚拟服务器,本申请并不对此进行限定。
其中,上述服务器池可以理解为:用于运行应用软件的服务器集合。
另外,上述管理服务器是从功能上进行划分的,可以对应于一台物理服务器或虚拟服务器,也可以对应于至少两台物理服务器或虚拟服务器。
进一步的,本申请实施例提供的下述应用软件部署系统可以是运行于上述管理服务器的系统。
图1为本申请实施例提供的一种应用软件部署系统的结构示意图,该系统包括:应用软件策略模块、中心模块、服务器监控模块和应用软件控制模块;其中,
应用软件策略模块,用于生成应用软件的部署策略;
服务器监控模块,用于监控服务器池中各个服务器的运行状态,获得服务器的运行信息;
中心模块,用于获取并记录上述生成的所有应用软件的部署策略和上述各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器;
应用软件控制模块,用于在目标服务器中部署待部署应用软件。
下面从以下几个方面对上述应用软件部署系统进行详细介绍:
一、服务器的运行信息
上述服务器池中的服务器可以是物理服务器、虚拟服务器、云服务器等能够运行应用软件的载体。
为便于描述,可以将服务器监控模块监控服务器池中各个服务器的运行状态进而得到的各个服务器的运行信息,记为:各个服务器的第一运行信息。
值得一提的是,上述第一运行信息是指服务器池中各个服务器运行过程中所涉及的各项信息,具体的,上述第一运行信息可以包括以下信息中的至少一种:服务器的运行状态信息、CPU资源、内存资源、硬盘资源、操作系统的运行状态信息以及网络状态信息等等,本申请只是以此为例进行限定,实际应用中上述第一运行信息并不仅限于此。
服务器监控模块获得服务器池中各个服务器的第一运行信息时,可以是通过主动向服务器池中的各个服务器发送请求的方式获得的,也可以是通过接收服务器池中的各个服务器主动向服务器监控模块发送运行信息的方式获得的。
具体的,服务器监控模块可以通过以下方式中的任一种获得上述第一运行信息:
服务器监控模块通过服务器池中服务器的远程接口等接口或操作系统的对外接口收集服务器池中各个服务器的相关信息;
服务器监控模块通过其中运行的模拟客户端访问服务器池中的服务器或Ping等工具探测服务器池中的服务器时服务器的响应情况,获取服务器池中各个服务器的相关信息;
在服务器池中的各个服务器上驻留监控软件,监控软件收集所在服务器上的各项信息,并汇总上报给服务器监控模块。
本申请仅仅以上述为例进行说明,并不对本申请构成限定。
二、应用软件的部署策略
上述应用软件的部署策略可以是预先通过人机GUI(Graphical User Interface,图形用户接口)对话,或者通过其他系统提供的API接口在应用软件策略模块上形成的部署策略。
具体的,上述应用软件的部署策略可以是:
A、与应用软件的运行条件相关的部署策略,上述运行条件可以是对CPU资源的要求、对内存资源的要求、对操作系统版本的要求等;
B、针对应用软件部署方式的部署策略,上述应用软件部署方式可以是:脚本安装方式、虚拟机镜像方式、容器镜像方式等;
C、与应用软件的复本数量相关的部署策略
i.指定固定复本数量,比如指定某应用软件运行3个复本;
ii.动态指定复本数量,可依据但不限于时间、日期等动态设置复本数量,比如订餐软件在午饭和晚饭时间段运行10个复本,其它时间段运行2个复本;
iii.联动指定复本数量,可依据应用软件之间的依赖关系动态指定复本数量,比如订餐软件每增加1个复本,快递软件也相应增加1个复本;结合上例中订餐软件在午饭和晚饭时间段运行10个复本后,快递软件也自动运行10个复本;
D、与增加或删除应用软件的复本相关的部署策略,如:某应用软件负载超出一定阈值增加或删除复本,比如某应用软件负载超出其全部负载80%后,增加1个复本;又如某应用软件负载低于其全部负载40%后,删除1个复本;
E、与虚拟服务器扩容相关的部署策略,如:某应用占用资源超出一定阈值扩容虚拟服务器,比如某应用软件运行的虚拟服务器CPU占用率超出80%5分钟后,为该虚拟服务器增加2个CPU核数;又如某应用软件运行的虚拟服务器CPU占用率低于40%5分钟后,为该虚拟服务器减小2个CPU核数;
F、与服务器迁出相关的部署策略,如:某应用占用资源超出一定阈值进行服务器迁移,比如某应用软件运行的虚拟机CPU占用率超出80%5分钟后,(可能由于物理服务器的原因无法扩容,或扩容也无法满足要求),将该应用软件迁移到另外的服务器运行。
三、目标服务器
从服务器池中选择目标服务器时,可以按照如下方式选择:
a)选择满足上述部署策略中应用软件运行条件要求的服务器;
b)选择满足上述部署策略中应用软件部署方式要求的服务器;
c)在满足要求a)和b)的服务器中按照资源优先的原则,选取可用资源最大的服务器;
d)在满足要求a)和b)的服务器中按照经济优先的原则,选取已使用的服务器,其中,经济优先的原则可以理解为:一台服务器充分利用后,再使用另一台服务器的原则,如,一台服务器90%的资源已被利用,则可以认为该服务器已被充分利用;
e)在满足要求a)和b)的服务器中按照复本归一原则,尽量为要求部署多复本的应用软件选择可以部署全部复本的服务器;
f)在满足要求a)和b)的服务器中按照复本分摊原则,尽量为要求部署多复本的应用软件的各复本分别选择服务器;
g)在满足要求a)和b)的服务器中按照轮询的原则,逐一选取服务器;
h)在满足要求a)和b)的服务器中按照随机原则,随机选取服务器;
需要说明的是,仅仅以上述为例对应用软件的部署策略、服务器的选择方式进行说明,并不对本申请构成限定。
综合上述信息,确定待部署应用软件以及目标服务器后,可以确定出待部署应用软件的部署方式、复本数量、所部署的服务器等信息。
四、部署待部署应用软件
在本申请的一种实现方式中,中心模块在确定待部署应用软件和目标服务器之后,可以生成应用软件部署通知消息;该应用软件部署通知消息可以包括:待部署应用软件的软件信息、待部署应用软件的目标部署策略和目标服务器的服务器信息;
应用软件控制模块,获取上述应用软件部署通知消息;根据上述软件信息,从应用软件镜像库中获得待部署应用软件的目标模板;根据目标部署策略和目标模板,在上述服务器信息指示的目标服务器上部署待部署应用软件。
上述软件信息可以包括:待部署应用软件的模板的名称、待部署应用软件的模板在预设的应用软件模板库中的存储位置等信息,其中,待部署应用软件的模板可以理解为:待部署应用软件的安装程序、安装了待部署应用软件的虚拟机镜像、包含待部署应用软件的容器镜像等,本发明对此不做限制。
上述目标部署策略可以包括:待部署应用软件的部署方式、待部署应用软件的复本数量等信息。
上述服务器信息可以包括:用于部署待部署应用软件的目标服务器的标识、名称等信息。
可以理解的,为保证能够更加有效的进行应用软件部署,中心模块本地可以记录有服务器中已部署的各个应用软件的部署信息,基于此,应用软件控制模块,还可以在待部署应用软件部署完成后,获得待部署应用软件的部署信息;中心模块,获取上述待部署应用软件的部署信息,并记录获取到的上述部署信息。
由以上可见,上述各个实施例提供的方案中,中心模块获得已生成的所有应用软件的部署策略和服务器池中各个服务器当前的运行信息后,确定待部署应用软件和目标服务器,然后由应用软件控制模块在目标服务器上完成待部署应用软件的部署工作。与现有技术相比,应用上述各个实施例提供的方案,无需工作人员手动在各个服务器上部署应用软件,进而降低了工作人员的工作量,提高了工作人员的工作效率。
由于现有技术中是通过人工方式完成应用软件部署的,所以一般也通过人工方式监控应用软件运行过程中是否存在问题,这样难以及时发现应用软件运行过程中存在的问题,同时也难以保证发现上述问题后及时调整解决上述问题,进而对应用软件用户带来影响。
在本申请的一种实现方式中,参见图2提供了另一种应用软件部署系统的结构示意图,与前述各个实施例相比,本实施例中,上述系统还包括:应用软件监控模块和服务器控制模块;
应用软件监控模块,用于监控服务器池中各个服务器上已部署的应用软件的运行状态,获得已部署应用软件的运行信息;
中心模块,还用于获取并记录已部署应用软件的运行信息;根据获取的各个服务器的运行信息、已部署应用软件的运行信息和所有应用软件的部署策略,确定待控制对象以及针对待控制对象的控制操作,待控制对象包括:待控制应用软件和/或待控制服务器;
应用软件控制模块,还用于执行针对待控制应用软件的控制操作;
服务器控制模块,用于执行针对待控制服务器的控制操作。
下面从以下几个方面对上述应用软件部署系统进行详细说明。
一、应用软件的运行信息
为便于描述,可以将应用软件监控模块监控服务器池中各个服务器的运行状态,进而获得的已部署应用软件的运行信息,记为:已部署应用软件的第二运行信息。
上述第二运行信息可以包括以下信息中的至少一种:应用软件的可用性、负载状态、资源占用情况、响应时间等信息。
具体的,应用软件监控模块可以通过以下方式获得各个服务器上已部署应用软件的第二运行信息:
应用软件监控模块可以通过操作系统的对外接口收集各应用软件的相关信息;
应用软件监控模块可以通过其中运行的模拟应用软件客户端访问应用软件的方式探测应用软件的响应情况,获取应用软件的相关信息;
在服务器池中的各个服务器上驻留监控软件,监控软件收集所在服务器上运行的应用软件的各项信息,并汇总上报给应用软件监控模块;
应用软件监控模块可以通过应用软件本身提供的对外接口收集应用的相关信息。
本申请仅仅以上述为例进行说明,并不构成对本申请的限定。
二、针对待控制对象的控制操作
中心模块获得上述第一运行信息、第二运行信息后,可以结合所有应用软件的部署策略进行分析,确定服务器池中的服务器或者已部署应用软件是否存在以下情况,如果存在,可以根据具体情况及时确定待控制服务器和/或待控制应用软件,以及相应的控制操作。
具体的,上述情况可以包括:
服务器池中的服务器或者应用软件是否运行于最佳状态,例如,服务器的CPU占用率维持在预设范围内的时长达到预设时长时,认为服务器处于最佳运行状态,如,上述预设范围可以是:[60%,70%],上述预设时长可以为:3分钟等等;
服务器池中的服务器或者应用软件是否存在异常风险,例如,服务器的内存资源在短时间内快速增长到95%时,认为服务器存在异常风险,如,上述内存资源在10秒钟以内增长到95%等等;
服务器池中的服务器或者应用软件是否处于异常状态,例如,应用软件非正常退出认为应用软件处于异常状态;
针对应用软件的部署策略中,策略所涉及的元素属性发生变化,例如:属性发生变化的元素为:“订餐应用复本”,具体的,“订餐应用复本”增加时,可以触发“快递应用复本”增加;
预先设置的时间策略生效,例如,预先设置的时间策略是:午饭时间订餐软件运行10个复本,则到达午饭时间时上述策略生效,进而运行10个订餐软件的复本。
需要说明的是,本申请仅仅以上述为例进行说明,实际应用上述情况并不仅限于此。
这样就无需工作人员人工监控服务器以及应用软件的运行情况,进而达到及时处理异常情况的目的。
具体的,对待控制应用软件的控制操作可以包括以下情况:
a)增加应用软件复本,例如:增加如图3中APP2的两个复本,这种情况下,中心模块需要提供APP2的模板名称、APP2的模板在预设的应用软件模板库中的存储位置、APP2的部署方式、部署的复本数量、用于部署APP2的服务器等信息;
b)删除应用软件复本,例如:删除如图3中APP3的两个复本,这种情况下,中心模块需要提供待删除的APP3复本所在服务器、APP3复本标识、APP3的部署方式等信息;
c)应用软件复本迁移,例如:将如图3中APP1的全部复本迁移到另外的服务器,这种情况下,中心模块需要提供待迁移APP1复本所在服务器、待迁移APP1复本标识、迁移目标服务器、APP1的部署方式等信息;
d)部署新的应用软件。
对待控制服务器的控制操作可以包括以下情况:
a)关闭服务器,这种情况下,中心模块需要提供待关闭服务器的标识;
b)虚拟服务器启动,这种情况下,中心模块需要提供新服务器的硬件资源设置、虚拟服务器的镜像文件名称、虚拟服务器的镜像文件的存储位置等信息,与预设的应用软件类似,还可以设置一个虚拟服务器的模板库,这样,上述虚拟服务器的镜像文件可从上述虚拟服务器的模板库中获取;
c)虚拟服务器迁移,这种情况下,中心模块需要提供待迁移服务器的标识、迁移目标物理服务器等信息;
d)虚拟服务器调整CPU、内存等资源,这种情况下,中心模块需要提供待调整服务器标识、调整后的CPU/内存等硬件资源数据等信息。
在本申请的一种实现方式中,应用软件控制模块,还可以完成针对待控制应用软件的控制操作后,获得待控制应用软件的部署信息;中心模块,还可以获取并记录上述针对待控制应用软件的部署信息。
具体的,由于中心模块中可能已经记录有待控制应用软件的部署信息,所以中心模块获得上述针对待控制应用软件的部署信息后,一方面可以直接存储新获得的部署信息,以保存待控制应用软件各个不同版本的部署信息,另一方面可以以新获得的部署信息更新原来记录的待控制应用软件的部署信息,例如,更新待控制应用软件的复本数量、待控制应用软件的部署位置等等。
另外,在本申请的一种实现方式中,服务器控制模块,也可以完成针对待控制服务器的控制操作后,获得待控制服务器的运行信息;中心模块,获取并记录待控制服务器的运行信息。
与记录待控制应用软件的部署信息类似,也可以按照上述方式记录待控制服务器的运行信息,更新本地记录的待控制服务器的运行信息时,可以是更新待控制服务器的当前运行状态信息、CPU资源、内存资源、操作系统运行状态信息等等。
由以上可见,本实施例提供的方案中,中心模块在获得服务器池中各个服务器的运行信息的情况下,还可以获得已部署应用软件的运行信息,并结合上述两种信息确定待控制对象以及针对待控制对象的控制操作,这样可以使得服务器控制模块、应用软件控制模块能够及时控制服务器或者应用软件的运行情况,进而保证服务器和应用软件具有较佳的运行状态。
下面结合图3所示的应用软件部署系统的架构示意图,对本申请实施例提供的应用软件部署方法进行更加详细的介绍。
该架构示意图中包括以下几个部分:
1、Monitor&Controller:可以理解为软件部署系统,该软件部署系统按照功能划分为如下几个功能模块:
Server Monitor:服务器监控模块,负责监控服务器池中各服务器的运行情况,包括:运行状态、CPU资源、内存资源、硬盘资源、网络状态、操作系统运行情况等;
APP Monitor:应用软件监控模块,负责监控应用软件的运行状态,包括:应用软件的可用性、负载情况、资源占用情况、响应时间等;
APP Policy:应用软件策略模块,负责制定针对应用软件的部署策略,比如某应用软件的复本数量、某应用软件负载超出一定阈值增加或删除复本、某应用占用资源超出一定阈值进行虚拟机扩容或迁移等;
APP Controller:应用软件控制模块,执行应用软件的部署;
Server Controller:服务器控制模块,执行服务器相关控制操作;
Center:中心模块,负责根据APP Monitor模块和Server Monitor模块的监控数据,触发APP Controller模块和Server Controller模块对应用软件和服务器进行操作,从而完成应用策略的实施,完成应用软件的实际动态部署;另外,该模块还可以在监控到满足目标触发条件时,触发APP Controller模块和Server Controller模块对应用软件和服务器进行操作,从而完成应用策略的实施,完成应用软件的实际动态部署;其中,上述目标触发条件可以理解为:与应用软件和/或服务器运行状态无关的应用部署策略对应的触发条件,例如:上述触发条件可以为:应用软件部署策略的元素属性发生变化或者预先设置的时间策略生效等等。
2、Server Pool:服务器池,运行应用软件的服务器集合;
3、Application:运行于各个服务器的应用软件,图中APP表示应用软件;
4、APP Registry:应用软件镜像库,存放应用软件的模板,该模板可以为应用软件的安装程序、安装了应用软件的虚拟机镜像、包含应用软件的容器镜像等,图中的APPImage为应用软件的模板;
5、VM Registry:虚拟服务器镜像库,存放虚拟服务器的模板,图中VM Image为虚拟服务器的模板。
具体的,APP Policy向Center提供针对应用软件的部署策略,Server Monitor获得服务器池中各个服务器的第一运行信息,并将该第一运行信息发送至Center,Center确定待部署应用软件,并根据上述第一运行信息和上述部署策略,从服务器池中选择目标服务器,并生成部署待部署应用程序的部署通知消息,然后将该部署通知消息发送至APPController,APP Controller根据上述部署通知消息中携带的待部署应用软件的标识、待部署应用软件在APP Registry中的存储位置等信息,从APP Registry中获得待部署应用软件,然后向目标服务器发送部署待部署应用软件的部署指令,由目标服务器实现待部署应用软件的部署。
APP Monitor获得服务器池中各个服务器上所运行应用软件的第二运行信息,并将上述第二运行信息发送至Center,Center根据上述第一运行信息、第二运行信息和上述部署策略,确定待控制的服务器、待控制的应用软件,并确定针对待控制服务器的控制操作以及针对待控制应用软件的控制操作,然后通过Server Controller向服务器发送控制指令,通过APP Controller向应用软件发送控制指令,实现对待控制服务器和待控制应用软件的控制。
假设,针对待控制服务器的控制操作为启动虚拟服务器,则Center需确定待控制服务器、待控制服务器的硬件资源、虚拟服务器的镜像模板名称、虚拟服务器的镜像模板在VM Registry中的存储位置等信息,然后Server Controller从上述VM Registry中获得虚拟服务器的镜像模板,并向待控制服务器发送控制指令,实现在待控制服务器上启动虚拟服务器。
假设,针对待控制应用软件的控制操作为部署新的应用软件,则Center需确定待部署应用软件的模板名称、待部署应用软件的模板在APP Registry中的存储位置、待部署应用软件的部署方式、用于部署待部署应用软件的服务器等信息,然后APP Controller从上述APP Registry中获得待部署应用软件的模板,并向用于部署待部署应用软件的服务器发送控制指令,实现待部署应用软件的部署。
与上述应用软件部署系统相对应,本申请实施例还提供了一种应用软件部署方法。
图4为本申请实施例提供的一种应用软件部署方法的流程示意图,上述应用软件部署方法包括:
S401:生成应用软件的部署策略。
S402:监控服务器池中各个服务器的运行状态,获得服务器的运行信息。
S403:记录上述生成的所有应用软件的部署策略和各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器。
S404:在目标服务器中部署待部署应用软件。
在本申请的一种实现方式中,上述应用软件部署方法还可以包括:
在确定待部署应用软件和目标服务器之后,生成应用软件部署通知消息,应用软件部署通知消息包括:待部署应用软件的软件信息、待部署应用软件的目标部署策略和目标服务器的服务器信息;
然后获取应用软件部署通知消息;根据上述软件信息,从应用软件镜像库中获得待部署应用软件的目标模板;根据目标部署策略和目标模板,在上述服务器信息指示的目标服务器上部署待部署应用软件。
在本申请的一种实现方式中,上述应用软件部署方法还可以包括:
在待部署应用软件部署完成后,获得待部署应用软件的部署信息;然后记录上述部署信息。
由以上可见,上述各个实施例提供的方案中,获得已生成的所有应用软件的部署策略和服务器池中各个服务器当前的运行信息后,确定待部署应用软件和目标服务器,然后在目标服务器上完成待部署应用软件的部署工作。与现有技术相比,应用上述各个实施例提供的方案,无需工作人员手动在各个服务器上部署应用软件,进而降低了工作人员的工作量,提高了工作人员的工作效率。
在本申请的一种实现方式中,参见图5提供了一种对象控制方法的流程示意图,与前述实施例相比,本实施例中,上述应用软件部署方法还包括:
S405:监控服务器池中各个服务器上已部署的应用软件的运行状态,获得已部署应用软件的运行信息。
S406:获取并记录已部署应用软件的运行信息;根据获得的各个服务器的运行信息、已部署应用软件的运行信息和所有应用软件的部署策略,确定待控制对象以及针对待控制对象的控制操作。
上述待控制对象包括:待控制应用软件和/或待控制服务器。
S407:执行针对待控制应用软件的控制操作。
S408:执行针对待控制服务器的控制操作。
在本申请的一种实现方式中,上述应用软件部署方法还可以包括:
完成针对待控制应用软件的控制操作后,获得待控制应用软件的部署信息;然后记录上述部署信息。
在本申请的一种实现方式中,上述应用软件部署方法还可以包括:
完成针对待控制服务器的控制操作后,获得待控制服务器的运行信息;然后记录待控制服务器的运行信息。
由以上可见,本实施例提供的方案中,在获得服务器池中各个服务器的运行信息的情况下,还可以获得已部署应用软件的运行信息,并结合上述两种信息确定待控制对象以及针对待控制对象的控制操作,这样能够及时控制服务器或者应用软件的运行情况,进而保证服务器和应用软件具有较佳的运行状态。
对于方法实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种应用软件部署系统,其特征在于,所述系统包括:应用软件策略模块、中心模块、服务器监控模块和应用软件控制模块;
所述应用软件策略模块,用于生成应用软件的部署策略;
所述服务器监控模块,用于监控服务器池中各个服务器的运行状态,获得服务器的运行信息;
所述中心模块,用于获取并记录所述生成的所有应用软件的部署策略和所述各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器;
所述应用软件控制模块,用于在所述目标服务器中部署所述待部署应用软件;
所述中心模块,在确定待部署应用软件和目标服务器之后,还用于生成应用软件部署通知消息,所述应用软件部署通知消息包括:所述待部署应用软件的软件信息、所述待部署应用软件的目标部署策略和所述目标服务器的服务器信息;
所述应用软件控制模块,还用于获取所述应用软件部署通知消息;根据所述软件信息,从应用软件镜像库中获得所述待部署应用软件的目标模板;根据所述目标部署策略和所述目标模板,在所述服务器信息指示的目标服务器上部署所述待部署应用软件。
2.根据权利要求1所述的系统,其特征在于,该系统还包括:应用软件监控模块和服务器控制模块;
所述应用软件监控模块,用于监控所述服务器池中各个服务器上已部署的应用软件的运行状态,获得已部署应用软件的运行信息;
所述中心模块,还用于获取并记录所述已部署应用软件的运行信息;根据获取的所述各个服务器的运行信息、所述已部署应用软件的运行信息和所述所有应用软件的部署策略,确定待控制对象以及针对所述待控制对象的控制操作,所述待控制对象包括:待控制应用软件和/或待控制服务器;
所述应用软件控制模块,还用于执行针对所述待控制应用软件的控制操作;
所述服务器控制模块,用于执行针对所述待控制服务器的控制操作。
3.根据权利要求1或2所述的系统,其特征在于,
所述应用软件控制模块,还用于在所述待部署应用软件部署完成后,获得所述待部署应用软件的部署信息;
所述中心模块,还用于获取并记录所述部署信息。
4.根据权利要求2所述的系统,其特征在于,
所述应用软件控制模块,还用于完成针对所述待控制应用软件的控制操作后,获得所述待控制应用软件的部署信息;
所述中心模块,还用于获取并记录所述部署信息。
5.根据权利要求2所述的系统,其特征在于,
所述服务器控制模块,还用于完成针对所述待控制服务器的控制操作后,获得所述待控制服务器的运行信息;
所述中心模块,还用于获取并记录所述待控制服务器的运行信息。
6.一种应用软件部署方法,其特征在于,所述方法包括:
生成应用软件的部署策略;
监控服务器池中各个服务器的运行状态,获得服务器的运行信息;
记录所述生成的所有应用软件的部署策略和所述各个服务器的运行信息,确定待部署应用软件和用于部署所述待部署应用软件的目标服务器;
在所述目标服务器中部署所述待部署应用软件;
所述方法还包括:
在确定待部署应用软件和目标服务器之后,生成应用软件部署通知消息,所述应用软件部署通知消息包括:所述待部署应用软件的软件信息、所述待部署应用软件的目标部署策略和所述目标服务器的服务器信息;
获取所述应用软件部署通知消息;根据所述软件信息,从应用软件镜像库中获得所述待部署应用软件的目标模板;根据所述目标部署策略和所述目标模板,在所述服务器信息指示的目标服务器上部署所述待部署应用软件。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
监控所述服务器池中各个服务器上已部署的应用软件的运行状态,获得已部署应用软件的运行信息;
记录所述已部署应用软件的运行信息;根据获得的所述各个服务器的运行信息、所述已部署应用软件的运行信息和所述所有应用软件的部署策略,确定待控制对象以及针对所述待控制对象的控制操作,所述待控制对象包括:待控制应用软件和/或待控制服务器;
执行针对所述待控制应用软件的控制操作;
执行针对所述待控制服务器的控制操作。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
在所述待部署应用软件部署完成后,获得所述待部署应用软件的部署信息;
记录所述部署信息。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
完成针对所述待控制应用软件的控制操作后,获得所述待控制应用软件的部署信息;
记录所述部署信息。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
完成针对所述待控制服务器的控制操作后,获得所述待控制服务器的运行信息;
记录所述待控制服务器的运行信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056392.9A CN108111559B (zh) | 2016-11-25 | 2016-11-25 | 一种应用软件部署系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056392.9A CN108111559B (zh) | 2016-11-25 | 2016-11-25 | 一种应用软件部署系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108111559A CN108111559A (zh) | 2018-06-01 |
CN108111559B true CN108111559B (zh) | 2020-12-18 |
Family
ID=62205296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611056392.9A Active CN108111559B (zh) | 2016-11-25 | 2016-11-25 | 一种应用软件部署系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108111559B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101245A (zh) * | 2018-07-24 | 2018-12-28 | 郑州云海信息技术有限公司 | 在操作系统上安装GBase 8t数据库的方法和装置 |
CN109814877A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 基于环境管理的项目部署方法及其装置 |
CN111381831B (zh) * | 2018-12-29 | 2022-03-25 | 华为技术有限公司 | 应用部署方法和服务器 |
CN112256283A (zh) * | 2020-09-27 | 2021-01-22 | 苏宁智能终端有限公司 | 用于Android设备的应用版本管控方法及装置 |
CN113238763A (zh) * | 2021-05-17 | 2021-08-10 | 京东数字科技控股股份有限公司 | 应用部署的方法、设备、存储介质及程序产品 |
CN114297733B (zh) * | 2021-12-28 | 2022-10-14 | 华扬联众数字技术股份有限公司 | 一种数字媒体设备的软件升级和部署的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788917A (zh) * | 2010-02-26 | 2010-07-28 | 浪潮(北京)电子信息产业有限公司 | 一种部署应用软件的方法和系统 |
CN102821000A (zh) * | 2012-09-14 | 2012-12-12 | 乐视网信息技术(北京)股份有限公司 | 提高PaaS平台可用性的方法 |
CN102915248A (zh) * | 2012-09-28 | 2013-02-06 | 用友软件股份有限公司 | 应用系统的自动部署系统和自动部署方法 |
CN103197952A (zh) * | 2012-01-09 | 2013-07-10 | 华为技术有限公司 | 基于云基础设施的针对应用系统维护部署的管理系统和方法 |
CN103455352A (zh) * | 2013-08-30 | 2013-12-18 | 中国电子科技集团公司第十五研究所 | 部署应用软件的方法及应用软件部署装置 |
CN104038540A (zh) * | 2014-06-03 | 2014-09-10 | 山东乾云启创信息科技有限公司 | 一种应用代理服务器自动选择方法及系统 |
CN104360878A (zh) * | 2014-10-29 | 2015-02-18 | 中国建设银行股份有限公司 | 一种应用软件部署的方法及装置 |
CN105204898A (zh) * | 2015-09-16 | 2015-12-30 | 浪潮通用软件有限公司 | 一种应用部署系统及方法、控制服务器 |
-
2016
- 2016-11-25 CN CN201611056392.9A patent/CN108111559B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788917A (zh) * | 2010-02-26 | 2010-07-28 | 浪潮(北京)电子信息产业有限公司 | 一种部署应用软件的方法和系统 |
CN103197952A (zh) * | 2012-01-09 | 2013-07-10 | 华为技术有限公司 | 基于云基础设施的针对应用系统维护部署的管理系统和方法 |
CN102821000A (zh) * | 2012-09-14 | 2012-12-12 | 乐视网信息技术(北京)股份有限公司 | 提高PaaS平台可用性的方法 |
CN102915248A (zh) * | 2012-09-28 | 2013-02-06 | 用友软件股份有限公司 | 应用系统的自动部署系统和自动部署方法 |
CN103455352A (zh) * | 2013-08-30 | 2013-12-18 | 中国电子科技集团公司第十五研究所 | 部署应用软件的方法及应用软件部署装置 |
CN104038540A (zh) * | 2014-06-03 | 2014-09-10 | 山东乾云启创信息科技有限公司 | 一种应用代理服务器自动选择方法及系统 |
CN104360878A (zh) * | 2014-10-29 | 2015-02-18 | 中国建设银行股份有限公司 | 一种应用软件部署的方法及装置 |
CN105204898A (zh) * | 2015-09-16 | 2015-12-30 | 浪潮通用软件有限公司 | 一种应用部署系统及方法、控制服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN108111559A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108111559B (zh) | 一种应用软件部署系统及方法 | |
US11226847B2 (en) | Implementing an application manifest in a node-specific manner using an intent-based orchestrator | |
CN108683516B (zh) | 一种应用实例的升级方法、装置和系统 | |
US11188561B2 (en) | Prioritizing microservices on a container platform for a restore operation | |
EP3282356A1 (en) | Container monitoring configuration deployment | |
US9851989B2 (en) | Methods and apparatus to manage virtual machines | |
EP4002113A1 (en) | Method and system to process requests to execute user code on one or more virtual machine instances identified from a plurality of warmed unassigned virtual machine | |
CN111143133B (zh) | 虚拟机备份方法和备份虚拟机恢复方法 | |
US10013271B2 (en) | Management system and method for controlling management system | |
KR101959601B1 (ko) | 관리 시스템 및 관리 시스템을 제어하기 위한 방법 | |
JP2004227359A (ja) | ポリシーに基づいたストレージシステムの運用管理方法 | |
CN109992373B (zh) | 资源调度方法、信息管理方法和装置及任务部署系统 | |
US20220283846A1 (en) | Pod deployment method and apparatus | |
CN110941393A (zh) | 一种基于逻辑卷管理的lv供应方法、装置、设备及介质 | |
US20220171646A1 (en) | Scalable visualization of a containerized application in a multiple-cluster environment | |
CN114528085A (zh) | 资源调度方法、装置、计算机设备、存储介质和程序产品 | |
CN114706690A (zh) | 一种Kubernetes容器共享GPU方法及系统 | |
CN114296891A (zh) | 任务的调度方法、系统、计算设备、存储介质及程序产品 | |
CN116881012A (zh) | 一种容器应用垂直扩容方法、装置、设备及可读存储介质 | |
US20240211157A1 (en) | Automatic data mover selection in information processing system environment | |
CN106550002B (zh) | 一种paas云托管系统及方法 | |
CN114172903B (zh) | slurm调度系统的节点扩容方法、装置、设备和介质 | |
WO2019178839A1 (zh) | 为分布式应用创建一致性快照的方法、装置和分布式系统 | |
CN114064054A (zh) | 一种微服务发布方法、装置、设备及存储介质 | |
US20210373868A1 (en) | Automated Deployment And Management Of Network Intensive Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |