CN117519958A - 一种应用部署方法、系统及设备 - Google Patents
一种应用部署方法、系统及设备 Download PDFInfo
- Publication number
- CN117519958A CN117519958A CN202210912556.2A CN202210912556A CN117519958A CN 117519958 A CN117519958 A CN 117519958A CN 202210912556 A CN202210912556 A CN 202210912556A CN 117519958 A CN117519958 A CN 117519958A
- Authority
- CN
- China
- Prior art keywords
- application
- deployment
- region
- session
- policy
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 622
- 230000008569 process Effects 0.000 claims abstract description 551
- 238000009434 installation Methods 0.000 claims abstract description 98
- 238000012545 processing Methods 0.000 claims description 52
- 230000015654 memory Effects 0.000 claims description 34
- 230000008602 contraction Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001934 delay Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 192
- 230000006870 function Effects 0.000 description 24
- 230000008859 change Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 10
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000005129 volume perturbation calorimetry Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000012508 change request Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010030 laminating Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Abstract
一种应用部署方法、系统及设备,本申请中,应用部署装置获取租户提供的应用的安装包和应用部署策略,应用的安装包包括应用的可执行文件,应用部署策略指示了部署应用的约束条件;应用部署装置根据应用部署策略为该应用选择部署的区域,并将该应用的安装包发送至区域。应用部署装置通过区域内的区域应用部署装置在区域内创建至少一个计算实例,在至少一个计算实例上运行安装包创建多个应用进程。租户在需要部署应用时,仅需简单的提供应用的安装包以及部署应用需要的一些约束条件,应用部署装置以及区域内的区域应用部署装置帮助租户完成该应用的部署,租户不需要在配置各个区域需要的资源,简化了应用部署的流程,提升了应用部署的自动化程度。
Description
技术领域
本申请涉及云技术领域,尤其涉及一种应用部署方法、系统及设备。
背景技术
随着云数据中心的普及,租户可以通过租用云数据中心的资源,将应用部署在云数据中心中。在将应用部署在云数据中心时,应用可以部署在一个云数据中心中,也可以分布在多个云数据中心中,该多个云数据中心可位于不同的区域,也即应用采用了多区域部署的方式。这种部署方式适用于一些大型应用、或该应用面向的用户分布在不同区域的应用。
租户在租用云数据中心的资源以部署应用时,需要明确的指定需要租用的云数据中心中的资源,自行向云数据中心申请资源。实际上,租户并不一定能够准确的估算所需租用的资源,这样也增加了应用部署的难度。
发明内容
本申请提供一种应用部署方法、系统及设备,用以实现应用在云端的自动部署。
第一方面,本申请实施例提供了一种应用部署方法,该方法可以由应用部署装置以及位于区域内的区域应用部署装置配合执行。在该方法中,应用部署装置先获取租户提供的应用的安装包和应用部署策略,应用的安装包包括应用的可执行文件,应用部署策略指示了部署应用的约束条件;应用部署装置在获取租户提供的应用的安装包和应用部署策略时可以确定该租户需要部署该应用,为了帮助该租户部署该应用,应用部署装置根据应用部署策略为该应用选择部署的区域,并将该应用的安装包发送至区域。本申请实施例中并不限定应用部署装置为应用选择的区域的数量,可以为一个,也可以为多个。
应用部署装置通过区域内的区域应用部署装置指示区域应用部署装置在区域创建至少一个计算实例,在至少一个计算实例上运行多个应用进程。例如,应用部署装置可以向区域内的区域应用部署装置发送应用部署请求,该应用部署请求用于请求在该区域内创建计算实例、并运行安装包创建应用进程。该应用部署请求可以携带需创建计算实例的信息,如该计算实例的规格和数量,可选的,还可以包括每个计算实例上需创建的应用进程的数量。区域应用部署装置可以根据应用部署请求创建计算实例,并在计算实例上运行安装包创建多个应用进程。
通过上述方法,租户在需要部署应用时,仅需简单的提供应用的安装包以及部署应用需要的一些约束条件,应用部署装置就可以帮助应用完成该应用的部署,租户不需要在配置各个区域需要的资源,简化了应用部署的流程,提升了应用部署的自动化程度。
在一种可能的实施方式中,应用在完成部署后,应用部署装置可以处理该应用的会话。应用部署装置可以获取租户提供的会话处理策略,会话处理策略包括为每个会话分配处理应用进程的策略;租户在提供应用部署策略时,也可以同时提供会话处理策略。当应用部署装置接收该应用的访问用户发送的会话时,可以根据会话处理策略从多个应用进程中选择目标应用进程,该目标应用进程即为本申请实施例中为会话所选择的应用进程,应用部署装置通过该目标应用进程所在区域内的区域应用部署装置将会话发送至目标应用进程以处理会话。例如,应用部署装置可以指示该区域内的区域应用部署装置由该目标应用进程处理该会话,该区域应用部署装置可以在该指示下将会话发送至目标应用进程以处理会话。
需要说明的是,租户与访问用户存在一定的区别,该租户可以理解为需要租用资源部署应用的一方,访问用户可以理解为该应用的使用方。
通过上述方法,应用部署装置在完成应用部署后,还可以处理该应用的会话,保证该应用可以较好的为访问用户提供服务,保证了应用部署的可靠性以及有效性。
在一种可能的实施方式中,应用部署策略指示了部署应用的约束条件,可以理解为该应用部署策略从整体上提供了一些范围性的约束条件,这些约束条件可以不指定具体资源,例如,不指定计算实例的数量或者规格。该应用部署策略可以指示应用的部署成本范围或者指定某一个具体的部署成本值。在本申请实施例中,应用的部署成本指的是部署应用需创建的至少一个计算实例的部署成本,故而,应用的部署成本范围其实质上为该至少一个计算实例的部署成本范围。
通过上述方法,应用部署策略仅需指示应用的部署成本范围,简化租户侧的配置参数,使得应用部署的方式更加简单,简化应用部署步骤,提升应用部署效率。
在一种可能的实施方式中,应用部署策略还可以指示租户设置的区域的选择范围。租户可以根据实际需求设置的区域,以便应用部署装置在选择区域时能够更好贴合租户的需求。在本申请实施例中,租户设置的区域选择范围指的是该至少一个计算实例所在区域的选择范围。
在一种可能的实施方式中,会话处理策略指示了目标应用进程处理会话的时延范围。话的处理过程能够满足一定的时延范围,这样满足处理会话的基本需求,防止出现延迟,保证会话处理的及时性。
在一种可能的实施方式中,应用部署装置在根据应用部署策略选择部署应用的区域时,可以获取区域选择策略,区域选择策略是基于各个区域内物理资源的占用情况生成的,区域选择策略指示了选择各个区域以新创建计算实例的优先级,也即该区域选择策略中可以包括各个区域的优先级,区域的优先级描述了部署应用选择区域时该区域的优先程度;在为应用选择区域时,应用部署装置可以根据应用部署策略和区域选择策略选择部署应用的区域。
通过上述方法,基于各个区域当前物理资源占用情况选择符合部署要求的区域进行应用部署,保证应用能够在所选择区域内完成部署。
在一种可能的实施方式中,应用部署装置在根据会话处理策略从多个应用进程中为会话选择目标应用进程时,还可以获取会话分发策略,会话分发策略是基于各个区域内的应用进程的工作状态生成的,会话分发策略指示了选择各个应用进程以处理所述会话的优先级,会话分发策略可以包括各个应用进程的优先级,应用进程的优先级描述了为会话选择目标应用进程时该应用进程的优先程度;之后,再根据会话处理策略和会话分发策略为会话选择目标应用进程。
通过上述方法,基于当前各个应用进程的工作状态选择出处理该会话的目标应用进程,保证会话能够被高效执行。
在一种可能的实施方式中,应用部署装置还可以获取租户提供的区域弹性策略,区域弹性策略指示是否允许在区域内执行应用进程的弹性伸缩;向区域应用部署装置发送区域弹性策略;这样,区域内的区域应用部署装置在区域内基于区域弹性策略调整应用的应用进程的数量。
通过上述方法,区域弹性策略能够动态地改变应用进程的数量,提升资源的利用率。
在一种可能的实施方式中,区域弹性策略指示当区域内应用的应用进程的空闲比小于空闲阈值时,增加区域内应用的应用进程的数量,增加数量后区域内应用的应用进程的空闲比等于空闲阈值,区域内应用的应用进程的空闲比等于区域内处于空闲状态应用的应用进程的数量与区域内应用的应用进程的数量的比值。
通过上述方法,区域内的应用进程的空闲比能够接近或者等于租户设定的阈值,保证区域内存在空闲的可用应用进程,便于应对需要处理的会话任务激增的场景。
在一种可能的实施方式中,区域弹性策略指示当区域内应用的应用进程的空闲比大于空闲阈值时,减少区域内应用的应用进程的数量,减少数量后区域内应用的应用进程的空闲比等于空闲阈值,区域内应用的应用进程的空闲比等于区域内处于空闲状态应用的应用进程的数量与区域内应用的应用进程的数量的比值。
通过上述方法,区域内应用的应用进程的空闲比能够接近阈值或者等于阈值,保证区域内存在空闲的应用进程,这样便于应对会话数量激减的场景。
第二方面,本申请实施例还提供了一种应用部署系统,该应用部署系统用于执行上述第一方面以及第一方面的各个可能的实施方式中的方法,有益效果可以参见第一方面的描述此处不再赘述。该应用部署系统包括应用部署装置以及区域应用部署装置,应用部署装置以及区域应用部署装置所能执行的操作可以参见前述说明,此处不再赘述。
第三方面,本申请实施例还提供了一种应用部署装置,该应用部署装置具有实现上述第一方面的方法实例中应用部署装置的行为功能,有益效果可以参见第一方面的描述此处不再赘述。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,应用部署装置的结构中包括安装包管理模块、进程管理模块。可选的,该应用部署装置还包括会话管理模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请实施例还提供了一种区域应用部署装置,该区域应用部署装置具有实现上述第一方面的方法实例中区域应用部署装置的行为功能,有益效果可以参见第一方面的描述此处不再赘述。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,区域应用部署装置的结构中包括部署模块。可选的,该区域应用部署装置还包括区域会话管理模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第五方面,本申请实施例还提供了一种计算设备,该计算设备具有实现上述第一方面的方法实例中应用部署装置的行为的功能,有益效果可以参见第一方面的描述此处不再赘述。计算设备的结构中包括处理器和存储器,处理器被配置为支持应用部署装置执行上述第一方面方法中相应的功能。存储器与处理器耦合,其保存通信装置必要的程序指令和数据。通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第六方面,本申请实施例还提供了一种计算设备集群,该计算设备集群具有实现上述第一方面的方法实例中应用部署装置的行为的功能,有益效果可以参见第一方面的描述此处不再赘述。计算设备集群包括至少一个计算设备,任一计算设备的结构中包括处理器和存储器,任一计算设备中的处理器被配置为支持应用部署装置执行上述第一方面以及第一方面的各个可能的实施方式中的部分或全部功能。存储器与处理器耦合,其保存通信装置必要的程序指令和数据。通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第七方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
第八方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
第九方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
附图说明
图1为本申请提供的一种系统的架构示意图;
图2为本申请提供的一种应用部署装置的结构示意图;
图3为本申请提供的一种区域应用部署装置的结构示意图;
图4为本申请提供的一种应用部署方法示意图;
图5A为本申请提供的一种提供应用的安装包的界面示意图;
图5B为本申请提供的一种提供部署策略的界面示意图;
图6为本申请提供的一种实现区域内资源弹性的方法示意图;
图7为本申请提供的一种应用部署的变更方法示意图;
图8为本申请提供的一种变更部署策略的界面示意图;
图9为本申请提供的一种计算设备的结构示意图;
图10为本申请提供的一种计算设备集群的结构示意图。
具体实施方式
在对本申请实施例所提及的一种应用部署方法、系统以及设备说明之前,先对本申请实施例中涉及的一些概念进行说明:
1、应用的安装包。
应用的安装包中包括应用的可执行文件,该应用的可执行文件中包括了部署应用所必须的一些数据。例如,该应用的可执行代码,又例如,该应用的源代码。其中,可执行代码是可以直接被计算实例(也就处理器)运行的代码,源代码是需要经过编译处理的代码,无法被处理器直接识别,需要经过编译器处理后生成可执行代码,再由计算实例(也就处理器)运行。在本申请实施例中,若租户需要部署应用,如将应用部署到云端。用户可以将应用的安装包传输给应用部署装置100,以请求应用部署装置100部署该应用。因此,该应用的安装包可以理解为包括有可执行文件的代码文件。
2、应用进程(process)、进程队列。
在计算设备(或计算设备上的计算实例)中可以运行应用进程,该应用进程是通过运行应用的安装包中的可执行文件可形成的。应用的安装包中的可执行文件在运行之后,可以形成一个或多个应用进程。多个应用进程所能实现的功能相同,也即均能实现该应用的安装包的可执行代码所表征的功能。该多个应用进程的部署参数可能不同,该运行参数包括但不限于:应用进程的端口范围、应用进程所连接的网络和带宽、应用进程所在区域、应用进程所在的计算实例。
本申请实施例中,将应用进程的状态划分为两种,一种为空闲状态,空闲的应用进程上没有需要处理的会话。一种为忙碌状态,处于忙碌状态的应用进程上运行有会议任务或者存在待处理的会话任务。
另外,在本申请实施例中,区域内运行的应用进程还具备监控功能,该监控功能表现在两方面,一方面为对应用进程自身工作状态的监控。应用进程的工作状态包括但不限于:应用进程的状态(如忙碌、或空闲)、应用进程的会话状态(如应用进程已处理的会话数量、未处理的会话数量)。另一方面是对该应用进程所在的计算设备上物理资源的监控。例如,该应用进程可以监控该计算设备上处理器、内存、带宽等物理资源的占用情况。区域内的应用进程可以将监控所得到的自身状态、以及所在计算设备上物理资源的状态上报给其他装置。在本申请实施例中区域内的应用进程可以将监控所得到的自身状态、以及所在计算设备上物理资源的状态上报给全局资源装置,也可以将监控所得到的自身状态、以及所在计算设备上物理资源的状态上报给该区域内的区域应用部署装置200。
需要说明的是,应用的安装包可以看做是未运行的应用程序,是静态的。应用进程为运行中的应用程序,是动态的。
在本申请实施例中应用部署装置100在租户的触发下创建进程队列。该进程队列包括一个或多个应用进程。应用部署装置100根据租户提供的部署策略选择部署该应用的区域、确定每个区域内部署应用所需的计算实例。应用部署装置100可以将进程队列中一个或多个应用进程分布在选择的区域的计算实例上,在区域内的计算实例上运行应用进程。
在本申请实施例中存在两种应用进程,一种为应用部署装置100所维护的进程队列中的应用进程,另一种为区域内运行的应用进程。应用部署装置100所维护的进程队列中的应用进程可以理解为区域内运行的应用进程在应用部署装置100的映像。进程队列中的应用进程与区域内运行的应用进程存在一一对应的关系。进程队列中应用进程的运行参数与其对应的区域内运行的应用进程的运行参数一致。区别在于,进程队列中的应用进程是一种逻辑上的应用进程并不会处理会话,而区域内运行的应用进程会处理会话。应用部署装置100通过进程队列中的应用进程可以获取区域内运行的应用进程的一些运行参数。应用部署装置100可以向租户展示该进程队列中的应用进程,以便租户能够查看区域内运行的应用进程的一些运行参数,了解应用的运行情况。
3、会话(session)。
会话是指应用进程需要执行的任务。例如若该应用为游戏应用,该会话可以为一局游戏。若该应用为直播应用,该会话可以为一个直播任务。一个应用进程可以执行一个或多个会话。访问用户通过对该应用的操作(如创建该应用或创建该应用中的某一个功能)向应用部署装置100下发会话。
4、区域(region)。
在本申请实施例中引入“区域”的概念,区域是以计算设备的部署位置为角度划分形成的。将部署位置靠近的一个或多个计算设备或者将部署位置靠近的一个或多个数据中心(数据中心包括多个计算设备)划分为一个区域。本申请实施例并限定区域的划分方式。
在部署应用时,可以将应用分布在多个区域,也即在该多个区域中的计算设备上运行该应用,实现应用的多区域部署;也可以将该应用集中在一个区域,也即在该一个区域的计算设备上运行该应用,实现应用的单区域部署。
需要说明的是,应用部署在区域中指示的是应用部署在某个区域内的数据中心或该区域内的计算设备上。
5、部署策略。
该部署策略描述了部署应用需要遵循的一些策略,该部署策略可以包括下列信息的部分或全部:
应用部署策略、会话处理策略、区域弹性策略。
下面分别对这三种策略进行说明:
1)、应用部署策略。
应用部署策略描述了应用在部署时需要满足的一些条件,应用部署策略指示了部署应用区域的约束条件。该约束条件可以为应用的部署成本范围(也即所创建的计算实例的部署成本范围),还可以为该应用的区域的选择范围(也即所创建的计算实例所在区域的选择范围)。
其中,部署成本是指租户在部署应用时所限定的费用范围,例如,租户在部署应用时设定该应用的部署成本为500元/月。在部署应用时,为该应用选择的区域、以及为区域内为部署应用创建的计算实例均需要支付一定费用的。区域不同,支付的费用不同,所占用的计算实例的数量或规格不同,所支付的费用也不同。为此,租户可以通过部署策略来指示部署成本范围,以控制部署该应用所需花费的费用。
应用可以采用多区域部署或单区域部署的方式进行部署,也即该应用可以分布在多个区域或一个区域中。租户配置的应用部署策略中可以指示应用采用多区域部署或单区域部署,租户所配置的应用部署策略还可以指示优选的一个或多个区域,也即指示在选择部署应用的区域时区域的选择范围。例如,租户所配置的应用部署策略可以为不同区域配置优先等级,以使得该应用能够部署在优先等级较高的区域中。
2)、会话处理策略。
会话处理策略用于描述为该应用的会话分配处理该会话的应用进程的策略。例如该会话处理策略可以包括应用进程处理会话的时延范围(后续说明中简称为会话的时延范围)。
访问用户下发的会话可以转换为应用进程需要处理的会话,该会话的时延决定了访问用户获取服务响应的速度。会话时延越小,访问用户在下发会话后,可以越快获取响应。会话处理策略中可以设置会话需要满足的时延范围。
需要说明的是,会话处理策略指示会话的时延范围仅是举例说明,本申请实施例并不限定该会话处理策略所指示的内容,例如还可以约束不同类型的会话的处理优先级。
3)、区域弹性策略。
当应用部署在区域内,该区域内创建的应用的应用进程可用于处理会话,应用的应用进程的运行会占用所在计算实例的资源。当应用的应用进程长期处于空闲状态,会导致资源浪费,若适量减少应用的应用进程的数量,甚至减少计算实例的数量,能够有效避免资源浪费的情况。当该区域内的应用的应用进程均处于忙碌状态,说明有大量需要处理的会话;在这种情况下,应用的应用进程的数量较少,会影响会话的处理效率,若适当增加应用的应用进程的数量,可以有效提升会话的执行效率。此外,应用的应用进程队列中总是存在一些冗余的应用的应用进程,也适用于一些会话数量激增的场景。可见,区域内部灵活的调整应用的应用进程的数量能够有效兼顾资源的利用率以及会话的处理效率。
为此,在本申请实施例中允许租户配置区域弹性策略。区域弹性策略可以指示是否允许实现区域内资源弹性伸缩。所谓资源弹性伸缩是指区域内允许扩展或者缩减应用的应用进程。若区域弹性策略指示允许区域内实现资源弹性伸缩,该区域弹性策略还可以记录区域内实现资源弹性伸缩的方式,例如,该区域弹性策略可以描述扩充或缩减区域中应用的应用进程时需遵循的策略。区域弹性策略可以记录扩充区域中应用的应用进程的触发条件、扩充方式。区域弹性策略还可以记录缩减区域中应用的应用进程的触发条件、缩减方式。若区域弹性策略指示不允许区域内实现资源弹性伸缩,也即区域内不能够变更应用所占用的资源,也即不变更应用的应用进程的数量、计算实例的规格或数量。
例如,针对扩充区域中应用的应用进程,该区域弹性策略可以记录触发条件为区域内空闲的应用的应用进程的数量与该扩充后应用的应用进程的总数量的比例(空闲的应用的应用进程的数量与该扩充后应用的应用进程的总数量的比例可以简称为空闲比)大于第一值。扩充方式为以第一值扩充区域中的应用的应用进程,也即扩充后的应用的应用进程的空闲比等于第一值。类似的,针对缩减区域中进程队列,该区域弹性策略可以记录触发条件为空闲比大于第二值。缩减方式为以第二值缩减区域中的应用的应用进程,也即缩减后应用的应用进程的空闲比等于第二值。其中,第一值以及第二值可以理解为空闲比阈值。扩充应用的应用进程与缩减应用的应用进程可以配置不同的空闲比阈值,也可以配置相同的空闲比阈值。
6、计算实例(instance)。
在本申请实施例中,当应用部署在某一个区域时,需要占用该区域内的资源。在本申请实施例中以部署应用需占用的资源为计算实例为例进行说明,应用的应用进程运行在计算实例中。计算实例是指通过该计算设备中物理资源的虚拟化构建的独立运行环境。也就是说,该计算实例通过占用该计算设备中的物理资源形成相对独立的运行环境。同一个计算设备上的计算实例之间不会互相影响,是相对独立的。该计算实例可以为该计算设备上所创建的虚拟机(virtual machine,VM),也可以为计算设备上所创建的容器(container)。
计算实例的规格描述了计算实例所需占用的计算设备的物理资源,该计算设备的物理资源包括但不限于:处理器、内存、带宽。
需要说明的是,该计算实例也包括裸金属服务器,裸金属服务器可以看做一种“特殊”的计算实例。裸金属服务器为独立的服务器。
在本申请实施例中,计算实例能够监控自身的工作状态,计算实例的工作状态包括但不限于:计算实例运行中以使用的物理资源(如处理器的利用率、内存的占用率、带宽的占用率等)、计算实例上创建的应用的应用进程的数量。计算实例能够将所监控的计算实例的工作状态上报给其他装置。在本申请实施例中计算实例可以将所监控的工作状态上报给所在区域内的区域应用部署装置200,还可以将所监控的工作状态上报给全局资源装置。
7、客户端连接(client request)。
在一些应用中,会话是需要访问用户参与的,访问用户需要通过客户端连接到应用中的,一个会话可以允许一个或多个访问用户通过客户端连接到该会话中。例如,游戏类应用,游戏类应用中的一局游戏为一个会话,一局游戏通常需要一个或多个访问用户参与。
8、访问用户、租户。
在本申请实施例中租户指的是需要部署应用的一方,也即需要提供应用的安装包以及部署策略的一方,访问用户指的是通过访问该应用,发起会话的一方。
在本申请实施例中,租户可以与应用部署装置100之间进行交互,向该应用部署装置100发送部署应用所需的应用的安装包、并为该应用配置部署策略。该部署策略描述了部署该应用需遵循的规则,该部署策略包括一些范围性的描述信息,如部署应用的约束条件等。应用部署装置100在接收到该应用的安装包以及部署策略的情况下,基于该部署策略为该应用选择部署该应用的区域,并通过区域应用部署装置在该区域中为该应用创建计算实例,在该计算实例中运行安装包创建应用的应用进程。应用部署装置100在该区域部署了该应用之后,应用部署装置100还能够将访问用户发起的会话发送至区域,以请求该区域内的应用进程处理该会话。通过上述方式,租户在需要部署应用时,仅需要提供应用的安装包以及相应的部署策略,不需要自行选择部署在应用的区域,也不需要自行在该区域内申请支持应用部署的资源,而是由应用部署装置100基于该部署策略实现区域的选择以及资源的申请。租户不再需要感知底层资源,能够有效简化应用部署的流程,提升应用部署的效率。
如图1所示,为本申请实施例提供的一种应用部署系统结构示意图,该应用部署系统10包括应用部署装置100、以及至少一个区域应用部署装置200。任一区域应用部署装置200位于一个区域内,任一区域应用部署装置200执行所在区域内与应用有关的操作,如实现区域内的应用部署,以及处理分发到该区域内的会话。
应用部署装置100能够在租户的请求下部署应用,完成区域的选择以及与所选择的区域内的区域应用部署装置200配合实现该区域内应用的部署。
应用部署装置100能够获取租户提供的应用的安装包以及针对该应用的部署策略,根据该应用部署策略选择部署该应用的区域,以及确定在该区域内部署该应用所需的计算实例。在确定了该区域内部署该应用所需的计算实例后,应用部署装置100可以向该区域内的区域应用部署装置200发起应用部署请求,该应用部署请求中携带了应用的安装包、以及所需的计算实例的信息(如计算实例的数量以及规格)。
若应用部署装置100为该应用选择了多个区域,该应用部署装置100可以分别向该多个区域内的区域应用部署装置200发起应用部署请求。若应用部署装置100为该应用选了一个区域,该应用部署装置100可以向该区域内的区域应用部署装置200发起应用部署请求。
对于任一区域内的区域应用部署装置200,区域应用部署装置200负责该区域内的应用部署,以及区域内的会话处理。
当需要在该区域内部署应用时,区域应用部署装置200会接收到应用部署请求,在接收到该应用部署请求后,根据所需的计算实例的信息为该应用创建部署该应用所需的计算实例,在计算实例上运行安装包创建应用的应用进程,也即区域应用部署装置200可以指示该计算实例运行应用的安装包,在该区域内创建应用的应用进程。
应用部署装置100与区域内的区域应用部署装置200之间交互,完成在该区域内的应用部署。当应用部署在应用部署装置100为其所选择的各个区域内后,该应用即可面向应用的访问用户提供服务。应用部署装置100可以处理来自应用的访问用户的会话,根据会话管理策略为该待处理的会话选择处理该会话的应用进程,应用部署装置100可以将该会话发送到所选的应用进程所在区域的区域应用部署装置200,指示区域应用部署装置200由该应用进程处理该会话。
该区域内的区域应用部署装置200在接收到该会话后,将该会话传输给所选择的应用进程,该应用进程处理该会话。
可选的,该应用部署系统10中还包括全域部署决策装置400以及全域资源监控装置300。
全域资源监控装置300用于监控各个区域内的资源使用情况。对于任一区域,全域资源监控装置300所监控该区域内的资源使用情况包括但不限于:该区域内物理资源(如处理器、内存等)的占用情况、该区域内计算实例的工作状态、该区域内计算实例上运行的应用的应用进程的工作状态。
全域资源监控装置300可以将所监控的各个区域内的资源使用情况上报至全域部署决策装置400。
全域部署决策装置400在获取了全域资源监控装置300上报的各个区域内的资源使用情况,能够生成区域选择策略,也可以生成会话分发策略。
(1)、区域选择策略为部署应用提供各个区域的优先级。
全域部署决策装置400综合各个区域内物理资源(如处理器、内存等)的占用情况、和/或计算实例的工作状态,确定各个区域是否能够支持应用部署。例如,当某个区域内物理资源的占用情况低于阈值A,也即该区域内存在较多的物理资源处于空闲状态,那么当后续需要部署新的应用,该区域可以作为部署该应用的优先选项。又例如,当某个区域内物理资源的占用情况高于阈值A,也即该区域内存在较多的物理资源已被占用,那么当后续需要部署新的应用,该区域由于存在较少空闲的物理资源,尽量避免将该应用部署在该区域内。
全域部署决策装置400可以确定选择各个区域以新创建计算实例的优先级。任一个区域的优先级描述了在部署应用时该区域的优先程度。全域部署决策装置400将该各个区域的优先级作为区域选择策略提供给应用部署装置100。区域选择策略仅是从各个区域的物理资源的占用情况的角度形成的各个区域的优先级,也即区域选择策略并未考虑租户的需求。应用部署策略则是由租户配置的,符合租户需求的。
应用部署装置100在选择部署应用的区域时,除了考虑租户提供的应用部署策略,还可以结合全域部署决策装置400提供的区域选择策略,应用部署装置100在根据应用部署策略以及区域选择策略选择部署应用的区域时,以应用部署策略为主,以符合租户的需求。
(2)、会话分发策略为处理会话提供选择各个应用的应用进程以处理会话的优先级,该各个应用的应用进程可以为该应用的所有应用进程中的部分或全部。
全域部署决策装置400综合各个区域内计算实例的工作状态、各个区域内计算实例上运行的应用的应用进程的工作状态,确定哪些区域存在空闲的应用的应用进程或存在多少个空闲的应用的应用进程,哪些区域不存在空闲的应用的应用进程,以此可以确定后续接收到的会话能够被哪些应用的应用进程处理。例如,当某个区域存在空闲的应用的应用进程,且该应用的应用进程所在的计算实例上物理资源的使用率低于阈值B,也即该应用的应用进程能够有效处理后续创建的会话,那么当后续需要处理新的会话,该应用的应用进程可以作为该会话的优先选项,具备较高的优先级。又例如,当某个区域内的应用的应用进程处于忙碌状态,且该应用的应用进程所在的计算实例上物理资源的使用率等于阈值B,也即该应用的应用进程已经调用了所在计算实例能够调用的物理资源,无法较好的保证后续会话的处理效果,需尽量避免将该会话分发到该应用的应用进程上,该应用的应用进程的优先级较低。
全域部署决策装置400确定选择各个应用进程以处理会话的优先级。任一个应用进程的优先等级描述了为会话选择应用进程时该应用进程的优先程度。全域部署决策装置400将该各个应用进程的优先等级作为会话分发策略提供给应用部署装置100。区域选择策略仅是从各个区域的计算实例的工作状态、各个区域内计算实例上运行的应用进程的工作状态的角度形成的各个应用进程的优先级,也即会话分发方案并未考虑租户的需求。会话管理策略则是由租户配置的,符合租户需求的。
应用部署装置100在选择处理会话的应用进程时,除了考虑租户提供的会话管理策略,还可以结合全域部署决策装置400提供的会话分发策略,应用部署装置100在根据会话管理策略以及区域选择策略选择处理会话的应用进程时,以会话管理策略为主,以便应用进程的选择符合租户的需求。
可选的,该应用部署系统10还可以包括该应用部署在访问用户侧的客户端,该客户端用于与应用部署装置100进行交互。该客户端可以理解为该应用在访问用户侧的部署客户端软件,也可以理解为专用的客户端设备。例如,该客户端可以是安装在移动终端或个人电脑上的客户端软件,如社交软件、直播软件、游戏软件。又例如,该客户端可以为专用的网上缴费设备,应用的访问用户可以在该网上缴费设备上进行缴费。
应用的访问用户可以通过客户端与应用部署装置100建立连接,通过客户端向应用部署装置100发送会话,请求获取应用提供的服务。
另外,在本申请实施例中客户端还可以具备检测功能,该客户端可以检测客户端与应用部署装置100之间交互的时延,还可以检测该客户端所在的位置、该客户端与会话的连接状态(如处于连接状态或断开状态)等信息。客户端可以将所检测到的信息直接上报给应用部署装置100(或区域内的区域应用部署装置200),也可以通过处理会话的应用进程将所检测到的信息上报给应用部署装置100(或区域内的区域应用部署装置200)。这样,应用部署装置100根据该客户端上报的信息为访问用户发起的会话确定应用进程。例如,应用部署装置100可以根据客户端所在的位置为访问用户发起的会话选择靠近访问用户的区域内的应用进程,还可以根据客户端与应用部署装置100之间交互的时延及时变更处理该会话的应用进程。区域内的区域应用部署装置200根据该客户端上报的信息为访问用户发起的会话调整处理该会话的应用进程。例如,应用部署装置100可以根据客户端所在的位置为访问用户发起的会话选择靠近算力更强的计算实例上应用的应用进程或者选择空闲的应用的应用进程。
在本申请实施例中,允许租户配置区域弹性策略,在租户配置区域弹性策略的情况下,应用部署装置100可以向区域内的区域应用部署装置200下发该区域弹性策略或指示区域应用部署装置200是否允许实现区域内资源弹性伸缩。
下面具体到该应用部署系统10中的应用部署装置100以及区域应用部署装置200,对该应用部署系统10中的装置的结构进行说明:
如图2所示,为本申请实施例提供一种应用部署装置100的结构示意图,该应用部署装置100包括安装包管理模块110、进程管理模块120、以及会话管理模块130。
安装包管理模块110能够获取租户提供的应用的安装包,安装包管理模块110还能够实现应用的安装包的下发。当进程管理模块120在为该应用选择了区域后,安装包管理模块110可以将该应用的安装包下发到该区域,例如,该应用的安装包可以携带在该进程管理模块120向该区域内的管理装置发送应用部署请求中。又例如,安装包管理模块110可以单独将应用的安装包下发该区域内的区域应用部署装置200。
进程管理模块120在租户的触发下基于该应用的安装包创建进程队列,该进程队列中包括一个或多个应用的应用进程。进程管理模块120还可以接收租户配置的应用部署策略。
在实际应用中,租户所配置的部署策略中的一些内容实际上是针对应用的应用进程的,如部署该应用的区域的选择范围、会话的时延范围等。故而,进程管理模块120需要将应用部署在各个区域之前,先创建并维护一个进程队列,基于租户配置的应用部署策略确定该进程队列中的应用的应用进程具体需要部署哪些区域,或需要运行在哪种规格的计算实例上。
进程管理模块120在获取了该部署策略之后,可以基于该应用部署策略选择部署应用的区域、确定在该区域内部署该应用所需的计算实例。在本申请实施例中,进程管理模块120确定的部署该应用所需的计算实例是指部署所需的计算实例的数量以及计算实例的规格。
在选择了区域以及确定了该区域内部署该应用所需的计算实例。进程管理模块120可以向该区域内的区域应用部署装置200发送应用部署请求,该应用部署请求用于请求在该区域中部署该应用,该应用部署请求携带了部署应用所需的计算实例的信息,如计算实例的数量、计算实例的规格和数量。该区域内的区域应用部署装置200在接收到该应用部署请求后,按照该应用部署请求创建计算实例,并在该计算实例上创建应用的一个或多个应用进程,该一个或多个应用的应用进程是通过运行该应用的安装包创建的。
本请实施例并不限定该区域的数量,进程管理模块120可以为该应用选择多个区域,该多个区域共同部署该应用,实现该应用的多区域部署。该进程管理模块120也可以为该应用选择一个区域,实现该应用的单区域部署。
另外,若租户还配置了区域弹性策略,进程管理模块120在选择部署该应用的区域的情况下,进程管理模块120还可以向该区域内的区域应用部署装置200下发该区域弹性策略或指示区域应用部署装置200是否允许实现区域内资源弹性伸缩。
会话管理模块130负责会话层面的管理操作。会话管理模块130可以在应用部署装置100中创建会话队列,该会话队列用于承载会话,该会话可以是应用的访问用户发送的。
在完成各个区域内应用的部署后,该应用能够正常为该应用的访问用户提供服务。应用的访问用户通过与该应用的交互(这里访问用户与该应用交互是指访问用户通过客户端与该应用部署装置100的交互),应用的访问用户可以通过客户端发起会话。
该应用部署装置100中的会话管理模块130可以处理该会话,写入到会话管理模块130所维护的会话队列中,会话管理模块130可以按照该会话队列中会话的先后顺序依次处理各个会话。针对任一会话,若该应用部署在多个区域时,会话管理模块130可以为该会话选择应用进程,向该应用进程所在的区域内的区域应用部署装置200发送指示,以指示该区域中该应用进程处理该会话。
其中,安装包管理模块110、进程管理模块120、以及会话管理模块130均可以通过软件实现,或者可以通过硬件实现。
示例性的,接下来以安装包管理模块110为例,介绍安装包管理模块110的实现方式。类似的,进程管理模块120、以及会话管理模块130的实现方式可以参考安装包管理模块110的实现方式。
当通过软件实现时,安装包管理模块110可以是运行在计算设备上的应用程序或代码块。其中,计算设备可以是物理主机、虚拟机、容器等计算设备中的至少一种。进一步地,上述计算机设备可以是一台或者多台。例如,安装包管理模块110可以是运行在多个主机/虚拟机/容器上的应用程序。需要说明的是,用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中。用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。其中,通常一个region可以包括多个AZ。
同样,用于运行该应用程序的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个region可以包括多个VPC,而一个VPC中可以包括多个AZ。
当通过硬件实现时,安装包管理模块110中可以包括至少一个计算设备,如服务器等。或者,安装包管理模块110也可以是利用专用集成电路(application-specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
安装包管理模块110包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。安装包管理模块110包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。同样,安装包管理模块110包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,安装包管理模块110、进程管理模块120、以及会话管理模块130中的任一模块均可以用于执行应用部署方法中的部分或全部步骤。
如图3所示为本申请实施例提供的一种区域应用部署装置200的结构示意图,该区域应用部署装置200位于一个区域内,该区域应用部署装置200包括部署模块210、以及区域会话管理模块220。
部署模块210用于实现该区域内的应用部署。部署模块210可以获取应用部署装置100(也即进程管理模块120)发送的应用部署请求,获取应用的安装包,根据该应用部署请求为在该区域部署该应用创建所需的计算实例,还可以在该计算实例上运行该应用的安装包,创建应用的应用进程。
由于该区域内包括一些地理位置较为接近的一个或多个计算设备,部署模块210为部署该应用所创建的计算实例可以分布在该一个或多个计算设备上。例如,部署模块210可以为部署为应用在该一个或多个计算设备的部分或全部上创建计算实例,所创建的计算实例的总数以及规格符合应用部署请求中携带的计算实例的信息。
部署模块210还可以在计算实例上创建应用的一个或多个应用进程,每个应用进程是基于应用的安装包创建的。
此外,部署模块210还能够实现区域内的资源弹性伸缩。
当租户配置的部署策略中包括区域弹性策略时,应用部署装置100可以向该区域内的区域部署装置下发该区域弹性策略,以便该部署模块210基于该区域弹性策略实现区域内的资源弹性伸缩。
当租户配置的部署策略不包括区域弹性策略,或区域弹性策略仅指示允许区域内实现资源弹性伸缩但未明确指示资源弹性伸缩的方式时,部署模块210可以自行进行资源弹性伸缩。例如,部署模块210可以根据区域内物理资源的使用情况、各个计算实例的工作状态、以及各个应用进程的工作状态确定是否需要实现区域内的资源弹性伸缩,以及如何实现区域内的资源弹性伸缩(如确定扩充的应用的应用进程的数量或缩减的应用的应用进程的数量)。又例如,部署模块210可以根据区域内所处理的会话的数量确定是否需要实现区域内的资源弹性伸缩,以及如何实现区域内的资源弹性伸缩。
部署模块210在实现区域内的资源弹性伸缩的过程中,需要扩充应用的应用进程或者缩减应用的应用进程。在实际应用中,部署模块210可以直接管理区域内的计算实例,这样,部署模块210可以直接指示计算实例扩充应用的应用进程或缩减应用的应用进程。当然,部署模块210也可以间接管理区域内的计算实例。例如,区域内的计算实例设置有独立的管理装置,该管理装置用于管理区域内的计算实例,如创建计算实例、删除计算实例、指示计算实例创建或注销应用的应用进程等。部署模块210可以通过管理装置管理区域内的计算实例。部署装置可以向管理装置发送指示,指示管理装置扩充应用的应用进程或缩减应用的应用进程。管理装置可以在部署装置的指示下在计算实例上扩充应用的应用进程或缩减应用的应用进程。
区域会话管理模块220负责该区域内会话层面的管理操作。区域会话管理模块220可以从应用部署装置100(如会话管理模块130)获取待处理的会话,在区域内选择处理该会话的应用进程,将该会话发送至所选择的应用进程所在的计算实例中。
部署模块210、以及区域会话管理模块220均可以通过软件实现,或者可以通过硬件实现。部署模块210、以及区域会话管理模块220的实现方式与前述说明中会话管理模块130的实现方式类似,区别在于,部署模块210、以及区域会话管理模块220需要部署在同一区域内。
下面结合图4对本申请实施例提供的一种应用部署方法进行说明,图4所示的实施例中应用部署包括两个阶段,第一个阶段为区域内应用部署阶段,也即步骤401~步骤407,在该阶段中应用部署装置100选择部署该应用的区域、以及确定区域内部署应用的所需的计算实例,并触发该所选择的区域内创建计算实例、创建应用的应用进程。第二阶段为会话处理阶段,也即步骤408~步骤412,在该阶段中应用部署装置100为会话选择应用进程,将会发送至该应用进程所在区域内的区域应用部署装置200。区域内的区域应用部署装置200将该会话发送至应用进程所在的计算实例,指示该计算实例上的该应用进程处理该会话。下面对各个步骤进行说明。
步骤401:租户在需要部署应用时,向安装包管理模块110提供的应用的安装包,该应用的安装包中包括需要部署的应用的可执行代码。
安装包管理模块110在获取该应用的安装包后,可以为该应用制作应用镜像,应用镜像是指安装了应用的安装包的操作系统。当后续为部署该应用选择了区域后,可以将应用镜像下发所选择的区域,这样区域内不需自行制作应用镜像,以便在较短时间内在区域内部署该应用。当然,安装包管理模块110也可以不制作应用镜像,而是在为部署该应用选择了区域后,向所选择的区域直接下发应用的安装包,区域内自行制作应用镜像。
如图5A所示,为本申请实施例提供的一种界面示意图,安装包管理模块110可以通过部署租户侧的计算设备向租户提供传输应用的安装包的接口。图5A为该接口面向租户的显示界面,图5A仅是一种示例性的界面。在该界面中,允许租户上传应用的安装包,租户在选择了应用的安装包文件之后,可以点击上传,将该应用的安装包提供给安装包管理模块110。
步骤402:租户指示进程管理模块120创建进程队列,并向该进程管理模块120提供部署策略。
租户在将应用的安装包提供给安装包管理模块110时,租户可以指示进程管理模块120创建进程队列,进程管理模块120可以基于该应用的安装包创建应用的应用进程,形成包括有一个或多个应用进程的进程队列。
租户可以不指定该进程队列中应用的应用进程的数量,进程管理模块120所的创建进程队列应用的应用进程的数量等于初始值,进程管理模块120在执行后续步骤的过程中,可以动态的调整进程队列中的应用的应用进程的数量。
租户还可以向进程管理模块120提供部署策略,该部署策略中包括应用部署策略、会话管理策略以及区域弹性策略的部分或全部。例如,租户可以仅配置应用部署策略或会话管理策略。又例如,租户可以配置会话管理策略以及区域弹性策略。
本申请实施例中并不限定租户提供应用的安装包、租户指示创建进程队列以及提供部署策略的先后顺序,租户可以先提供应用的安装包、指示创建进程队列,之后再配置部署策略。租户也可以先提供应用的安装包,以及配置部署策略,之后再指示创建进程队列,租户也可以同时提供应用的安装包括、指示创建进程队列以及提供部署策略。这与进程管理模块120向租户提供的应用的安装包提供接口、指示创建进程队列接口以及提供的部署策略的接口的先后顺序有关。
如图5B所示,为本申请实施例提供的一种界面示意图,进程管理模块120可以通过部署租户侧的计算设备向租户提供配置部署策略的接口以及指示创建进程队列接口。图5B为该接口面向租户的显示界面,图5B仅是一种示例性的界面。在该界面中,租户可以配置应用部署策略、会话管理策略以及区域弹性策略。
在图5B所示的界面中,租户可以设置应用的部署成本范围、区域的选区域。还可以设置会话的时延范围。租户还可以勾选是否允许实现区域内资源弹性伸缩的选项,在选择允许实现区域内资源弹性伸缩的选项的情况下,租户可以选择或输入空闲比。
在图5B所示的界面中,提供了“创建进程队列”的按键,租户在配置了部署策略之后,可以点击该“创建进程队列”。这样,租户通过点击该按键同时指示创建进程队列以及提供部署策略。
步骤403:进程管理模块120根据部署策略选择部署该应用的区域,确定所选择区域内部署该应用所需的计算实例,如确定所选择的区域内部署该应用所需的计算实例的数量以及计算实例的规格。
可选的,进程管理模块120还可以确定每个计算实例上创建的应用的应用进程的数量。不同计算实例上运行创建不同数量的应用的应用进程。在一些场景中,进程管理模块120可以设置计算实例创建的应用的应用进程的最小数量。进程管理模块120在确定每个计算实例上创建的应用的应用进程的数量时,该数量可以等于最小数量。在本申请实施例中,允许进程管理模块120在应用在各个区域部署完成后,再动态的调整各个区域内允许的应用的应用进程的数量或各个计算实例上运行的应用的应用进程的数量。
若部署策略包括应用部署策略,进程管理模块120可以根据应用部署策略选择部署该应用的区域,以及区域内部署该应用所需的计算实例。
应用部署策略从应用的部署成本范围以及区域的选择范围中的部分或全部设置约束条件。
当应用部署策略约束部署成本范围,且要求部署成本较低,该应用可以部署在一些费用较低的区域。另外,为了进一步保证降低应用的部署成本,在这些区域内可以为该应用准备较少的资源,如创建少量的计算实例,或创建算力较弱的计算实例。
当应用部署策略约束了区域的选择范围,在选择部署应用的区域时需要符合该应用部署策略约束的区域。例如,该应用部署策略中要求该应用需要尽量部署在华北、东北这两个区域,华中区域次之。在选择部署应用的区域时应优先考虑华北、东北这两个区域是否能够支持应用的部署,只有在华北、东北这两个区域均无法支持应用的部署的情况下,再考虑华中区域。
应需理解的,在实际应用中,应用部署策略通常会在部署成本范围以及区域的选择范围中的多个方面进行相应的约束,进程管理模块120根据应用部署策略选择部署该应用的区域以及确定区域内部署应用所需的计算实例的方式也更加复杂。在实际应用中可以通过对历史的区域选择数据以及区域内部署应用所需的计算实例的相关数据进行大数据分析,将分析结果整合为一套区域选择以及资源确定的算法内置在进程管理模块120中。进程管理模块120可以将应用部署策略输入值该算法,进而获得区域、以及区域内部署应用所需的计算实例。上述选择部署该应用的区域以及确定区域内部署应用所需的计算实例的方式仅是示例性的说明,凡是能够通过应用部署策略确定区域的方式均适用于本申请实施例。
可选的,进程管理模块120还可以从全域部署决策装置400获取区域选择策略,进程管理模块120根据应用部署策略以及区域选择策略选择部署该应用的区域。由于区域选择策略能够提供一个或多个区域的优先级,便于进程管理模块120快速的选择部署应用的区域。且由于全局决策装置提供的区域选择策略是从各个区域的物理资源的占用情况所获得的,保证了最终选择的区域能够有效实现应用的部署。
若部署策略不包括应用部署策略,进程管理模块120可以根据预设的规则选择部署该应用的区域,以及区域内部署该应用所需的计算实例。例如,进程管理模块120以默认的部署成本选择部署应用的区域,进程管理模块120也可以分析该应用的安装包中可执行代码的类型以及体量估算部署该应用的所需的计算实例。
步骤404:进程管理模块120向所选择的区域内的区域应用部署装置200(也即区域应用部署装置200中的部署模块210)发送应用部署请求,该应用部署请求用于请求将应用部署在该区域内。该应用部署请求中携带该区域内部署该应用所需的计算实例的信息以及应用镜像。可选的,该应用部署请求中还可以携带每个计算实例上需创建的应用的应用进程的数量。当然,若初始部署该应用时,该计算实例上需创建的应用的应用进程的数量是进程管理模块120与部署模块210预先约定的数量(如约定以计算实例上需创建的应用的应用进程的数量等于计算实例上需创建的应用的应用进程的最小数量),该应用部署请求中还可以不携带每个计算实例上需创建的应用的应用进程的数量。
需要说明的是,在本申请实施例中,以进程管理模块120在应用部署请求中携带的应用镜像为例进行说明。该应用镜像是安装应用的安装包的操作系统,实质上是一种包含了应用的安装包的操作系统的代码文件。也就是说,进程管理模块120通过发送应用镜像的方式向区域下发了应用的安装包。在实际应用中,进程管理模块120在应用部署请求中可以直接携带应用的安装包,这种情况下,当该区域内的部署模块210在接收到应用部署请求后,需要自行制备应用镜像。另外,应用的安装包(或者应用镜像)以及应用内部署该应用所需的计算实例的信息携带在一个应用部署请求中,可以有效减少进程管理模块120与区域内的区域进程管理模块120的交互次数。事实上,应用的安装包(或者应用镜像)与也可以不携带在应用部署请求中,而是由进程管理模块120将应用的安装包或者应用镜像通过其他方式发送至区域内的区域进程管理模块120。
对于任一所选择的区域,该区域内的区域应用部署装置200的部署模块210可以执行步骤405~步骤406。
步骤405:部署模块210根据应用部署请求为部署该应用创建所需的计算实例。这里并不限定计算实例的数量,可以为一个,也可以为多个。
部署模块210可以指示所在区域内的计算设备为部署该应用创建计算实例,所创建的计算实例满足该应用内部署该应用所需的计算实例的相关信息。也即部署模块210需要创建符合该相关信息中记录的数量以及规格的计算实例。
部署模块210作为该区域内应用部署的模块,能够获知该区域内各个计算设备中物理资源的使用情况,部署模块210可以根据该区域内各个计算设备中物理资源的使用情况选择能够创建计算实例的一个或多个计算设备,在该一个或多个计算设备上创建计算实例。
步骤406:部署模块210在所创建的计算实例上创建应用的应用进程。
部署模块210将应用镜像发送至计算实例,指示计算实例安装该应用镜像,计算实例在部署装置的指示下安装该应用镜像。部署模块210还可以指示该计算实例上需要创建的应用的应用进程的数量。计算实例安装了该应用镜像后,在部署模块210的指示下创建应用的应用进程。
至此,应用已经在区域内完成部署。在完成区域内的部署后,该应用可以面向应用的访问用户提供服务。
步骤407:会话管理模块130获取应用的访问用户发送的会话。
应用的访问用户可以通过客户端与会话管理模块130建立连接应用的访问用户通过在客户端进行操作,发起会话。
例如,该应用为游戏应用,应用的访问用户可以在移动终端或个人电脑上安装该游戏应用的客户端软件。应用的访问用户通过操作该客户端软件登陆该游戏,组建一局游戏。当应用的访问用户登陆该游戏应用,组件游戏实质上是发起了一个会话,该会话用于请求该应用能够组建该游戏。
又例如,该应用为直播应用,应用的访问用户可以在移动终端或个人电脑上安装该直播应用的客户端软件。应用的访问用户通过操作该客户端软件发起一场直播。当应用的访问用户发起一场直播实质上是发起了一个会话,该会话用于请求该应用能够组建直播。
又例如,该应用为网上缴费应用,应用的访问用户可以在缴费专用的客户端设备上进行操作。应用的访问用户通过操作该客户端设备进行网上缴费。当应用的访问用户发起网上缴费实质上是发起了一个会话,该会话用于请求该应用进行网上缴费。
步骤408:会话管理模块130将该会话放置在会话队列中。
会话管理模块130会维护一个会话队列,该会话队列能够承载多个会话,会话管理模块130可以按照会话队列中会话的顺序依次处理各个会话。
步骤409:会话管理模块130从会话队列中提取待处理的会话,为该会话选择应用的应用进程,以处理该会话。
为了能够处理该会话,会话管理模块130需要将会话及时的下发到部署有该应用的区域内,当应用采用多区域部署的方式部署时,会话管理模块130需要从多个区域中为该会话选择一个区域内的一个应用进程。当应用采用单区域部署的方式部署时,会话管理模块130所选择的应用的应用进程即为该应用部署的区域内的应用的应用进程。
针对应用采用多区域部署的方式部署的情况,若部署策略中包括会话处理策略,应用部署装置100根据会话处理策略为该会话选择区域。
若会话处理策略设置了会话时延范围,且要求还会话具备较低的时延,会话管理模块130从多个区域中选择计算设备性能较强的区域内的应用的应用进程,或选择距离应用的访问用户较近的区域内的应用的应用进程。相反的,若会话处理策略所要求的时延较高,会话管理模块130为该会话选择计算设备性能适中的区域内的应用的应用进程,或距离应用的访问用户较远的区域内的应用的应用进程。
应需理解的,在实际应用中,会话处理策略通常会在会话时延范围等方面进行相应的约束,会话管理模块130根据会话处理策略为部署该会话选择应用进程的方式也更加复杂。在实际应用中可以通过对历史的会话的应用进程选择数据进行大数据分析,将分析结果整合为一套针对会话的应用进程选择的算法内置在会话管理模块130中。会话管理模块130可以将会话处理策略以及应用部署的多个区域输入至该算法,进而获得为该会话选择应用进程。上述为该会话选择应用进程的方式仅是示例性的说明,凡是能够通过会话管理策略确定应用进程的方式均适用于本申请实施例。
可选的,部署在应用的访问用户侧的客户端具备检测功能,会话管理模块130还可以获取客户端上报的信息,会话管理模块130在为会话选择应用进程时,还可以参考该客户端上报的信息。例如,该会话管理模块130可以根据该客户端上报的位置为该会话选择靠近该位置的区域。
可选的,会话管理模块130还可以从全局决策装置获取会话分发策略,根据会话处理策略和会话分发策略为该会话选择应用进程。由于会话分发策略能够提供各个应用的应用进程的优先级,便于会话管理模块130较高效选择出处理该会话的应用进程。且由于全局决策装置提供的会话分发策略是从各个区域的应用进程的工作状态获得的,保证了最终选择为会话所选择的应用进程能够及时处理该会话,确保会话的处理效率。
若部署策略中不包括会话处理策略,会话管理模块130自行为该会话选择应用进程。会话管理模块130可以根据该会话分发策略为该会话选择应用进程,会话管理模块130也可以根据该客户端上报的信息为该会话选择应用进程。会话管理模块130还可以根据应用部署策略中约束的时延为该会话选择应用进程。
步骤410:会话管理模块130将该会话发送到所选的应用进程所在的区域内的区域会话管理模块220,指示由所选择的应用进程处理该会话。
步骤411:区域会话管理模块220在接收到该会话后,将该会话发送至所选择应用进程所在的计算实例,指示该应用进程处理该会话。
步骤412:该计算实例在接收到该会话后,将该会话发送给该应用进程,指示该应用进程处理该会话。
在上述说明中可知,采用本申请实施例在部署应用时,若应用的访问用户所配置部署策略中包括区域弹性策略,则允许实现区域内的资源弹性伸缩。应用部署装置100(也即进程管理模块120)在获取了该部署策略后,若该部署策略中包括有区域弹性策略,应用部署装置100在部署应用的过程中将该区域弹性策略发送给部署该应用的区域内的区域应用部署装置200。本申请实施例并不限定应用部署装置100发送该区域弹性策略的方式以及时机。应用部署装置100可以将该区域弹性策略携带在应用部署请求。应用部署装置100也可以不通过应用部署请求发送给区域弹性策略,而是单独将该区域弹性策略发送给部署该应用的区域内的区域应用部署装置200。也即应用部署装置100可以采用其他消息承载该区域弹性策略。若区域弹性策略仅指示允许实现区域内的资源弹性伸缩(未指示实现区域内的资源弹性伸缩的方式),应用部署装置100可以不发送该区域弹性策略,而是采用发送指示消息的方式告知区域应用部署装置200允许实现区域内的资源弹性伸缩。若区域弹性策略仅指示不允许实现区域内的资源弹性伸缩,应用部署装置100采用发送指示消息的方式告知区域应用部署装置200不允许实现区域内的资源弹性伸缩。
下面对实现区域内资源弹性伸缩的方式进行说明:
如图6所示,为本申请实施例提供的一种区域内资源弹性伸缩的方式,该方法包括:
步骤601:区域内部署的应用的应用进程向该区域内的部署模块210上报所监控的状态信息,该状况信息包括应用的应用进程的工作状态。可选的,状态信息还包括该应用的应用进程所在的计算设备上物理资源的状态。
步骤602:部署模块210将各个应用的应用进程所上报的状态信息进行汇总,根据汇总后的状态信息以及区域弹性策略确定是否触发区域内资源弹性伸缩。
若区域弹性策略指示允许实现区域内的资源弹性伸缩,且指示了区域弹性策略描述的扩充或缩减区域中应用的应用进程的触发条件,部署模块210根据汇总后的状态信息确定当前该区域内应用的应用进程的状态是否满足区域弹性策略描述的扩充区域中应用的应用进程的触发条件,或是否满足区域弹性策略描述的缩减区域中应用的应用进程的触发条件。
若区域弹性策略指示允许实现区域内的资源弹性伸缩,但未指示区域弹性策略描述的扩充或缩减区域中应用的应用进程的触发条件,部署模块210可以根据汇总后的状态信息自行确定是否需要扩充区域中应用的应用进程,或确定是否需要缩减区域内的应用的应用进程。在这种情况下,部署模块210中可以预先设置的扩充区域中应用的应用进程的触发条件,或是缩减区域中应用的应用进程的触发条件。部署模块210根据汇总后的状态信息确定是否满足预先设置的扩充区域中应用的应用进程的触发条件,或确定是否满足预先设置的缩减区域中应用的应用进程的触发条件。
若当前该区域内应用的应用进程的状态满足扩充区域中应用的应用进程的触发条件,则执行步骤603~604。
若当前该区域内应用的应用进程的状态满足缩减区域中应用的应用进程的触发条件,则执行步骤605~606。
若当前该区域内应用的应用进程的状态既不满足扩充区域中应用的应用进程的触发条件,也不满足缩减区域中应用的应用进程的触发条件,则无需执行后续步骤,继续获取应用的应用进程所上报的状态信息,也即执行步骤601。
需要说明的是,若区域弹性策略指示不允许实现区域内的资源弹性伸缩,部署模块210无需执行步骤602~步骤606。
步骤603:在当前该区域内应用的应用进程的状态满足扩充区域中应用的应用进程的触发条件的情况下,部署模块210确定需要扩充的应用的应用进程的数量。
若区域弹性策略中描述了区域内应用的应用进程的空闲比阈值,若当前该区域内应用的应用进程的空闲比低于区域弹性策略所要求的空闲比阈值,说明当前该区域内较多的应用的应用进程处于忙碌状态,应当适当增加应用的应用进程的数量,以应对可能发生的会话数量激增的情况。部署模块210可以按照区域弹性策略所要求的空闲比确定需要扩充的应用的应用进程的数量,保证扩充后的应用的应用进程的空闲比能够满足区域弹性策略所要求的空闲比阈值。
例如,区域弹性策略中描述区域内应用的应用进程的空闲比阈值为4:10,当前该区域内部署了28个应用的应用进程,其中,25个应用的应用进程处于忙碌状态,当前该区域内的应用的应用进程的空闲比为3:28。部署模块210可以增加应用的应用进程的数量,以保证区域内应用的应用进程的空闲比能够满足4:10,如部署模块210可以确定增加14个应用的应用进程,这样该区域内的应用的应用进程的空闲比将接近于4:10。
需要说明的是,由于应用的应用进程的数量设置以及应用的应用进程的状态总是会变动,导致该区域内的应用的应用进程的空闲比并不一定能够严格的等于区域弹性策略所要求的空闲比。故而在实际应用中,允许该区域内的应用的应用进程的空闲比与区域弹性策略所要求的空闲比之间存在一定差值。
若区域弹性策略未描述区域内应用的应用进程的空闲比阈值,在这种情况下,部署模块210中可以预先设置区域内应用的应用进程的空闲比阈值,部署模块210可以按照预先设置的空闲比确定区域内扩充的应用的应用进程的数量。
需要说明的是,上述确定需要扩充应用的应用进程的数量的方式仅是举例,本申请实施例并不限定区域内的部署模块210确定需要扩充应用的应用进程的数量的方式。
步骤604:部署模块210指示计算实例创建指定数量的应用的应用进程。该指定数量为步骤603中所确定的数量。
该区域内,一个计算实例上能够运行的应用的应用进程的数量是有限的,也即该计算实例上物理资源的使用率存在一定的限制。若计算实例上运行较多的应用的应用进程,在这些应用的应用进程均处于忙碌状态的情况下,容易对计算实例的虚拟资源进行抢占,这样会降低应用的应用进程本身的执行效率。故而,需要扩充的应用的应用进程可以分布在多个计算实例上。在这种情况下,部署模块210需要将计算实例上运行的应用的应用进程的数量上报至应用部署装置100(也即进程管理模块120),以使得该应用部署装置100能够及时获知该应用的应用进程的分布情况。
若当前已创建的计算实例无法承担需要扩充的应用的应用进程,如已创建的计算实例上物理资源的使用率大于或等于使用率阈值,部署模块210也可以创建新的计算实例,以在该新的计算实例上扩充应用的应用进程。在这种情况下,部署模块210需要将新创建的计算实例的数量以及规格上报至应用部署装置100(也即进程管理模块120),以使得该应用部署装置100能够及时获知该应用的部署状态,也即明确该应该部署的区域以及每个区域内部署该应用所需的计算实例。
步骤605:在当前该区域内应用的应用进程的状态满足缩减区域中应用的应用进程的触发条件的情况下,部署模块210确定需要缩减的应用的应用进程的数量。
若区域弹性策略描述了区域内应用的应用进程的空闲比阈值,若当前该区域内应用的应用进程的空闲比大于区域弹性策略所要求的空闲比阈值,说明当前该区域内较多的应用的应用进程处于空闲状态,应当适当减少应用的应用进程的数量,以避免资源浪费。部署模块210可以按照区域弹性策略所要求的空闲比确定需要缩减的应用的应用进程的数量,保证缩减后的应用的应用进程的空闲比能够满足区域弹性策略所要求的空闲比阈值。
例如,区域弹性策略中描述区域内应用的应用进程的空闲比阈值为4:10,当前该区域内部署了28个应用的应用进程,其中,10个应用的应用进程处于忙碌状态,当前该区域内的应用的应用进程的空闲比为18:28。部署模块210可以减少应用的应用进程的数量,以保证区域内应用的应用进程的空闲比能够满足4:10,如部署模块210可以确定缩减11个应用的应用进程,这样该区域内的应用的应用进程的空闲比将接近于4:10。
需要说明的是,由于应用的应用进程的数量设置以及应用的应用进程的状态总是会变动,导致该区域内的应用的应用进程的空闲比并不一定能够严格的等于区域弹性策略所要求的空闲比。故而在实际应用中,允许该区域内的应用的应用进程的空闲比与区域弹性策略所要求的空闲比之间存在一定差值。
若区域弹性策略未描述区域内应用的应用进程的空闲比阈值,在这种情况下,部署模块210中可以预先设置区域内应用的应用进程的空闲比阈值,部署模块210可以按照预先设置的空闲比确定区域内缩减的应用的应用进程的数量。
需要说明的是,上述确定需要缩减应用的应用进程的数量的方式仅是举例,本申请实施例并不限定区域内的部署模块210确定需要缩减应用的应用进程的数量的方式。
步骤606:部署模块210指示计算实例注销指定数量的应用的应用进程。这里的指定数量为步骤605中所确定的数量。
部署模块210可以优先注销处于空闲状态的应用的应用进程。在这种情况下,部署模块210需要将计算实例上运行的应用的应用进程的数量上报至应用部署装置100(也即进程管理模块120),以使得该应用部署装置100能够及时获知该应用的应用进程的分布情况。
若该区域内的计算实例中其上运行的应用的应用进程均处于空闲的计算实例,部署模块210可以优先注销该计算实例上的所有应用的应用进程,并删除该计算实例。在这种情况下,部署模块210需要将删除的计算实例的数量以及规格上报至应用部署装置100(也即进程管理模块120),以使得该应用部署装置100能够及时获知该应用的部署状态,也即明确该应该部署的区域以及每个区域内部署该应用所需的计算实例。
在本申请实施例中,在应用完成各个区域内的部署后,允许应用的访问用户变更部署策略。若应用的访问用户变更了部署策略,应用部署装置100可以调整该应用的部署状态。
调整应用的部署状态包括但不限于:增加新的区域、删除已有的区域、变更已有区域内部署应用所需的计算实例。
下面结合附图以租户变更应用配置策略调整应用的部署的方式进行说明,参见图7,该方法包括:
步骤701:进程管理模块120获取租户变更后的应用部署策略。
进程管理模块120通过客户端向租户提供变更部署策略的接口,租户可以通过该接口变更部署策略中的部分或全部内容。
如图8所示,为本申请实施例提供的一种界面示意图,进程管理模块120可以通过部署租户侧的计算设备向租户提供变更部署策略的接口。图8为该接口面向租户的显示界面,图8仅是一种示例性的界面。在该界面中,租户可以变更应用部署策略、会话管理策略以及区域弹性策略中的部分或全部。
在图8所示的界面中,租户可以重新设置部署成本范围、区域的选择范围。还可以重新设置会话的时延范围。租户还可以重新选择是否允许实现区域内资源弹性伸缩的选项,在选择允许实现区域内资源弹性伸缩的选项的情况下,租户可以选择或输入空闲比。
在图8所示的界面中,租户可以点击“提交”的按键,租户可以将变更后的部署策略提供给进程管理模块120。
步骤702:进程管理模块120确定当前应用的部署状态,该部署状态包括但不限于应该所部署的区域、每个区域内部署该应用所占用的计算实例、以及每个计算实例上运行的应用的应用进程。
步骤703:进程管理模块120根据变更后的应用部署策略以及当前的应用的部署状态确定调整应用部署的方式,也即确定是否需要为该应用增加新的区域,或确定是否需要为应用删除已有的区域、或确定是否需要变更已有区域内部署应用所需的计算实例。
若变更后的应用部署策略所约束的部署成本低于变更前的应用部署策略所约束的部署成本,进程管理模块120可以为该应用删除一些费用较高的区域,或适当变更已有区域内部署应用所需的计算实例,如减少计算实例的数量。若变更后的应用部署策略所约束的部署成本高于变更前的应用部署策略所约束的部署成本,进程管理模块120可以为该应用增加新的区域,或适当变更已有区域内部署应用所需的计算实例,如增加计算实例的数量。
若变更后的应用部署策略指示区域不允许部署的第一目标区域,且当前应用部署的区域中包括该第一目标区域,进程管理模块120可以删除该第一目标区域。若变更后的应用部署策略指示区域允许部署的第二目标区域,在时延以及部署成本允许的情况下,进程管理模块120可以为该应用增加该第二目标区域。
应需理解的,在实际应用中,变更后的应用部署策略通常会在应用的部署成本范围以及区域的选择范围中的多个方面增加新的约束,进程管理模块120根据变更后的应用部署策略定调整应用部署的方式的情况也更加复杂。上述选择部署该应用的区域以及定区域内部署应用所需的计算实例的方式仅是示例性的说明,凡是能够通过变更后的应用部署策略确定区域的方式均适用于本申请实施例。
与步骤403类似,进程管理模块120还可以从全域部署决策装置400获取区域选择策略,进程管理模块120根据变更后的应用部署策略、当前应用的部署状态以及区域选择策略确定调整应用部署的方式。由于区域选择策略能够提供各个区域的优先级,便于进程管理模块120快速的确定调整应用部署的方式,确定增加或删除哪些区域。
步骤704:若进程管理模块120确定需要为应用增加新的区域,进程管理模块120可以根据变更后的应用部署策略、当前应用的部署状态确定新的区域内部署该应用所需的计算实例。可选的,进程管理模块120还可以确定计算实例上需要创建的应用的应用进程的数量。
可选的,进程管理模块120还可以从全域部署决策装置400获取区域选择策略,进程管理模块120可以根据变更后的应用部署策略、当前应用的部署状态以及区域选择策略为部署该应用选择新的区域。
步骤705:进程管理模块120向新的区域内的部署模块210发送应用部署请求,该应用部署请求用于请求将应用部署在该区域内。该应用部署请求中携带该区域内部署该应用所需的计算实例的信息以及应用镜像。可选的,应用部署请求中还可以携带计算实例上需要创建的应用的应用进程的数量。
新的区域内的部署模块210可以根据应用部署请求在该新的区域内部署该应用,部署模块210在该新的区域内部署该应用的方式与步骤405~步骤406类似,具体可以参见前述说明,此处不再赘述。
步骤706:若进程管理模块120确定需要为应用删除已有的区域,进程管理模块120可以根据变更后的应用部署策略、当前应用的部署状态确定需要删除的区域。
可选的,进程管理模块120还可以从全域部署决策装置400获取区域选择策略,进程管理模块120可以根据变更后的应用部署策略、当前应用的部署状态以及区域选择策略为部署该应用确定需要删除的区域。
步骤707:进程管理模块120向需要删除的区域内的部署模块210发送应用注销请求,该应用注销请求用于请求在该区域内注销该应用。
部署模块210在接收到应用注销请求后,可以停止该区域内的应用的应用进程,删除该应用的应用进程所在的计算实例。
需要说明的是,若需要删除的区域内的应用的应用进程仍存在未处理的会话,该区域内的区域进程管理模块120可以在会话处理完成后,再停止该区域内的应用的应用进程,删除该应用的应用进程所在的计算实例。该区域内的区域会话管理模块220也可以将未处理的会话发送给会话管理模块130,请求该会话管理模块130重新为未处理的会话选择区域,该区域内的区域会话管理模块220将未处理的会话发送给会话管理模块130后,部署模块210可以停止该区域内的应用的应用进程,删除该应用的应用进程所在的计算实例。
步骤708:若进程管理模块120确定需要变更已有区域内部署应用所需的计算实例,进程管理模块120根据变更后的应用部署策略、当前应用的部署状态确定已有区域内计算实例的变更方案。
变更已有区域内部署应用所需的计算实例的情况有很多种,例如,变更计算实例的数量,又例如,变更计算实例的规格。又例如,同时变更计算实例的数量以及规格。
计算实例的变更方案描述了变更计算实例的具体方法,如计算实例的变更方案可以记录变更计算实例的数量以及具体的数值,还可以记录计算实例变更前后的规格。
步骤709:进程管理模块120向已有区域内的部署模块210发送应用变更请求,该应用变更请求用于请求在该区域内变更该计算实例,该应用变更请求中携带有计算实例的变更方案。
部署模块210在接收到应用变更请求后,根据计算实例的变更方案改变该区域内计算实例的数量或规格。
图7所示的实施例中以租户变更了应用部署策略为了进行说明,若租户更新了会话处理策略,会话管理模块130在接收到更新后的会话处理策略,会话管理模块130可以根据该更新后的会话处理策略为后续接收到的会话选择应用进程。若租户更新了区域弹性策略,如更新前的区域弹性策略允许实现区域内资源弹性伸缩,更新后的区域弹性策略不允许实现区域内资源弹性伸缩,进程管理模块120可以指示告知区域内的部署模块210不再实现区域内资源弹性伸缩。如更新前的区域弹性策略不允许实现区域内资源弹性伸缩,更新后的区域弹性策略允许实现区域内资源弹性伸缩,进程管理模块120可以将更新后的区域弹性策略告知区域内的部署模块210,以使得区域内的部署模块210可以执行如图4所示的实施例。
本申请还提供一种计算设备900。如图9所示,计算设备900包括:总线901、处理器902、存储器903和通信接口904。处理器902、存储器903和通信接口904之间通过总线901通信。计算设备900可以是服务器或终端设备。应理解,本申请不限定计算设备900中的处理器、存储器的个数。
总线901可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线901可包括在计算设备900各个部件(例如,存储器903、处理器902、通信接口904)之间传送信息的通路。
处理器902可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器903可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器902还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器903中存储有可执行的程序代码,处理器902执行该可执行的程序代码以分别实现前述安装包管理模块110、进程管理模块120、会话管理模块130的功能,从而实现应用部署方法。也即,存储器903上存有用于执行应用部署方法的指令。
或者,存储器903中存储有可执行的代码,处理器902执行该可执行的代码以分别实现前述应用部署装置100的功能,从而实现应用部署方法。也即,存储器903上存有用于执行应用部署方法的指令。
通信接口904使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备900与其他设备或通信网络之间的通信。
应需理解的是,尽管未示出,如图9所示的计算设备也可以用于实现区域应用部署装置的功能。该计算设备中的存储器903中存储有可执行的程序代码,处理器902执行该可执行的程序代码以分别实现前述部署模块210、区域会话管理模块220的功能,从而实现前述应用部署方法中区域应用部署装置200执行的操作。也即,存储器903上存有用于执行应用部署方法中区域应用部署装置200执行的指令。
或者,存储器903中存储有可执行的代码,处理器902执行该可执行的代码以分别实现前述应用部署装置100的功能,从而实现应用部署方法区域应用部署装置200执行的操作。也即,存储器903上存有用于执行应用部署方法中区域应用部署装置200执行的指令。
通信接口904使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备900与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图10所示,所述计算设备集群包括至少一个计算设备900。计算设备集群中的一个或多个计算设备900中的存储器903中可以存有相同的用于执行应用部署方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备900的存储器903中也可以分别存有用于执行应用部署方法的部分指令。换言之,一个或多个计算设备900的组合可以共同执行用于执行应用部署方法的指令。
需要说明的是,计算设备集群中的不同的计算设备900中的存储器903可以存储不同的指令,分别用于执行应用部署装置100或区域应用部署装置200的部分功能。也即,不同的计算设备900中的存储器903存储的指令可以实现安装包管理模块110、进程管理模块120、会话管理模块130、部署模块210、区域会话管理模块220中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行应用部署方法,或应用部署方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行应用部署方法,或指示计算设备执行应用部署方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (23)
1.一种应用部署方法,其特征在于,所述方法包括:
获取租户提供的应用的安装包和应用部署策略,所述应用的安装包包括所述应用的可执行文件,所述应用部署策略包括为所述应用部署区域的约束条件;
根据所述应用部署策略从多个所述区域中选择部署所述应用的区域,将所述安装包发送至一个或多个所述区域;
在所述区域创建至少一个计算实例,在所述至少一个计算实例上运行所述安装包以创建所述应用的多个应用进程。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述租户提供的会话处理策略,所述会话处理策略包括为每个会话分配处理应用进程的约束条件;
接收所述应用的访问用户发送的会话;
根据所述会话处理策略从所述多个应用进程中选择目标应用进程,将所述会话分配至所述目标应用进程以处理所述会话。
3.如权利要求1所述的方法,其特征在于,所述应用部署策略包括所述至少一个计算实例的部署成本范围。
4.如权利要求3所述的方法,其特征在于,所述应用部署策略包括所述至少一个计算实例所在区域的选择范围。
5.如权利要求2所述的方法,其特征在于,所述会话处理策略包括所述目标应用进程处理所述会话的时延范围。
6.如权利要求1~5任一项所述的方法,其特征在于,所述根据所述应用部署策略选择部署所述应用的区域,包括:
获取区域选择策略,所述区域选择策略是基于各个区域内物理资源的占用情况生成的,所述区域选择策略指示选择各个区域以新创建计算实例的优先级;
根据所述应用部署策略和所述区域选择策略选择部署所述应用的区域。
7.如权利要求2~6任一项所述的方法,其特征在于,所述根据所述会话处理策略从所述多个应用进程中为所述会话选择目标应用进程,包括:
获取会话分发策略,所述会话分发策略是基于所述应用的各个应用进程的工作状态生成的,所述会话分发策略指示选择各个应用进程以处理所述会话的优先级;
根据所述会话处理策略和所述会话分发策略为所述会话选择所述目标应用进程。
8.如权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
获取所述租户提供的区域弹性策略,所述区域弹性策略指示是否允许在所述区域内执行应用进程的弹性伸缩;
在所述区域内基于所述区域弹性策略调整所述应用的应用进程的数量。
9.如权利要求8所述的方法,其特征在于,所述区域弹性策略指示当所述区域内所述应用的应用进程的空闲比小于空闲阈值时,增加所述区域内所述应用的应用进程的数量,所述区域内所述应用的应用进程的空闲比等于所述区域内处于空闲状态的所述应用的应用进程的数量与所述区域内所述应用的总应用进程的数量的比值。
10.如权利要求6所述的方法,其特征在于,所述区域弹性策略指示当所述区域内所述应用的应用进程的空闲比大于空闲阈值时,减少所述区域内所述应用的应用进程的数量,所述区域内所述应用的应用进程的空闲比等于所述区域内处于空闲状态的所述应用的应用进程的数量与所述区域内所述应用的总应用进程的数量的比值。
11.一种应用部署系统,其特征在于,所述应用部署系统包括应用部署装置以及区域应用部署装置;
所述应用部署装置,用于获取租户提供的应用的安装包和应用部署策略,所述应用的安装包包括所述应用的可执行文件,所述应用部署策略指示了部署所述应用的约束条件,根据所述应用部署策略选择部署所述应用的区域,向所述区域应用部署装置发送应用部署请求,所述应用部署请求用于请求在所述区域内创建的计算实例、并运行所述安装包创建应用进程;
所述区域应用部署装置,用于根据所述应用部署请求在所述区域创建至少一个计算实例,在所述至少一个计算实例上运行所述安装包以创建所述应用的多个应用进程。
12.如权利要求11所述的系统,其特征在于,
所述应用部署装置,还用于获取所述租户提供的会话处理策略,所述会话处理策略包括为每个会话分配处理应用进程的策略,接收所述应用的访问用户发送的会话,根据所述会话处理策略从所述多个应用进程中选择目标应用进程,指示所述区域应用部署装置由所述目标应用处理所述会话;
所述区域应用部署装置,用于根据所述指示将所述会话分配至所述目标应用进程以处理所述会话。
13.如权利要求11所述的系统,其特征在于,所述应用部署策略包括所述至少一个计算实例的部署成本范围。
14.如权利要求13所述的系统,其特征在于,所述应用部署策略包括所述至少一个计算实例所在区域的选择范围。
15.如权利要求12所述的系统,其特征在于,所述会话处理策略包括所述目标应用进程处理所述会话的时延范围。
16.如权利要求11~15任一项所述的系统,其特征在于,所述应用部署装置根据所述应用部署策略选择部署所述应用的区域,用于:
获取区域选择策略,所述区域选择策略是基于各个区域内物理资源的占用情况生成的,所述区域选择策略指示选择各个区域以新创建计算实例的优先级;
根据所述应用部署策略和所述区域选择策略选择部署所述应用的区域。
17.如权利要求12~16任一项所述的系统,其特征在于,所述应用部署装置根据所述会话处理策略从所述多个应用进程中为所述会话选择目标应用进程,用于:
获取会话分发策略,所述会话分发策略是基于所述应用的各个应用进程的工作状态生成的,所述会话分发策略指示选择各个应用进程以处理所述会话的优先级;
根据所述会话处理策略和所述会话分发策略为所述会话选择所述目标应用进程。
18.如权利要求11~15任一项所述的系统,其特征在于,
所述应用部署装置,还用于获取所述租户提供的区域弹性策略,所述区域弹性策略指示是否允许在所述区域内执行应用进程的弹性伸缩,向所述应用部署装置发送所述区域应用部署装置;
所述区域应用部署装置,用于在所述区域内基于所述区域弹性策略调整所述应用的应用进程的数量。
19.如权利要求18所述的系统,其特征在于,所述区域弹性策略指示当所述区域内所述应用的应用进程的空闲比小于空闲阈值时,增加所述区域内所述应用的应用进程的数量,所述区域内所述应用的应用进程的空闲比等于所述区域内处于空闲状态的所述应用的应用进程的数量与所述区域内所述应用的总应用进程的数量的比值。
20.如权利要求16所述的系统,其特征在于,所述区域弹性策略指示当所述区域内所述应用的应用进程的空闲比大于空闲阈值时,减少所述区域内所述应用的应用进程的数量,所述区域内所述应用的应用进程的空闲比等于所述区域内处于空闲状态的所述应用的应用进程的数量与所述区域内所述应用的总应用进程的数量的比值。
21.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1~10任一项所述的方法。
22.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1~10任一项所述的方法。
23.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1~10任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210912556.2A CN117519958A (zh) | 2022-07-30 | 2022-07-30 | 一种应用部署方法、系统及设备 |
PCT/CN2023/081267 WO2024027160A1 (zh) | 2022-07-30 | 2023-03-14 | 一种应用部署方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210912556.2A CN117519958A (zh) | 2022-07-30 | 2022-07-30 | 一种应用部署方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117519958A true CN117519958A (zh) | 2024-02-06 |
Family
ID=89748303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210912556.2A Pending CN117519958A (zh) | 2022-07-30 | 2022-07-30 | 一种应用部署方法、系统及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117519958A (zh) |
WO (1) | WO2024027160A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303212A1 (en) * | 2018-03-30 | 2019-10-03 | Cisco Technology, Inc. | Method for managing application configuration state with cloud based application management techniques |
CN112087312B (zh) * | 2019-06-15 | 2023-02-03 | 华为云计算技术有限公司 | 一种提供边缘服务的方法、装置和设备 |
US11240345B2 (en) * | 2019-06-19 | 2022-02-01 | Hewlett Packard Enterprise Development Lp | Method for deploying an application workload on a cluster |
CN111045790A (zh) * | 2019-12-13 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 虚拟机部署方法及装置 |
CN112698847A (zh) * | 2020-12-31 | 2021-04-23 | 江苏视博云信息技术有限公司 | 一种云应用的部署方法、装置及系统 |
CN114710488B (zh) * | 2022-03-29 | 2024-05-03 | 浪潮云信息技术股份公司 | 实现弹性伸缩跨可用区伸缩的方法、装置、设备及介质 |
-
2022
- 2022-07-30 CN CN202210912556.2A patent/CN117519958A/zh active Pending
-
2023
- 2023-03-14 WO PCT/CN2023/081267 patent/WO2024027160A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024027160A1 (zh) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10985989B2 (en) | Cross layer signaling for network resource scaling | |
US9977691B2 (en) | Adjusting variable limit on concurrent code executions based on communication between frontends | |
CN109729143B (zh) | 在终端设备上部署基于网络的云平台 | |
US10102040B2 (en) | Adjusting variable limit on concurrent code executions | |
EP3637733B1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
US9703598B2 (en) | Managing virtual machine migration | |
US9720727B1 (en) | Managing virtual machine migration | |
US10684878B1 (en) | Virtual machine management | |
US11252220B2 (en) | Distributed code execution involving a serverless computing infrastructure | |
CN107209682B (zh) | 资源调整的自动管理 | |
US9250863B1 (en) | Managing virtual machine migration | |
CN105979007B (zh) | 加速资源处理方法、装置及网络功能虚拟化系统 | |
EP2972855B1 (en) | Automatic configuration of external services based upon network activity | |
US9466036B1 (en) | Automated reconfiguration of shared network resources | |
US10609118B2 (en) | Adaptive communication control device | |
CN111522661A (zh) | 一种微服务管理系统、部署方法及相关设备 | |
US11563636B1 (en) | Dynamic management of network policies between microservices within a service mesh | |
US11249790B1 (en) | Scheduling usage of oversubscribed computing resources | |
US11782775B2 (en) | Dynamic management of network policies between microservices within a service mesh | |
CN108268211A (zh) | 一种数据处理方法及装置 | |
CN111800441B (zh) | 数据处理方法、系统、装置、用户端服务器、用户端及管控服务器 | |
US11573839B1 (en) | Dynamic scheduling for live migration between cloud regions and edge locations | |
CN117519958A (zh) | 一种应用部署方法、系统及设备 | |
CN113760549A (zh) | 一种pod部署方法及装置 | |
US11972287B2 (en) | Data transfer prioritization for services in a service chain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |