CN108270726A - 应用实例部署方法及装置 - Google Patents
应用实例部署方法及装置 Download PDFInfo
- Publication number
- CN108270726A CN108270726A CN201611259475.8A CN201611259475A CN108270726A CN 108270726 A CN108270726 A CN 108270726A CN 201611259475 A CN201611259475 A CN 201611259475A CN 108270726 A CN108270726 A CN 108270726A
- Authority
- CN
- China
- Prior art keywords
- application example
- application
- service
- redundancy
- intended
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种应用实例部署方法及装置,属于计算机技术领域。所述方法包括接收客户端发送的应用编排文件,应用编排文件包括:冗余模型,冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,应用编排文件还包括:备应用实例的部署信息和集群相关配置信息;根据备应用实例的部署信息部署备应用实例;获取提供目标应用服务的应用实例的实例标识;根据冗余模型、集群相关配置信息和提供目标应用服务的应用实例的实例标识,对提供目标应用服务的应用实例进行应用调度和资源管理。本申请解决了现有技术无法向用户提供高可靠性的应用服务的问题。实现了高可靠性和高可用性。本申请用于云平台上应用实例的部署。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种应用实例部署方法及装置。
背景技术
应用编排是云平台的重要部分,通过定义应用组件、对资源的需求、组件之间的关系(拓扑)等,完整地描述应用本身以及所依赖的资源,最后交由云平台完成部署。
可靠性是指产品在规定的条件下和规定的时间内,完成规定任务的概率,相应的量化指标为周期内产品无故障运行的时间。而向用户提供应用服务时,为了保证提供应用服务的系统的可靠性,通常采用具有冗余模型的云平台为用户提供应用服务。
其中,一个应用的冗余模型通常体现在该应用对应部署有主应用实例和备应用实例,主应用实例用于共同向用户提供服务,而备应用实例是在任意一个主应用实例出现故障时,接替出现故障的主应用实例继续为应用提供服务,从而保证应用服务的可靠性。
而在云平台对应用进行部署的过程中,需要先创建网络环境,再在创建的网络环境中为每个应用实例配置相关的参数,例如添加路由条目等操作,保证应用实例之间可以进行通信,从而完成了对系统的部署。
工作人员可以采用相应的集群软件定义冗余模型,并对至少一个主应用实例和至少一个备应用实例进行设置,从而实现相应应用实例的部署,在后续对应用的冗余模型进行管理和维护的过程中,也需要人工采用集群软件执行。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
目前的冗余模型均需要人工采用集群软件来定义和维护,而集群软件的操作比较麻烦,应用部署和维护效率较低,无法向用户提供高可靠性的应用服务。
发明内容
为了解决现有技术无法向用户提供高可靠性的应用服务的问题,本发明实施例提供了一种应用实例部署方法及装置。所述技术方案如下:
第一方面,提供一种应用实例部署方法,应用于编排引擎,所述方法包括:
接收客户端发送的应用编排文件,所述应用编排文件包括:冗余模型,所述冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,所述应用编排文件还包括:所述备应用实例的部署信息和集群相关配置信息;
根据所述备应用实例的部署信息部署所述备应用实例;
获取提供所述目标应用服务的应用实例的实例标识;
根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
可选的,所述应用编排文件还包括:应用模型和所述主应用实例的部署信息,在所述接收客户端发送的应用编排文件之后,所述方法还包括:
根据所述应用模型和所述主应用实例的部署信息,部署所述主应用实例;
所述获取提供所述目标应用服务的应用实例的实例标识,包括:
在所述主应用实例和所述备应用实例均部署完成后,获取在应用实例部署过程中为提供所述目标应用服务的应用实例分配的的实例标识。
可选的,所述应用编排文件还包括所述提供所述目标应用服务的应用实例的实例标识;
所述获取提供所述目标应用服务的应用实例的实例标识,包括:从所述应用编排文件中提取提供所述目标应用服务的应用实例的实例标识。
可选的,所述根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理,包括:
根据提供所述目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;
当存在应用实例出现故障时,根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
可选的,所述根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理,包括:
一方面,当第一主应用实例出现故障时,将所述第一主应用实例中的集群资源迁移至第一备应用实例中,所述第一主应用实例为所述提供所述目标应用服务的应用实例中的任一主应用实例,所述第一备应用实例为所述提供所述目标应用服务的应用实例中的任一备应用实例。
需要说明的是,在将第一主应用实例中的集群资源迁移至第一备应用实例之后,相当于一个备应用实例升级成为主应用实例,也即是有一个备应用实例被占用,此时冗余度降低,可选的,冗余模型适配器可以控制底层管理模块为该目标应用服务部署第二备应用实例。该第二备应用实例可以保证冗余模型的冗余度以及系统的高可用性。
另一方面,当第一备应用实例出现故障时,为所述目标应用服务部署第二备应用实例。
可选的,所述根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理,还包括:
在将所述第一主应用实例中的集群资源迁移至所述第一备应用实例之后,当所述第一主应用实例复原,判断是否需要进行资源迁回;
当确定需要进行资源迁回时,将所述第一备应用实例中的集群资源迁移至所述第一主应用实例中。
可选的,所述检测每个应用实例是否出现故障,包括:
周期性监测每个应用实例的健康状态;
根据所述每个应用实例的健康状态,确定每个应用实例是否出现故障。
可选的,所述集群资源包括:虚拟网际协议IP地址和存储卷。
可选的,所述集群资源包括:虚拟网际协议IP地址和存储卷,可选的,该集群资源还可以包括:脚本、分布式块设备(英文:Distributed Replicated Block Device;简称:DRDB)和文件系统等中的至少一种。
所述冗余模型的类型包括无冗余、N主M备冗余、N路冗余、主备冗余和N路活跃冗余中的至少一种。
可选的,提供所述目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
第二方面,提供一种应用实例部署装置,应用于编排引擎,所述装置包括:
接收模块,用于接收客户端发送的应用编排文件,所述应用编排文件包括:冗余模型,所述冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,所述应用编排文件还包括:所述备应用实例的部署信息和集群相关配置信息;
第一部署模块,用于根据所述备应用实例的部署信息部署所述备应用实例;
获取模块,用于获取提供所述目标应用服务的应用实例的实例标识;
管理模块,用于根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
可选的,所述应用编排文件还包括:应用模型和所述主应用实例的部署信息,在所述接收客户端发送的应用编排文件之后,所述装置还包括:
第二部署模块,用于根据所述应用模型和所述主应用实例的部署信息,部署所述主应用实例;
所述获取模块,还用于在所述主应用实例和所述备应用实例均部署完成后,获取在应用实例部署过程中为提供所述目标应用服务的应用实例分配的的实例标识。
可选的,所述应用编排文件还包括所述提供所述目标应用服务的应用实例的实例标识;
所述获取模块,还用于从所述应用编排文件中提取提供所述目标应用服务的应用实例的实例标识。
可选的,管理模块,包括:
检测子模块,用于根据提供所述目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;
管理子模块,用于当存在应用实例出现故障时,根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
可选的,所述管理子模块,具体用于:
将所述第一主应用实例中的集群资源迁移至第一备应用实例中,所述第一主应用实例为所述提供所述目标应用服务的应用实例中的任一主应用实例,所述第一备应用实例为所述提供所述目标应用服务的应用实例中的任一备应用实例;
或者,为所述目标应用服务部署第二备应用实例。
可选的,所述管理子模块,还用于在将所述第一主应用实例中的集群资源迁移至所述第一备应用实例之后,当所述第一主应用实例复原,判断是否需要进行资源迁回,当确定需要进行资源迁回时,将所述第一备应用实例中的集群资源迁移至所述第一主应用实例中。
可选的,所述检测子模块,用于周期性监测每个应用实例的健康状态,根据所述每个应用实例的健康状态,确定每个应用实例是否出现故障。
可选的,所述集群资源包括:虚拟网际协议IP地址和存储卷,可选的,该集群资源还可以包括:脚本、分布式块设备DRDB和文件系统等中的至少一种。
可选的,所述冗余模型的类型包括无冗余、N主M备冗余、N路冗余、主备冗余和N路活跃冗余中的任意一种。
可选的,提供所述目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
第三方面,提供一种编排引擎,该编排引擎包括:应用解析模块、应用控制器、冗余模型适配器和底层管理模块,其中,应用解析模块能够与客户端进行通信,且能够与应用控制器和冗余模型适配器分别进行通信,应用控制器和冗余模型适配器均和底层管理模块通信。
应用解析模块用于接收客户端发送的应用编排文件,所述应用编排文件包括:冗余模型,所述冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,所述应用编排文件还包括:所述备应用实例的部署信息和集群相关配置信息,所述应用编排文件还包括:应用模型和所述主应用实例的部署信息;集群相关配置信息是用于应用调度和资源管理的信息,例如,包括生命周期,应用实例的故障检测规则,集群资源迁移规则等等。
冗余模型适配器用于根据所述备应用实例的部署信息部署所述备应用实例;获取提供所述目标应用服务的应用实例的实例标识;根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理。可选的,冗余模型适配器可以支持多种冗余模型,例如无冗余、N主M备冗余、N路冗余、主备冗余或N路活跃冗余等冗余模型。
冗余模型适配器可以支持多种资源适配器,如Kubernetes adapter(一种开源的管理容器应用的系统的适配器)或者Docker adapter(一种开源的应用容器引擎的适配器),用于将备应用实例的部署信息通过相应的资源适配器传输至底层管理模块,由底层管理模块根据所述备应用实例的部署信息部署所述备应用实例。该资源适配模块根据可以根据具体的目标应用服务来提供相应的资源适配器,以实现冗余模型适配器对底层管理模块的控制。
应用控制器用于根据所述应用模型和所述主应用实例的部署信息,部署所述主应用实例。可选的,上述提供所述目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
可选的,冗余模型适配器获取提供所述目标应用服务的应用实例的实例标识的方式通常有两种,一种是为在所述主应用实例和所述备应用实例均部署完成后,获取在应用实例部署过程中为提供所述目标应用服务的应用实例分配的的实例标识。另一种是,所述应用编排文件中包括上述提供所述目标应用服务的应用实例的实例标识,冗余模型适配器从所述应用编排文件中提取提供所述目标应用服务的应用实例的实例标识即可。
进一步的,在所述目标应用服务的应用实例部署完成后,底层管理模块可以根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
底层管理模块通常用于通过多个不同层次的控制器在平台即服务(英文:Platform-as-a-Service;简称:PaaS)平台管理的集群上创建和调度应用实例,并且根据管理计划来维护应用实例在整个生命周期内的正确状态。同时通过异构基础设施即服务(英文:Infrastructure as a Service;简称:IaaS)层接口对接不同的IaaS层,采用自动化的方式创建和配置集群,这些集群组成了租户的资源池,供租户来托管其应用和服务。调度和资源管理系统作为PaaS平台中的底层插座,既负责PaaS平台本身子系统的生命周期管理,也可为应用开发者提供一个简单易用、高效稳定的资源调度管理平台。
在本发明实施例中,底层管理模块可以根据提供所述目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;当存在应用实例出现故障时,根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
具体的,当第一主应用实例出现故障时,将所述第一主应用实例中的集群资源迁移至第一备应用实例中,所述第一主应用实例为所述提供所述目标应用服务的应用实例中的任一主应用实例,所述第一备应用实例为所述提供所述目标应用服务的应用实例中的备应用实例;或者,当第一备应用实例出现故障时,为所述目标应用服务部署第二备应用实例。
可选的,在将所述第一主应用实例中的集群资源迁移至所述第一备应用实例之后,当所述第一主应用实例复原,底层管理模块004还可以判断是否需要进行资源迁回;当确定需要进行资源迁回时,将所述第一备应用实例中的集群资源迁移至所述第一主应用实例中。
实际应用中,底层管理模块可以周期性监测每个应用实例的健康状态;根据所述每个应用实例的健康状态,确定每个应用实例是否出现故障。
在本发明实施例中,上述集群资源可以包括:虚拟网际协议(英文:InternetProtocol;简称:IP)地址、存储卷、脚本、DRDB和文件系统等。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的应用实例部署方法及装置,通过将冗余模型作为应用的一种属性,由编排引擎自动维护目标应用服务的冗余模型,无需人工采用集群软件执行备应用实例的部署,并且,目标应用服务的应用调度和资源管理也是由编排引擎自主维护,无需人工采用集群软件参与,因此,操作简单,应用部署与维护的效率较高,能够为用户提供可靠的应用服务,实现了高可靠性和高可用性。
附图说明
图1是本发明实施例提供的一种应用实例部署方法所涉及的实施环境示意图;
图2-1是本发明实施例提供的一种应用实例部署方法的方法流程图;
图2-2是本发明实施例提供的一种冗余模型适配器的框图;
图3是本发明实施例提供的另一种应用实例部署方法的所涉及的实施环境示意图;
图4是根据一示例性实施例示出的一种应用实例部署装置的框图。
图5是根据一示例性实施例示出的另一种应用实例部署装置的框图。
图6是根据一示例性实施例示出的又一种应用实例部署装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于读者理解,首先对本发明实施例中所涉及的概念进行简单介绍,具体如下:
可靠性(英文:Reliability):产品在规定的条件下和规定的时间内,完成规定任务的概率。可靠性的量化指标是周期内系统平均无故障运行时间。提高可靠性需要强调减少系统中断(故障)的次数。
可用性(Availability):在一个给定的时间间隔内,对于一个功能个体来讲,总的可用时间所占的比例。可用性的量化指标是周期内系统无故障运行的总时间,提高可用性需要强调减少从灾难中恢复的时间。
例如,如果一个系统每小时崩溃1ms(毫秒),那么它在统计周期1个小时内的可用性超过99.9999%,但是它还是高度不可靠。如果一个系统从来不崩溃,但是每年要停机两星期,那么它是高度可靠的,但是可用性只有96%。
在本发明实施例中,对可靠性和可用性不作严格区分。
冗余(Redundancy):在工程领域中,冗余通常是指通过多重备份来增加系统的可靠性。即指重复配置系统的一些关键部件,当系统发生故障时,冗余配置的部件介入并承担故障部件的工作,由此减少系统的故障时间。冗余带来了系统的复杂性和提高了成本,但对于业务关键系统因为故障造成的业务中断的代价之高来说,这点代价是必要的。
对于很多应用,高可靠性和/或可用性并不是必须的。但是对于一些业务关键系统(英文:Mission Critical System)来说,系统故障造成的业务中断的代价非常之大,因此在设计中必须考虑避免单点故障、提升系统的可靠性和可用性。冗余是提高系统可靠性必不可少的手段。
冗余提升的系统可靠性和冗余度也有关系。那么如何衡量冗余度呢?这就涉及到了冗余模型(Redundancy Model)。常用的冗余模型有:
No-Redundancy(中文:无冗余):没有冗余。相当于2N的一种特殊情况,Standby实例数=0,会形成单点故障。
2N(中文:主备冗余):也即是在某时刻,所有的工作负载最多只有一个Active(英文:活跃)应用实例(也称主应用实例)和一个Standby(英文:备用)应用实例(也称备应用实例)。例如,1+1指的是一个主应用实例和一个备应用实例,可以用“Active-Standby”表示。
N+M(中文:N主M备冗余):对2N的扩展,允许有两个以上的主应用实例或者备应用实例。N为主应用实例个数,M为备应用实例个数。例如:15+1或者14+2。
N-Way(中文:N路冗余):对N+M的扩展,在这种场景下,N=M。
N-Way Active(中文:N路活跃冗余):不同于以上几种冗余模型,没有备应用实例。相当于集群(Cluster)模式。
上述冗余模型均用于指示提供目标应用服务的应用实例中主应用实例的个数和备应用实例的个数,当然实际应用中,还有其它冗余模型,本发明实施例对此不再赘述。
应用编排(Orchestration):将应用提供的服务(可以称为目标应用服务)按照一定顺序编排,形成编排文件,然后由编排引擎的各个基础设施按照此编排文件进行应用实例化的过程。
应用编排是云平台的重要部分,通过定义应用组件、对资源的需求、组件之间的关系(拓扑)等,完整地描述应用本身以及所依赖的资源,最后交由云计算平台完成部署。
大部分情况下云应用对高可靠性是有要求的,目前的云应用编排标准或规范缺乏对应用冗余模型的描述,和相应的实现装置。
进一步的,为了便于读者理解,对本发明实施例中所涉及的云计算编排规范进行简单介绍,目前云计算的编排规范中,主要有TOSCA,AWS Cloud Formation,Open Stack和HOT,其中,主要使用的几个编排规范具体如下:
TOSCA:由OASIS组织制定的用于描述云应用拓扑的标准语言,包括组件(Components)、关系(Relationships),以及管理流程。TOSCA原模型使用服务模板(ServiceTemplate)的概念,把云负载(Cloud Workload)描述为一个拓扑模板(TopologyTemplate),拓扑模板是节点模板(Node Template)和关系模板(Relationship Template)组成的一张图。节点模板是对组成负载的组件的建模,而关系模板是是对这些组件之间关系的建模。另外,TOSCA提供了一个类型系统(Type System),其中节点类型描述组成一个服务模板的可能的构建块(Building Blocks),关系类型描述可能的关系类型。节点和关系类型都可以定义生命周期操作,编排引擎可以调用这些生命周期的接口,实例化一个服务模板。
AWS Cloud Formation:AWS提供的用于定义一组相关联的AWS资源的JSON或者YAML数据标准。Cloud Formation模板只是一个JSON或YAML格式文本文件,用于描述运行某个应用程序或服务所需的AWS基础设施以及它们之间的互联关系。AWS Cloud Formation向开发人员和系统管理员提供了一种简便地创建和管理一批相关的AWS资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。可以使用AWS Cloud Formation的示例模板或自己创建模板来描述AWS资源以及应用程序运行时所需的任何相关依赖项或运行时参数。无需弄清预配置AWS服务的顺序或执行这些依赖关系工作的细微之处。CloudFormation会妥善处理。部署AWS资源后,可以采用可控且可预测的方式修改和更新这些资源。还可以使用AWS Cloud Formation Designer的拖放界面以图表形式显示模板并进行编辑。
Heat Orchestration Template(简称:HOT):Open Stack Foundation定义的用于指定资源、编排基础设施和应用生命周期的标准。HOT模板由heat_template_version、description、parameter_groups、parameters、resources、outputs和conditions组成。
但是以上几种的编排规范中,冗余模型均需要人工采用集群软件来定义和维护,而集群软件的操作比较麻烦,操作效率较低,无法向用户提供高可靠性的应用服务。本发明实施例提供一种应用实例部署方法,其面向冗余模型,将冗余模型作为应用编排时的一种定义和扩展,也即是支持工作人员在应用编排时定义冗余模型,并给出一种实现方法,该方法中,编排引擎支持不同的冗余模型,且支持多种资源适配器,使得该应用冗余模型不依赖于底层的底层管理模块的应用调度和资源管理。
请参考图1,图1是本发明部分实施例提供的应用实例部署方法所涉及的实施环境,该实施环境包括:编排引擎00和客户端10,该编排引擎00包括:应用解析模块001、应用控制器002、冗余模型适配器003和底层管理模块004,其中,应用解析模块001能够与客户端10进行通信,且能够与应用控制器002和冗余模型适配器003分别进行通信,应用控制器002和冗余模型适配器003均和底层管理模块004通信。
应用解析模块001用于接收客户端发送的应用编排文件,该应用编排文件包括:冗余模型,冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,应用编排文件还包括:备应用实例的部署信息和集群相关配置信息;其中,部署信息包括应用实例进行部署时的配置信息和数据信息等等,例如包括集群资源,集群资源是可以在集群中的主、备应用实例之间迁移的资源。集群相关配置信息是用于应用调度和资源管理的信息,例如,包括生命周期,应用实例的故障检测规则,集群资源迁移规则等等。
冗余模型适配器003用于获取提供目标应用服务的应用实例的实例标识。可选的,冗余模型适配器003可以支持多种冗余模型,例如无冗余、N主M备冗余、N路冗余、集群冗余、主备冗余和N路活跃冗余中的至少一种冗余模型。
冗余模型适配器003可以支持多种资源适配器,如Kubernetes adapter(一种开源的管理容器应用的系统的适配器)或者Docker adapter(一种开源的应用容器引擎的适配器),用于将备应用实例的部署信息通过相应的资源适配器传输至底层管理模块004,由底层管理模块004根据备应用实例的部署信息部署备应用实例。该资源适配模块004根据可以根据具体的目标应用服务来提供相应的资源适配器,以实现冗余模型适配器003对底层管理模块004的控制。
应用控制器002用于根据应用模型和主应用实例的部署信息,部署主应用实例。
可选的,上述提供目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
可选的,冗余模型适配器003获取提供目标应用服务的应用实例的实例标识的方式通常有两种,一种是为在主应用实例和备应用实例均部署完成后,获取在应用实例部署过程中为提供目标应用服务的应用实例分配的的实例标识。另一种是,应用编排文件中包括上述提供目标应用服务的应用实例的实例标识,冗余模型适配器从应用编排文件中提取提供目标应用服务的应用实例的实例标识即可。
进一步的,在目标应用服务的应用实例部署完成后,冗余模型适配器003可以根据获取的实例标识、冗余模型和集群相关配置信息控制底层管理模块004对提供目标应用服务的应用实例进行应用调度和资源管理。
底层管理模块004通常用于通过多个不同层次的控制器在平台即服务(英文:Platform-as-a-Service;简称:PaaS)平台管理的集群上创建和调度应用实例,并且根据管理计划来维护应用实例在整个生命周期内的正确状态。同时通过异构基础设施即服务(英文:Infrastructure as a Service;简称:IaaS)层接口对接不同的IaaS层,采用自动化的方式创建和配置集群,这些集群组成了租户的资源池,供租户来托管其应用和服务。调度和资源管理系统作为PaaS平台中的底层插座,既负责PaaS平台本身子系统的生命周期管理,也可为应用开发者提供一个简单易用、高效稳定的资源调度管理平台。
在本发明实施例中,冗余模型适配器003控制底层管理模块004根据提供目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;当存在应用实例出现故障时,根据冗余模型和集群相关配置信息,对提供目标应用服务的应用实例进行应用调度和资源管理。
具体的,当第一主应用实例出现故障时,将第一主应用实例中的集群资源迁移至第一备应用实例中,第一主应用实例为提供目标应用服务的应用实例中的任一主应用实例,第一备应用实例为提供目标应用服务的应用实例中的备应用实例;或者,当第一备应用实例出现故障时,为目标应用服务部署第二备应用实例。
可选的,在将第一主应用实例中的集群资源迁移至第一备应用实例之后,当第一主应用实例复原,冗余模型适配器003可以判断是否需要进行资源迁回;当确定需要进行资源迁回时,由底层管理模块004将第一备应用实例中的集群资源迁移至第一主应用实例中。
实际应用中,底层管理模块004可以周期性监测每个应用实例的健康状态;根据每个应用实例的健康状态,确定每个应用实例是否出现故障。
在本发明实施例中,上述集群资源可以包括:虚拟网际协议(英文:InternetProtocol;简称:IP)地址和存储卷。
本发明实施例提供一种应用实例部署方法,应用于如图1所示的编排引擎,假设该编排引擎包括:应用解析模块、应用控制器、冗余模型适配器和底层管理模块,如图2-1所示,该方法包括:
步骤201、客户端向应用解析模块发送应用编排文件。
在本发明实施例中,客户端不仅可以编辑应用模型还可以编辑冗余模型,冗余模型可以作为应用模型的一部分携带在应用模型中(也即是作为应用模型的一个属性,集成在应用模型中一起编排),也可以独立于应用模型之外。客户端编辑应用模型和冗余模型后得到包括该两个模型的应用编排文件,并将该应用编排文件发送至编排引擎,其中,该应用编排文件可以采用另一种标记语言(英文:Yet Another Markup Language;简称:YAML)、可扩展标记语言(英文:Extensible Markup Language;简称:XML)和JavaScript对象表示法(英文:JavaScript Object Notation;简称:JSON)中的任一种语言实现。
上述冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,该对应关系包括:主应用实例的个数和备应用实例的个数,以及该主应用实例和备应用实例之间的关系。该冗余模型包括:No-Redundancy、2N、N+M、N-Way和N-WayActive等中的任一种。例如,冗余模型为4+2,说明主应用实例有4个,备应用实例有2个,该冗余模型最多支持2个主应用实例出现故障,在该冗余模型中,主应用实例和备应用实例之间的关系可以是随机对应的关系,例如,任意一个主应用实例故障时,任意一个可用的备应用实例即可以接替该主应用实例进行相关工作;主应用实例和备应用实例之间的关系可以是指定对应的关系,例如,冗余模型为4+2,指定对应的关系为主应用实例1对应备应用实例2,则当主应用实例1故障时,需要采用备应用实例2来接替该主应用实例1进行相关工作,不能采用其他备应用实例来接替该主应用实例1进行相关工作。实际应用中,上述对应关系通常为随机对应的关系。
该应用编排文件还包括:主应用实例的部署信息、备应用实例的部署信息和集群相关配置信息。其中,主应用实例的部署信息用于部署主应用实例,备应用实例的部署信息用于部署备应用实例,例如,每个部署信息中均包括集群资源,集群相关配置信息是用于应用调度和资源管理的信息,例如,包括生命周期,应用实例的故障检测规则(用于规定如何进行应用实例的故障检测),应用实例的复原确定规则(用于规定如何确定故障应用实例的是否复原),集群资源迁移规则(用于规定是否将集群资源迁回复原后的故障应用实例)等等。
步骤202、应用解析模块解析应用编排文件,得到应用模型、冗余模型、主应用实例的部署信息、备应用实例的部署信息和集群相关配置信息。
应用解析模块遵循预设的应用编排标准,进行应用编排文件的解析,该应用编排标准可以为TOSCA(中文:结构优化系统)、Cloud Formation(AWS云编排服务,AWS是一种服务名称)和HOT(中文:Heat编排模板,Heat是OpenStack的一个专有项目)等中的任一个。该应用模型可以为YAML、XML、JSON等格式。
步骤203、应用解析模块将应用模型和主应用实例的部署信息发送至应用控制器。
步骤204、应用控制器根据应用模型和主应用实例的部署信息部署主应用实例。
应用控制器可以根据应用模型和主应用实例的部署信息部署主应用实例。应用控制器部署主应用实例时,可以通过调用底层管理模块来实现主应用实例的部署。
进一步的,应用控制器也可以获取集群相关配置信息,根据该集群相关配置信息可以调用底层管理模块来进行应用调度和资源管理,例如进行应用生命周期管理。具体过程可以参考传统的应用调度和资源管理过程。
步骤205、应用解析模块将冗余模型、备应用实例的部署信息和集群相关配置信息发送至冗余模型适配器。
步骤206、冗余模型适配器根据备应用实例的部署信息控制底层管理模块部署备应用实例。
实际应用中,底层管理模块是真正的应用调度和资源管理的执行者。该底层管理模块可以支持应用的冗余模型(例如Kubernetes的ReplicaSet(一种副本集合)或StatefulSet(一种有状态应用集合)等),也可以不支持,由相应的资源适配器补齐目标应用服务的冗余模型功能。
在本发明实施例中,冗余模型适配器可以根据每个备应用实例的部署信息部署备应用实例,具体的,控制底层管理模块部署冗余模型中指示的个数个备应用实例,并根据每个备应用实例的部署信息部署相应的应用实例。例如,冗余模型指示备应用实例的个数为2,则冗余模型适配器控制底层管理模块根据相应的备应用实例部署信息部署2个备应用实例。
步骤207、冗余模型适配器获取提供目标应用服务的应用实例的实例标识。
在本发明实施例中,如图2-2所示,冗余模型适配器003可以包括两个模块,一个是冗余模型适配模块0031,一个是资源适配模块0032,其中,冗余模型适配模块面向应用,插件化,且可扩展,内置常用的几种冗余模型,例如2N、N+M、N-Way等。资源适配模块0031面向资源,插件化,且可扩展,内置常用的几种资源适配器,冗余模型适配模块0031可以通过资源适配模块0032调用相应的资源适配器来进行冗余模型的管理。
可选的,在资源适配模块适配底层管理模块主要有两种方式:如果底层管理模块支持或者部分支持冗余模型,则资源适配模块简单地进行将冗余模型与目标应用服务的映射;如果底层管理模块不支持冗余模型,则由相应的资源适配器维护目标应用服务的冗余模型。其中,如果底层支持或者部分支持冗余模型,只是部分减轻了资源适配模块的工作,相当于把一部分维护冗余模型的工作“委托”到底层。如果底层不支持冗余模型,由冗余模型适配模块根据具体的冗余模型(面向应用,知道应用对冗余的要求)和资源适配模块(面向资源,知道如何处理集群资源)共同完成。
在本发明实施例中,实例标识用于唯一标识一应用实例,实例标识可以为IP地址或序列号或标签号等。
实例标识可能是底层管理模块创建应用实例后产生,并由冗余模型适配器获取到的;也可能是冗余模型适配器分配一个标识(比如名称),并和底层真正的实例标识做映射。无论如何,底层真正的实例标识只有在应用实例创建后才产生。相应的,本发明实施例中,冗余模型适配器获取提供目标应用服务的应用实例的实例标识的方法可以有多种,本发明实施例以以下几种可实现方式为例进行说明:
第一种可实现方式:在主应用实例和备应用实例均部署完成后,获取在应用实例部署过程中为提供目标应用服务的应用实例分配的的实例标识。
实际应用中,底层管理模块在部署每个应用实例时,都会为该应用实例分配一唯一标识该应用实例的实例标识,因此,冗余模型在目标应用服务的所有应用实例部署完成后,即可从底层管理模块获取相应的实例标识,并进行保存。
第二种可实现方式:应用编排文件中包括上述提供目标应用服务的应用实例的实例标识,冗余模型适配器从应用编排文件中提取提供目标应用服务的应用实例的实例标识即可。具体的,在步骤202中,应用解析模块解析该应用配置文件后,将提供目标应用服务的应用实例的实例标识发送给冗余模型适配器。
在第二种可实现方式中,编排人员需要预先知道各个应用实例的实例标识,具体包括以下场景:1、每个应用实例所部属的节点已知(节点已创建,或者节点未创建但是节点标识已知),且应用实例和节点一一对应,可以将节点的标识作为实例标识,例如,冗余模型为4+2,也即是6个应用实例中4个主应用实例和2个备应用实例,6个应用实例需要部署的6个节点已知,则将该6个节点的标识作为实例标识配置在应用配置信息中;2、在部属应用实例之前,已知了多个待分配的实例标识,在该多个实例标识中指定实例标识与后续部署应用实例时的应用实例对应。例如,实例标识为IP地址,已知有7个IP地址(IP地址会配置在应用实例上)未使用,而冗余模型为4+2,也即是6个应用实例中4个主应用实例和2个备应用实例,则可以在7个IP地址中指定6个IP地址作为应用配置信息中携带的实例标识。
需要说明的是,在第二种可实现方式中,针对一个应用实例,编排人员分配的实例标识和底层管理模块在实际部署应用实例时分配的实例标识可能不同,冗余模型适配器可以建立两者的一一对应关系(或者称为一一映射关系),冗余模型适配器后期采用编排人员分配的实例标识来进行冗余模型维护即可。
步骤208、冗余模型适配器根据冗余模型、集群相关配置信息和提供目标应用服务的应用实例的实例标识,对提供目标应用服务的应用实例进行应用调度和资源管理。
需要说明的是,冗余模型适配器获取的应用实例的实例标识可能与底层管理模块的实例标识不同,参考步骤207,冗余模型可以根据预先建立的一一对应关系,来控制底层管理模块管理相应的应用实例,若冗余模型适配器获取的应用实例的实例标识与底层管理模块的实例标识相同,则直接进行应用实例管理即可。
在本发明实施例中,对提供目标应用服务的应用实例进行应用调度和资源管理的方法可以包括:
步骤a、底层管理模块根据提供目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障。
示例的,底层管理模块根据提供目标应用服务的应用实例的实例标识,可以周期性监测每个应用实例的健康状态;根据每个应用实例的健康状态,确定每个应用实例是否出现故障。上述健康状态的监测过程也称心跳监测。
上述健康状态通常包括:健康和不健康,当监测到一个应用实例的健康状态为健康时,确定该应用实例的未出现故障,当监测到一个应用实例的健康状态为不健康事,确定该应用实例的出现故障。
具体的,底层管理模块可以确定某一应用实例的传输控制协议(英文:Transmission Control Protocol;简称:TCP)的端口号,然后周期性探测该端口号是否存在,当端口号不存在,且为连续x次以上不存在时,确定该应用实例的健康状态为不健康,当端口号存在时,确定该应用实例的健康状态为健康,该x为大于或等于1的整数,通常为3。
或者,底层管理模块可以获取某一应用实例的统一资源定位符(英语:UniformResource Locator;简称:URL),然后周期性探测该URL对应的网址是否能够打开,当该网址不能打开,且为连续y次以上不能打开时,确定该应用实例的健康状态为不健康,当该网址能打开时,确定该应用实例的健康状态为健康,该y为大于或等于1的整数,通常为3。
或者,底层管理模块可以通过运行预先设置的脚本来周期性监测每个应用实例的健康状态。
步骤b、当存在应用实例出现故障时,底层管理模块根据冗余模型和集群相关配置信息,对提供目标应用服务的应用实例进行应用调度和资源管理。
步骤b具体可以包括:
步骤b1、当第一主应用实例出现故障时,底层管理模块将第一主应用实例中的集群资源迁移至第一备应用实例中。
该第一主应用实例为提供目标应用服务的应用实例中的任一主应用实例,该第一备应用实例为提供目标应用服务的应用实例中的备应用实例,该第一备应用实例可以是冗余模型适配器根据预设规则选择的,该预设规则可以包括以下任一种:在所有未被占用的备应用实例中随机选择;或者,在所有未被占用的备应用实例中选择配置最高的备应用实例。实际应用中,其他应用实例的集群资源的迁移场景也可以参考第一主应用实例到第一备应用实例的集群资源迁移过程,本发明实施例对此不作赘述。
在本发明实施例中,集群资源主要包括:虚拟IP和存储卷等,第一主应用实例到第一备应用实例的集群资源迁移过程包括:将第一主应用实例的虚拟IP配置为第一备应用实例的虚拟IP,并解除第一主应用实例与该虚拟IP的关联关系,将第一主应用资源的存储卷挂载在第一备应用实例上。
需要说明的是,在将第一主应用实例中的集群资源迁移至第一备应用实例之后,相当于一个备应用实例升级成为主应用实例,也即是有一个备应用实例被占用,此时冗余度降低,可选的,冗余模型适配器可以控制底层管理模块为该目标应用服务部署第二备应用实例。该第二备应用实例可以保证冗余模型的冗余度以及系统的高可用性。
例如,原冗余模型为4+2,即4个主应用实例和2个备应用实例,则在进行了集群资源迁移后,当前冗余模型变成了4+1,冗余度降低,底层管理模块可以再部署一备应用实例,则冗余模型又恢复成4+2。
步骤b2、在将第一主应用实例中的集群资源迁移至第一备应用实例之后,当第一主应用实例复原,冗余模型适配器中的冗余模型适配模块需要根据预设的集群相关配置信息判断是否需要进行资源迁回。
当第一主应用实例在后续过程中复原,冗余模型适配模块需要根据具体情况确定是否需要将原本属于第一主应用实例的集群资源迁回,示例的,冗余模型适配模块可以根据预设在集群相关配置信息集群资源迁移规则来确定是否进行集群资源迁回,例如,该集群资源迁移规则为通过检测集群相关配置信息中是否存在failback(中文:故障复原)参数来确定是否进行集群资源迁回,也即是,冗余模型适配模块可以检测集群相关配置信息中用户是否预先配置了failback参数,该failback参数用于指示在故障应用实例复原后,进行集群资源迁回,若用户预先配置了failback参数,则冗余模型适配模块可以触发底层管理模块直接进行集群资源迁回;若用户未配置failback参数,则冗余模型适配模块确定无需进行集群资源迁回。
实际应用中,一般优先在配置较高的应用实例上进行集群资源的运行和维护,用户体验较高,因此,提倡将集群资源部署在配置较高的应用实例上。用户可以根据预先确定的各个应用实例的配置来决定是否配置failback参数。
需要说明的是,实际应用中,集群资源迁移规则还可以有其他方式,本发明实施例对此不做限定。
步骤b3、当确定需要进行资源迁回时,底层管理模块将第一备应用实例中的集群资源迁移至第一主应用实例中。
在本发明实施例中,集群资源主要包括:虚拟IP和存储卷等,则将第一备应用实例中的集群资源迁移至第一主应用实例的过程包括:将第一备应用实例的虚拟IP配置为第一主应用实例的虚拟IP,并解除第一备应用实例与该虚拟IP的关联关系,将第一备应用资源的存储卷挂载在第一主应用实例上。
步骤b4、当第一备应用实例出现故障时,底层管理模块为目标应用服务部署第二备应用实例。
当一个备应用实例出现故障时,为了保证冗余模型的冗余度以及系统的高可用性,可以为目标应用服务再部署一第二备应用实例,后续过程中可以无需维修第一备应用实例。
示例的,假设目标应用服务为邮件应用服务,支持14+2的冗余模型,允许同时出现两个主应用实例故障,也即是,两个主应用实例故障时,也不影响业务。支持该目标应用服务的实施环境如图3所示,在该实施环境中,一个邮件服务器集群由16台邮件服务器组成,每个邮件服务器上部署邮件应用服务的一应用实例,其中14台服务器对应主应用实例,如图3中的主应用实例01-14,真正服务于用户;2台服务器对应备应用实例,如图3中的备应用实例15-16,用于备应用实例故障时承载其上的集群资源。
则该实施环境提供一应用集群,要求14+2的冗余度,可以实现高可用性;并且该实施环境中对用户进行分区,每个应用实例服务一部分(也即是该应用实例对应分区内)的用户,实现可扩展性,例如,每个主应用实例对应一集群虚拟IP(简称集群虚IP)和公共IP,如图3中的集群虚IP01-14,以及公共IP01-14,每个备应用实例对应一公共IP,如图3中的公共IP15-16。公共IP和集群虚IP是用户能够访问邮件服务的IP,其中,公共IP是静态配置在邮件服务器上的,不可迁移;由于集群虚IP和存储卷(邮件元数据、索引数据、邮件数据)一样,是一种集群资源,因此集群虚IP是可以在集群中的主应用实例和备应用实例之间迁移的。
并且,每个应用实例还配置有私有IP,如图3中的私有IP01-16,该邮件服务器集群种的集群资源包括:存储卷、虚拟IP、脚本(script)、DRDB和文件系统(filesystem)等,主要包括存储卷和虚拟IP,如图3中所示,每个主应用实例上挂在的存储卷可以包括:邮件元数据、索引数据和邮件数据。编排引擎维护上述14+2的冗余模型,对集群中的每个应用实例进行心跳监测,并在应用实例出现故障时进行集群资源切换。当14个主应用实例中的任一主应用实例故障时,相应的集群资源可以迁移到未被占用的备应用实例上,由被应用实例继续为故障的主应用实例所对应的分区用户提供服务,例如主应用实例02出现故障,其相应的集群虚IP02配置到备应用实例15上,且其存储卷也需要相应地挂载到备应用实例15上。如果预先配置了failback规则,则原来出现故障的主应用实例复原后,可以将相应的集群资源从备应用实例上迁回。
需要说明的是:上述实施例提供的编排引擎在执行上述应用实例部署方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。例如,冗余模型适配器可以由一个模块实现,也可以由多个模块实现。
综上所述,本发明实施例提供的应用实例部署方法,通过将冗余模型作为应用的一种属性,由编排引擎自动维护目标应用服务的冗余模型,无需人工采用集群软件执行备应用实例的部署,并且,目标应用服务的应用调度和资源管理也是由编排引擎自主维护,无需人工采用集群软件参与,因此,操作简单,应用部署与维护的效率较高,能够为用户提供可靠的应用服务,实现了高可靠性和高可用性。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图4是根据一示例性实施例示出的一种应用实例部署装置的框图,如图4所示,该应用实例部署装置40应用于图1所示实施环境中的编排引擎中,该应用实例部署装置40包括:接收模块401、第一部署模块402、获取模块403和管理模块404。
该接收模块401,用于接收客户端发送的应用编排文件,该应用编排文件包括:冗余模型,该冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,该应用编排文件还包括:该备应用实例的部署信息和集群相关配置信息;
该第一部署模块402,用于根据该备应用实例的部署信息部署该备应用实例;
该获取模块403,用于获取提供该目标应用服务的应用实例的实例标识;
该管理模块404,用于根据该冗余模型、该集群相关配置信息和提供该目标应用服务的应用实例的实例标识,对提供该目标应用服务的应用实例进行应用调度和资源管理。
综上所述,本发明实施例提供的应用实例部署装置,通过将冗余模型作为应用的一种属性,由编排引擎自动维护目标应用服务的冗余模型,无需人工采用集群软件执行备应用实例的部署,并且,目标应用服务的应用调度和资源管理也是由编排引擎自主维护,无需人工采用集群软件参与,因此,操作简单,应用部署与维护的效率较高,能够为用户提供可靠的应用服务,实现了高可靠性和高可用性。
可选的,该应用编排文件还包括:应用模型和该主应用实例的部署信息,在该接收客户端发送的应用编排文件之后,
参见图5,该装置还包括:第二部署模块405。
该第二部署模块405,用于根据该应用模型和该主应用实例的部署信息,部署该主应用实例;
该获取模块403,还用于在该主应用实例和该备应用实例均部署完成后,获取在应用实例部署过程中为提供该目标应用服务的应用实例分配的实例标识。
可选的,该应用编排文件还包括该提供该目标应用服务的应用实例的实例标识;
该获取模块403,还用于从该应用编排文件中提取提供该目标应用服务的应用实例的实例标识。
可选的,参见图6,该管理模块404包括:检测子模块404a和管理子模块404b。
检测子模块404a,用于根据提供该目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;
管理子模块404b,用于当存在应用实例出现故障时,根据该冗余模型和该集群相关配置信息,对提供该目标应用服务的应用实例进行应用调度和资源管理。
可选的,该管理子模块404b具体用于:当第一主应用实例出现故障时,将该第一主应用实例中的集群资源迁移至第一备应用实例中,该第一主应用实例为该提供该目标应用服务的应用实例中的任一主应用实例,该第一备应用实例为该提供该目标应用服务的应用实例中的任一备应用实例;
或者,当该第一备应用实例出现故障时,为该目标应用服务部署第二备应用实例。
可选的,该管理子模块404b,还用于在将该第一主应用实例中的集群资源迁移至该第一备应用实例之后,当该第一主应用实例复原,判断是否需要进行资源迁回,当确定需要进行资源迁回时,将该第一备应用实例中的集群资源迁移至该第一主应用实例中。
可选的,该检测子模块404a,用于周期性监测每个应用实例的健康状态,根据该每个应用实例的健康状态,确定每个应用实例是否出现故障。
可选的,该集群资源包括:虚拟网际协议IP地址和存储卷,可选的,该集群资源还可以包括:脚本、分布式块设备DRDB和文件系统等中的至少一种。
可选的,该冗余模型的类型包括无冗余、N主M备冗余、N路冗余、主备冗余和N路活跃冗余中的任意一种。
可选的,提供该目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
综上所述,本发明实施例提供的应用实例部署装置,通过将冗余模型作为应用的一种属性,由编排引擎自动维护目标应用服务的冗余模型,无需人工采用集群软件执行备应用实例的部署,并且,目标应用服务的应用调度和资源管理也是由编排引擎自主维护,无需人工采用集群软件参与,因此,操作简单,应用部署与维护的效率较高,能够为用户提供可靠的应用服务,实现了高可靠性和高可用性。
需要说明的是:上述实施例提供的应用实例部署装置在执行上述应用实例部署方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用实例部署装置与上述应用实例部署方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种应用实例部署方法,其特征在于,应用于编排引擎,所述方法包括:
接收客户端发送的应用编排文件,所述应用编排文件包括:冗余模型,所述冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,所述应用编排文件还包括:所述备应用实例的部署信息和集群相关配置信息;
根据所述备应用实例的部署信息部署所述备应用实例;
获取提供所述目标应用服务的应用实例的实例标识;
根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
2.根据权利要求1所述的方法,其特征在于,所述应用编排文件还包括:应用模型和所述主应用实例的部署信息,在所述接收客户端发送的应用编排文件之后,所述方法还包括:
根据所述应用模型和所述主应用实例的部署信息,部署所述主应用实例;
所述获取提供所述目标应用服务的应用实例的实例标识,包括:
在所述主应用实例和所述备应用实例均部署完成后,获取在应用实例部署过程中为提供所述目标应用服务的应用实例分配的的实例标识。
3.根据权利要求1所述的方法,其特征在于,所述应用编排文件还包括所述提供所述目标应用服务的应用实例的实例标识;
所述获取提供所述目标应用服务的应用实例的实例标识,包括:从所述应用编排文件中提取提供所述目标应用服务的应用实例的实例标识。
4.根据权利要求1至3任一所述的方法,其特征在于,
所述根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理,包括:
根据提供所述目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;
当存在应用实例出现故障时,根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
5.根据权利要求4所述的方法,其特征在于,所述根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理,包括:
当第一主应用实例出现故障时,将所述第一主应用实例中的集群资源迁移至第一备应用实例中,所述第一主应用实例为所述提供所述目标应用服务的应用实例中的任一主应用实例,所述第一备应用实例为所述提供所述目标应用服务的应用实例中的任一备应用实例;
或者,当所述第一备应用实例出现故障时,为所述目标应用服务部署第二备应用实例。
6.根据权利要求5所述的方法,其特征在于,所述根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理,还包括:
在将所述第一主应用实例中的集群资源迁移至所述第一备应用实例之后,当所述第一主应用实例复原,判断是否需要进行资源迁回;
当确定需要进行资源迁回时,将所述第一备应用实例中的集群资源迁移至所述第一主应用实例中。
7.根据权利要求4所述的方法,其特征在于,所述检测每个应用实例是否出现故障,包括:
周期性监测每个应用实例的健康状态;
根据所述每个应用实例的健康状态,确定每个应用实例是否出现故障。
8.根据权利要求5或6所述的方法,其特征在于,所述集群资源包括:虚拟网际协议IP地址和存储卷。
9.根据权利要求1所述的方法,其特征在于,所述冗余模型的类型包括无冗余、N主M备冗余、N路冗余、主备冗余和N路活跃冗余中的任意一种。
10.根据权利要求1所述的方法,其特征在于,提供所述目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
11.一种应用实例部署装置,其特征在于,应用于编排引擎,所述装置包括:
接收模块,用于接收客户端发送的应用编排文件,所述应用编排文件包括:冗余模型,所述冗余模型用于指示提供目标应用服务的应用实例中主应用实例和备应用实例的对应关系,所述应用编排文件还包括:所述备应用实例的部署信息和集群相关配置信息;
第一部署模块,用于根据所述备应用实例的部署信息部署所述备应用实例;
获取模块,用于获取提供所述目标应用服务的应用实例的实例标识;
管理模块,用于根据所述冗余模型、所述集群相关配置信息和提供所述目标应用服务的应用实例的实例标识,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
12.根据权利要求11所述的装置,其特征在于,所述应用编排文件还包括:应用模型和所述主应用实例的部署信息,在所述接收客户端发送的应用编排文件之后,所述装置还包括:
第二部署模块,用于根据所述应用模型和所述主应用实例的部署信息,部署所述主应用实例;
所述获取模块,还用于在所述主应用实例和所述备应用实例均部署完成后,获取在应用实例部署过程中为提供所述目标应用服务的应用实例分配的的实例标识。
13.根据权利要求11所述的装置,其特征在于,所述应用编排文件还包括所述提供所述目标应用服务的应用实例的实例标识;
所述获取模块,还用于从所述应用编排文件中提取提供所述目标应用服务的应用实例的实例标识。
14.根据权利要求11至13任一所述的装置,其特征在于,管理模块,包括:
检测子模块,用于根据提供所述目标应用服务的应用实例的实例标识,检测每个应用实例是否出现故障;
管理子模块,用于当存在应用实例出现故障时,根据所述冗余模型和所述集群相关配置信息,对提供所述目标应用服务的应用实例进行应用调度和资源管理。
15.根据权利要求14所述的装置,其特征在于,所述管理子模块,具体用于:
将所述第一主应用实例中的集群资源迁移至第一备应用实例中,所述第一主应用实例为所述提供所述目标应用服务的应用实例中的任一主应用实例,所述第一备应用实例为所述提供所述目标应用服务的应用实例中的任一备应用实例;
或者,为所述目标应用服务部署第二备应用实例。
16.根据权利要求15所述的装置,其特征在于,所述管理子模块,还用于在将所述第一主应用实例中的集群资源迁移至所述第一备应用实例之后,当所述第一主应用实例复原,判断是否需要进行资源迁回,当确定需要进行资源迁回时,将所述第一备应用实例中的集群资源迁移至所述第一主应用实例中。
17.根据权利要求14所述的装置,其特征在于,所述检测子模块,用于周期性监测每个应用实例的健康状态,根据所述每个应用实例的健康状态,确定每个应用实例是否出现故障。
18.根据权利要求15或16所述的装置,其特征在于,所述集群资源包括:虚拟网际协议IP地址和存储卷。
19.根据权利要求11所述的装置,其特征在于,所述冗余模型的类型包括无冗余、N主M备冗余、N路冗余、主备冗余和N路活跃冗余中的任意一种。
20.根据权利要求11所述的装置,其特征在于,提供所述目标应用服务的应用实例所部署在的节点为服务器、容器或虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611259475.8A CN108270726B (zh) | 2016-12-30 | 2016-12-30 | 应用实例部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611259475.8A CN108270726B (zh) | 2016-12-30 | 2016-12-30 | 应用实例部署方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108270726A true CN108270726A (zh) | 2018-07-10 |
CN108270726B CN108270726B (zh) | 2021-05-11 |
Family
ID=62754715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611259475.8A Active CN108270726B (zh) | 2016-12-30 | 2016-12-30 | 应用实例部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108270726B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134434A (zh) * | 2019-05-15 | 2019-08-16 | 浪潮通用软件有限公司 | 一种应用生成处理方法及系统、应用生成系统 |
CN110457114A (zh) * | 2019-07-24 | 2019-11-15 | 杭州数梦工场科技有限公司 | 应用集群部署方法及装置 |
CN110704245A (zh) * | 2019-09-29 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种服务集群实现方法、装置、设备及可读存储介质 |
WO2020015092A1 (zh) * | 2018-07-18 | 2020-01-23 | 平安科技(深圳)有限公司 | 实例监控方法、装置、终端设备及介质 |
CN110750415A (zh) * | 2019-09-20 | 2020-02-04 | 平安普惠企业管理有限公司 | 接口服务配置方法、装置、介质和计算机设备 |
CN111338685A (zh) * | 2018-12-19 | 2020-06-26 | 卓望数码技术(深圳)有限公司 | 一种公用组件配置方法、装置、设备和存储介质 |
CN111752140A (zh) * | 2019-03-29 | 2020-10-09 | 霍尼韦尔国际公司 | 控制器应用程序模块协调器 |
CN112131088A (zh) * | 2020-09-29 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种基于健康检查和容器的高可用方法 |
CN112527780A (zh) * | 2020-12-23 | 2021-03-19 | 平安银行股份有限公司 | Redis集群的创建与管理方法、系统、计算机设备和存储介质 |
CN112600931A (zh) * | 2020-12-22 | 2021-04-02 | 新华三云计算技术有限公司 | 一种api网关部署方法及装置 |
CN115033718A (zh) * | 2022-08-15 | 2022-09-09 | 浙江大学 | 一种业务应用部署方法、装置及设备 |
CN116341633A (zh) * | 2023-05-29 | 2023-06-27 | 山东浪潮科学研究院有限公司 | 一种模型部署方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104115447A (zh) * | 2014-04-14 | 2014-10-22 | 华为技术有限公司 | 一种云计算架构下的容灾方案配置方法及装置 |
US20150058461A1 (en) * | 2013-08-22 | 2015-02-26 | Red Hat, Inc. | Image management in cloud environments |
CN104811476A (zh) * | 2015-03-26 | 2015-07-29 | 南京大学 | 一种面向应用服务的高可用部署实现方法 |
CN105051687A (zh) * | 2013-05-31 | 2015-11-11 | 华为技术有限公司 | 应用部署方法和设备 |
CN105791073A (zh) * | 2014-12-23 | 2016-07-20 | 华为技术有限公司 | 一种虚拟化网络中业务部署的方法和装置 |
CN106095526A (zh) * | 2016-06-06 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 虚拟服务器集群及其服务器的部署方法、装置以及系统 |
-
2016
- 2016-12-30 CN CN201611259475.8A patent/CN108270726B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105051687A (zh) * | 2013-05-31 | 2015-11-11 | 华为技术有限公司 | 应用部署方法和设备 |
US20150058461A1 (en) * | 2013-08-22 | 2015-02-26 | Red Hat, Inc. | Image management in cloud environments |
CN104115447A (zh) * | 2014-04-14 | 2014-10-22 | 华为技术有限公司 | 一种云计算架构下的容灾方案配置方法及装置 |
CN105791073A (zh) * | 2014-12-23 | 2016-07-20 | 华为技术有限公司 | 一种虚拟化网络中业务部署的方法和装置 |
CN104811476A (zh) * | 2015-03-26 | 2015-07-29 | 南京大学 | 一种面向应用服务的高可用部署实现方法 |
CN106095526A (zh) * | 2016-06-06 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 虚拟服务器集群及其服务器的部署方法、装置以及系统 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020015092A1 (zh) * | 2018-07-18 | 2020-01-23 | 平安科技(深圳)有限公司 | 实例监控方法、装置、终端设备及介质 |
CN111338685B (zh) * | 2018-12-19 | 2023-11-21 | 卓望数码技术(深圳)有限公司 | 一种公用组件配置方法、装置、设备和存储介质 |
CN111338685A (zh) * | 2018-12-19 | 2020-06-26 | 卓望数码技术(深圳)有限公司 | 一种公用组件配置方法、装置、设备和存储介质 |
CN111752140A (zh) * | 2019-03-29 | 2020-10-09 | 霍尼韦尔国际公司 | 控制器应用程序模块协调器 |
CN110134434A (zh) * | 2019-05-15 | 2019-08-16 | 浪潮通用软件有限公司 | 一种应用生成处理方法及系统、应用生成系统 |
CN110457114A (zh) * | 2019-07-24 | 2019-11-15 | 杭州数梦工场科技有限公司 | 应用集群部署方法及装置 |
CN110750415A (zh) * | 2019-09-20 | 2020-02-04 | 平安普惠企业管理有限公司 | 接口服务配置方法、装置、介质和计算机设备 |
CN110704245B (zh) * | 2019-09-29 | 2023-02-24 | 苏州浪潮智能科技有限公司 | 一种服务集群实现方法、装置、设备及可读存储介质 |
CN110704245A (zh) * | 2019-09-29 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种服务集群实现方法、装置、设备及可读存储介质 |
CN112131088A (zh) * | 2020-09-29 | 2020-12-25 | 北京计算机技术及应用研究所 | 一种基于健康检查和容器的高可用方法 |
CN112131088B (zh) * | 2020-09-29 | 2024-04-09 | 北京计算机技术及应用研究所 | 一种基于健康检查和容器的高可用方法 |
CN112600931A (zh) * | 2020-12-22 | 2021-04-02 | 新华三云计算技术有限公司 | 一种api网关部署方法及装置 |
CN112600931B (zh) * | 2020-12-22 | 2022-05-24 | 新华三云计算技术有限公司 | 一种api网关部署方法及装置 |
CN112527780A (zh) * | 2020-12-23 | 2021-03-19 | 平安银行股份有限公司 | Redis集群的创建与管理方法、系统、计算机设备和存储介质 |
CN115033718A (zh) * | 2022-08-15 | 2022-09-09 | 浙江大学 | 一种业务应用部署方法、装置及设备 |
CN116341633A (zh) * | 2023-05-29 | 2023-06-27 | 山东浪潮科学研究院有限公司 | 一种模型部署方法、装置、设备及存储介质 |
CN116341633B (zh) * | 2023-05-29 | 2023-09-01 | 山东浪潮科学研究院有限公司 | 一种模型部署方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108270726B (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108270726A (zh) | 应用实例部署方法及装置 | |
CN109347663B (zh) | 一种OpenStack云平台中资源可视化编排方法 | |
CN105933137B (zh) | 一种资源管理方法、装置及系统 | |
CN103778031B (zh) | 一种云环境下的分布式系统多级故障容错方法 | |
CN106301876B (zh) | 物理机升级方法、业务迁移方法及装置 | |
CN106528327B (zh) | 一种数据处理方法以及备份服务器 | |
CN104811476B (zh) | 一种面向应用服务的高可用部署实现方法 | |
JP5102901B2 (ja) | データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム | |
CN107220100A (zh) | 一种开发运维方法、装置及云计算PaaS平台 | |
CN103176831B (zh) | 一种虚拟机系统及其管理方法 | |
CN107707393A (zh) | 基于Openstack O版特性的多活系统 | |
CN112948063B (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
CN106612312A (zh) | 一种虚拟化数据中心调度系统和方法 | |
CN109313564A (zh) | 用于支持多个不同租户的高度可用虚拟桌面的服务器计算机管理系统 | |
CN107534570A (zh) | 虚拟化网络功能监控 | |
US20090024713A1 (en) | Maintaining availability of a data center | |
CN106506201A (zh) | Vnf迁移方法、mano和系统 | |
CN107430603A (zh) | 大规模并行处理数据库的系统和方法 | |
CN104268001B (zh) | 一种创建虚拟机的方法和创建虚拟机的装置 | |
CN103414712A (zh) | 一种分布式虚拟桌面管理系统和方法 | |
CN108062231A (zh) | 一种基于相关分析的云应用自动化配置方法 | |
CN112104723A (zh) | 一种多集群的数据处理系统及方法 | |
CN109845192B (zh) | 动态地适配网络的计算机系统和方法及计算机可读介质 | |
CN105471994B (zh) | 一种控制方法及装置 | |
CN105391652A (zh) | 基于usb重定向实现usb设备网络共享的系统及方法 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200422 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Applicant before: Huawei Technologies Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |