CN113821214A - 应用部署方法、应用蓝图生成方法、平台、终端和介质 - Google Patents

应用部署方法、应用蓝图生成方法、平台、终端和介质 Download PDF

Info

Publication number
CN113821214A
CN113821214A CN202010567511.7A CN202010567511A CN113821214A CN 113821214 A CN113821214 A CN 113821214A CN 202010567511 A CN202010567511 A CN 202010567511A CN 113821214 A CN113821214 A CN 113821214A
Authority
CN
China
Prior art keywords
application
blueprint
sub
deployed
external
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
Application number
CN202010567511.7A
Other languages
English (en)
Inventor
许占伟
李广旭
钟小武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202010567511.7A priority Critical patent/CN113821214A/zh
Priority to US18/009,374 priority patent/US20230221934A1/en
Priority to JP2022577782A priority patent/JP7432774B2/ja
Priority to PCT/CN2021/083872 priority patent/WO2021253914A1/zh
Priority to EP21826418.2A priority patent/EP4148565A4/en
Publication of CN113821214A publication Critical patent/CN113821214A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种应用部署方法,包括:接收应用蓝图,该应用蓝图包括:不同的至少两个子蓝图;根据应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例,部署的全部应用实例所提供的对外能力之和大于或等于应用对外总能力。本公开还提供了一种应用蓝图生成方法、微服务平台、通信终端和计算机可读介质。

Description

应用部署方法、应用蓝图生成方法、平台、终端和介质
技术领域
本公开涉及通信技术领域,特别涉及一种应用部署方法、应用蓝图生成方法、微服务平台、通信终端和计算机可读介质。
背景技术
随着微服务和容器技术的发展,用户在开发大型应用时将应用拆分成多个微服务,由相应部署平台对微服务进行编排、调度和管理,在对微服务进行编排、调度和管理时,都会使用一种配置文件来管理应用。在边缘计算场景,边缘侧的设备大都是异构的,不同设备的计算、存储等能力可能差异非常大,CPU结构也不一样,这就导致同一个应用在不同的硬件类型上的配置参数不一样。例如,家庭网关盒子或者光猫,对于功耗敏感,通常使用arm结构的硬件;工业网关和工业机器人设备,需要较强的计算或者存储能力,通常使用x86结构的硬件。应用在这两种不同类型的CPU结构上运行时需要不同的配置参数。但是现阶段边缘侧设备应用的管理,都是由云侧统一进行部署,现有的配置文件无法指定将应用分别部署在多种类型硬件上。
另外,应用所能提供的对外能力与硬件类型也有关系,应用在不同硬件类型上进行部署所提供的对外能力不同,但集群不能自适应地根据所需的对外能力选择在某个类型的硬件上部署应用,更不能适应多类型硬件在集群中混用以进行应用部署的场景。
发明内容
本公开旨在至少解决现有技术中存在的技术问题之一,提出了一种应用部署方法、应用蓝图生成方法、微服务平台、通信终端和计算机可读介质。
为实现上述目的,第一方面,本公开实施例提供了一种应用部署方法,包括:
接收应用蓝图,所述应用蓝图包括:不同的至少两个子蓝图,所述子蓝图中记载有对应的硬件类型、在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力以及应用对外总能力;
根据所述子蓝图在集群内的硬件设备上部署应用实例,且部署的全部应用实例所提供的对外能力之和大于或等于所述应用对外总能力。
第二方面,本公开实施例还提供了一种应用蓝图生成方法,包括:
获取应用支持的硬件类型、在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力以及应用对外总能力,并生成与所述硬件类型一一对应的子蓝图;
整合全部所述子蓝图,并生成应用蓝图;
将所述应用蓝图发送至微服务平台,以供所述微服务平台根据所述子蓝图在集群内的硬件设备上部署应用实例。
第三方面,本公开实施例还提供了一种微服务平台,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例中任一所述的应用部署方法。
第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如上述实施例中任一所述的应用部署方法中的步骤。
第五方面,本公开实施例还提供了一种通信终端,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例中所述的应用蓝图生成方法。
第六方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如上述实施例中所述的应用蓝图生成方法中的步骤。
本公开具有以下有益效果:
本公开实施例提供了一种应用部署方法、应用蓝图生成方法、微服务平台、通信终端和计算机可读介质,该应用部署方法可应用于微服务平台,通过考虑应用对外总能力,并结合应用蓝图中的子蓝图,实现在子蓝图对应的硬件类型的硬件设备上进行应用部署,由于子蓝图与硬件类型一一对应,且记载了与应用的对外能力相关的信息,从而使得集群能够自适应地根据所需的对外能力选择在某个特定类型的硬件上部署应用,并根据应用部署情况通过多类型硬件在集群中混用以进行应用部署;该应用蓝图生成方法可应用于通信终端,通过在蓝图中添加应用对外总能力,整合多个子蓝图,实现应用蓝图的生成。
附图说明
图1为本公开实施例提供的一种应用部署方法的流程图;
图2为本公开实施例中步骤S2的一种具体实施方法流程图;
图3为本公开实施例中步骤S2a的一种具体实施方法流程图;
图4为本公开实施例中步骤S2a的另一种具体实施方法流程图;
图5为本公开实施例提供的另一种应用部署方法的流程图;
图6为本公开实施例中步骤S4的一种具体实施方法流程图;
图7为本公开实施例提供的一种应用蓝图生成方法的流程图;
图8a为本公开实施例提供的又一种应用部署方法的流程图;
图8b为本公开实施例提供的再一种应用部署方法的流程图;
图8c为本公开实施例提供的再一种应用部署方法的流程图;
图8d为本公开实施例提供的再一种应用部署方法的流程图;
图9a为本公开实施例提供的再一种应用部署方法的流程图;
图9b为本公开实施例提供的再一种应用部署方法的流程图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的应用部署方法、应用蓝图生成方法、微服务平台、通信终端和计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。
将理解的是,虽然本文可以使用术语第一、第二等来描述各种元件,但这些元件不应当受限于这些术语。这些术语仅用于区分一个元件和另一元件。因此,在不背离本公开的指教的情况下,下文讨论的第一元件、第一组件或第一模块可称为第二元件、第二组件或第二模块。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
本公开所提供的应用部署方法、应用蓝图生成方法、微服务平台、通信终端和计算机可读介质,可用于自适应地根据所需的对外能力选择在对应硬件类型的硬件设备上部署应用实例,同时适应于多中硬件类型的硬件设备在集群中混用以进行应用部署的场景。
该应用部署方法适用于针对微服务平台的应用部署,微服务平台即平台即服务式(Platform as a Services,简称PaaS)平台,例如Cloudify平台和Kubernetes平台(K8S平台)等;该应用蓝图生成方法适用于通信终端进行应用蓝图生成,通信终端包括移动终端、个人电脑(PC)、平板设备即其他可作为客户端的设备等。
图1为本公开实施例提供的一种应用部署方法的流程图。如图1所示,该方法包括:
步骤S1、接收应用蓝图。
其中,该应用蓝图包括不同的至少两个子蓝图,子蓝图中记载有对应的硬件类型、在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力以及应用对外总能力。
具体地,对外能力为应用或应用实例能够对外提供服务的能力,可包括计算能力、存储能力和网络能力等,与硬件设备提供的资源相对应,即硬件设备为应用或应用实例提供部署资源,应用或应用实例对外(使用者或用户)提供服务,例如计算服务、存储服务和网络服务等,对外能力可通过对应用或应用实例提供以上服务的综合能力进行抽象评估得到;在一些实施例中,应用对外总能力可对应字段“total_capability”,部署一个应用实例所提供的对外能力可对应字段“inst_capability”;硬件类型可包括ARM架构、x86架构、RiSC-V架构、Snow Ridge架构和Denverton架构等,单个子蓝图对应单个硬件类型;在一些实施例中,硬件类型,又可称子蓝图类型,可对应字段“version_type”。
在一些实施例中,应用蓝图具体可包括蓝图(blueprint)和配置文件(manifest)等用于对应用或应用实例进行编排、调度或管理的文件形式,配置文件可包括部署(Deployment)、副本设置(Replica Set,简称RS)和副本控制器(Replication Controller,简称RC)等。
在一些实施例中,应用对外总能力可记载在应用蓝图中。
在一些实施例中,应用蓝图还包括蓝图标识,该蓝图标识用于表征应用蓝图为多版本蓝图,可对应字段“Multiblueprint”,多版本蓝图即包括有至少两个子蓝图的蓝图。
步骤S2、根据应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例。
在步骤S2中,根据应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例,且需满足部署的全部应用实例所提供的对外能力之和大于或等于应用对外总能力,即根据子蓝图在集群内对应硬件类型的硬件设备上部署应用实例,并保证部署完成的应用满足应用对外总能力要求。具体地,微服务平台端,即云端,可根据子蓝图,依据预先设置的部署规则或依据应用的针对性部署需求自选部署规则进行应用实例的部署。
在一些实施例中,子蓝图中还记载有部署优先级;步骤S2,根据应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例的步骤,具体包括:
根据部署优先级确定待部署子蓝图,并根据所确定的待部署子蓝图在集群内的硬件设备部署应用实例。
本公开实施例提供了一种应用部署方法,该方法可用于根据应用对外总能力,以及记载有硬件类型和部署一个应用实例所提供的对外能力的子蓝图,自适应地在相应硬件类型的硬件设备上进行应用实例的部署。
图2为本公开实施例中步骤S2的一种具体实施方法流程图。具体地,子蓝图中还记载有部署优先级;如图2所示,步骤S2,根据应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例的步骤,具体包括:
步骤S2a、根据部署优先级确定待部署子蓝图,并根据所确定的待部署子蓝图在集群内的硬件设备部署应用实例。
图3为本公开实施例中步骤S2a的一种具体实施方法流程图。具体地,步骤S2a、根据部署优先级确定待部署子蓝图,并根据所确定的待部署子蓝图在集群内的硬件设备部署应用实例的步骤,具体包括:
步骤S201、确定应用蓝图中部署优先级最高的子蓝图,作为待部署子蓝图。
在一些实施例中,部署优先级可根据用户选择或云端选择得到,部署优先级可对应字段“priority”。
步骤S202、确定待部署子蓝图对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量,并判断部署最大数量的应用实例的对外能力之和是否大于或等于第一待补充能力。
其中,第一待补充能力等于应用对外总能力与已部署应用实例的对外能力之和的差,待部署子蓝图为部署优先级最高的子蓝图时,第一待补充能力即等于应用对外总能力。
在步骤S202中,若判断出部署最大数量的应用实例的对外能力之和大于或等于第一待补充能力,则执行步骤S203;若判断出部署最大数量的应用实例的对外能力之和小于第一待补充能力,则执行步骤S204和步骤S205。
步骤S203、根据待部署子蓝图在对应硬件类型的硬件设备上部署应用实例且所部署的应用实例的对外能力之和大于或等于第一待补充能力。
其中,当所部署的应用实例的对外能力之和大于或等于第一待补充能力,则此时部署完成,且完成部署的应用满足应用对外总能力要求,可体现为恰好满足和富余满足两种形式。
在一些实施例中,在步骤S203中,所部署的应用实例数量为N,N满足:N*p≥Q,且(N-1)*p<Q;其中,p表示根据待部署子蓝图在对应硬件类型的硬件设备上部署一个应用实例所提供的对外能力,Q表示第一待补充能力;当满足以上条件时,在一定层面上即为恰好满足的形式。
步骤S204、根据待部署子蓝图在对应硬件类型的硬件设备上部署最大数量的应用实例。
在步骤S204中,部署最大数量的应用实例后,依旧不满足应用对外总能力要求。
步骤S205、选取比待部署子蓝图的部署优先级低一级的子蓝图作为新的待部署子蓝图。
在步骤S205中,选取比当前待部署子蓝图的部署优先级低一级的子蓝图作为新的待部署子蓝图,并针对新的待部署子蓝图,执行步骤S202中,确定待部署子蓝图对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量的步骤,进行循环部署。
在一些实施例中,步骤S2及其相关步骤中所进行的部署可不为物理意义上的部署,也可体现为以预部署的形式进行部署计算。
本公开实施例提供了一种应用部署方法,该方法可用于根据部署优先级选择指定的硬件类型进行应用实例部署,并满足相应的应用对外总能力要求,同时保证部署资源的合理利用。
图4为本公开实施例中步骤S2a的另一种具体实施方法流程图。该方法为基于图3所示方法的一种具体化可选实施方案。具体地,在步骤S205,选取比待部署子蓝图的部署优先级低一级的子蓝图作为新的待部署子蓝图的步骤之前,还包括:
步骤S2051、判断待部署子蓝图的部署优先级是否为最低级。
在步骤S2051中,若判断出待部署子蓝图的部署优先级为最低级,则执行步骤S2052;若判断出待部署子蓝图的部署优先级不为最低级,则执行步骤S205,选取比待部署子蓝图的部署优先级低一级的子蓝图作为新的待部署子蓝图的步骤。
步骤S2052、反馈应用部署失败信息。
图5为本公开实施例提供的另一种应用部署方法的流程图。如图5所示,该方法为基于图1所示方法的一种具体化可选实施方案。具体地,该应用部署方法还包括:
步骤S3a、响应于部署有应用实例的硬件设备下线,确定待补充缺口能力。
其中,该待补充缺口能力等于应用对外总能力与已部署且正常工作的应用实例的对外能力之和的差,或可称第一待补充缺口能力。
在一些实施例中,响应于部署有应用实例的硬件类型对应的硬件设备整体下线,确定待补充缺口能力,并根据除该硬件类型对应的子蓝图外的其他子蓝图继续部署应用实例。
在一些实施例中,响应于用户终端发送的新子蓝图,根据蓝图标识将该新子蓝图添加至应用蓝图中,后续可根据该子蓝图进行应用实例的部署。即当应用可部署在新的硬件类型对应的硬件设备上时,只需要在应用蓝图中新增一个子蓝图即可。
步骤S3b、响应于应用对外总能力增大,确定待补充缺口能力。
其中,该待补充缺口能力等于应用对外总能力的增大量,或可称第二待补充缺口能力。具体地,当应用对外总能力改变(增大或减小)时,可通过集群的更新接口更新应用蓝图。
在一些实施例中,响应于应用对外总能力减小,确定待回收能力,并根据子蓝图在集群内的硬件设备上回收应用实例,且回收的全部应用实例所提供的对外能力之和小于或等于待回收能力,其中,待回收能力等于应用对外总能力的减小量。
步骤S4、根据应用蓝图在集群内的硬件设备上继续部署应用实例,且继续部署的全部应用实例所提供的对外能力之和大于或等于待补充缺口能力。
其中,区别于步骤S2及其相关步骤中的“部署”,“继续部署”针对于存在待补充缺口能力的情况,并且,在进行“部署”时亦会出现存在待补充缺口能力的情况,“继续部署”可与“部署”同步进行,两者仅是在表述和流程位置上存在不同,实际应用时为类似的步骤,部署时使用的相关实施手段和判别标准均可运用于继续部署。
在一些实施例中,步骤S4及其相关步骤中所进行的继续部署可不为物理意义上的部署,也可体现为以预部署的形式进行部署计算。
图6为本公开实施例中步骤S4的一种具体实施方法流程图。具体地,子蓝图中还记载有部署优先级;如图5所示,在步骤S4中,根据应用蓝图在集群内的硬件设备上继续部署应用实例,且继续部署的全部应用实例所提供的对外能力之和大于或等于待补充缺口能力的步骤,具体包括:
步骤S401、确定应用蓝图中部署优先级最高的子蓝图,作为备选子蓝图。
步骤S402、确定备选子蓝图所对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量,并判断部署最大数量应用实例的对外能力之和是否大于或等于第二待补充能力。
其中,第二待补充能力等于待补充缺口能力与已继续部署的应用实例的对外能力之和的差。
在步骤S402中,若判断出部署最大数量的应用实例的对外能力之和大于或等于第二待补充能力,则执行步骤S403;若判断出部署最大数量的应用实例的对外能力之和小于第二待补充能力,则执行步骤S404和步骤S405。
步骤S403、将备选子蓝图作为待部署子蓝图,并根据待部署子蓝图在对应硬件类型的硬件设备上部署应用实例且所部署应用实例的对外能力之和大于或等于第二待补充能力。
步骤S404、将备选子蓝图作为待部署子蓝图,并根据待部署子蓝图在对应硬件类型的硬件设备上部署最大数量的应用实例。
步骤S405、选取比备选子蓝图的部署优先级低一级的子蓝图作为新的备选子蓝图。
在步骤S405中,选取比备选子蓝图的部署优先级低一级的子蓝图作为新的备选子蓝图,并针对新的备选子蓝图,执行步骤S402中,确定备选子蓝图所对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量的步骤,进行循环部署。
其中,步骤S401~步骤S405中的具体步骤流程可参见步骤S201~步骤S2052。
本公开实施例提供了一种应用部署方法,该方法可用于针对部分硬件设备下线或应用对外总能力更新,对已部署或正在部署的应用实例进行相应调整,以满足部署现状。
图7为本公开实施例提供的一种应用蓝图生成方法的流程图。如图7所示,该方法包括:
步骤S5、获取应用支持的硬件类型,在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力以及应用对外总能力,并生成与硬件类型一一对应的子蓝图。
其中,子蓝图中记载有对应的硬件类型和在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力。
步骤S6、整合全部子蓝图,并生成应用蓝图。
其中,该应用蓝图包括应用对外总能力和不同的至少两个子蓝图;在一些实施例中,应用对外总能力的对应字段也可包括在子蓝图中,各子蓝图记载有相同的应用对外总能力。
在一些实施例中,应用蓝图还包括蓝图标识,该蓝图标识用于表征应用蓝图为多版本蓝图,多版本蓝图即包括有至少两个子蓝图的蓝图。
步骤S7、将应用蓝图发送至微服务平台。
在步骤S7中,将应用蓝图发送至微服务平台,以供微服务平台根据应用蓝图在集群内的硬件设备上部署应用实例。
本公开实施例提供了一种应用蓝图生成方法,该方法可用于根据应用支持的硬件类型、部署一个应用实例所提供的对外能力和应用对外总能力,生成包括多个子蓝图的应用蓝图,以根据应用的能力需求选择相应硬件类型的硬件设备进行应用实例的部署。
下面对本公开提供的应用部署方法结合实际应用进行详细描述。
图8a为本公开实施例提供的又一种应用部署方法的流程图。具体地,该应用部署方法应用于微服务平台(PaaS),应用蓝图的数据包结构以副本控制器(RC)为样板,对应字段“ReplicationController”,该应用蓝图包括应用对外总能力、不同的两个子蓝图(子蓝图1和子蓝图2)以及蓝图标识,蓝图标识对应字段“MultiBluePrint”;其中,应用对外总能力记载于各子蓝图中,对应字段“total_capability”,子蓝图还记载有对应的硬件类型、在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力和部署优先级,分别对应字段“version_type”、“inst_capability”和“priority”,在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力即实例能力;在微服务平台对应的硬件设备集群中,对应两个子蓝图记载的硬件类型,存在两种类型的多个硬件设备,其中,第一类型硬件设备为denverton架构,第二类型硬件设备为snowridge架构。
微服务平台接收到应用蓝图后,根据蓝图标识确定应用蓝图为多版本蓝图,并解析出两个子蓝图;根据部署优先级,将对应的硬件类型为snowridge的子蓝图作为待部署子蓝图,并计算副本数,一个子蓝图的副本对应一个应用实例,根据应用对外总能力total_capability=50,单个snowridge类型的应用实例对应inst_capability=30,此时副本数应该为2,即为满足所部署的应用实例的对外能力之和大于或等于第一待补充能力,应部署两个应用实例,其中,第一待补充能力等于应用对外总能力与已部署应用实例的对外能力之和的差,为50。
此时存在三种情况:情况一,如图8a所示,其中,snowridge类型的的硬件设备中剩余资源所能够部署的应用实例的最大数量大于或等于2,直接部署两个应用实例,此时已满足应用对外总能力的要求。
图8b为本公开实施例提供的再一种应用部署方法的流程图。对应情况二,如图8b所示,其中,snowridge类型的的硬件设备中剩余资源所能够部署的应用实例的最大数量为1,则相应部署一个应用实例,将对应的硬件类型为denverton的子蓝图作为待部署子蓝图,并根据单个denverton类型的应用实例对应inst_capability=20,确定为满足所部署的应用实例的对外能力之和大于或等于第一待补充能力20,应部署一个应用实例,而denverton类型的硬件设备中剩余资源所能够部署的应用实例的最大数量大于或等于1,则直接部署一个应用实例,此时已满足应用对外总能力的要求。
图8c为本公开实施例提供的再一种应用部署方法的流程图。对应情况三,如图8c所示,其中,snowridge类型的的硬件设备中剩余资源所能够部署的应用实例的最大数量为0,则将对应的硬件类型为denverton的子蓝图作为待部署子蓝图,并根据单个denverton类型的应用实例对应inst_capability=20,确定为满足所部署的应用实例的对外能力之和大于或等于第一待补充能力50,应部署三个应用实例,而denverton类型的硬件设备中剩余资源所能够部署的应用实例的最大数量大于或等于3,则直接部署三个应用实例,此时已满足应用对外总能力的要求。
图8d为本公开实施例提供的再一种应用部署方法的流程图。针对图8a所描述的情况一,如图8d所示,响应于部署有应用实例的snowridge类型对应的硬件设备整体下线,由此两个部署于snowridge类型硬件设备的应用实例下线,确定待补充缺口能力,其中,该待补充缺口能力等于应用对外总能力与已部署且正常工作的应用实例的对外能力之和的差,为50,并根据除该硬件类型对应的子蓝图外的其他子蓝图,即denverton类型对应的子蓝图继续部署应用实例,此时即对应snowridge类型的硬件设备异常,将应用实例迁移至denverton类型的硬件设备。在一些实施例中,当存在数量大于两个的子蓝图时,根据部署优先级确定待部署子蓝图。
将对应的硬件类型为denverton的子蓝图作为待部署子蓝图,并根据单个denverton类型的应用实例对应inst_capability=20,确定为满足所部署的应用实例的对外能力之和大于或等于第二待补充能力,其中,第二待补充能力等于待补充缺口能力与已继续部署的应用实例的对外能力之和的差,为50,则应部署三个应用实例,而denverton类型的硬件设备中剩余资源所能够部署的应用实例的最大数量大于或等于3,则直接部署三个应用实例,此时已满足应用对外总能力的要求。
图9a为本公开实施例提供的再一种应用部署方法的流程图。具体地,在微服务平台对应的硬件设备集群中,对应应用蓝图中三个子蓝图(子蓝图1、子蓝图2和子蓝图3)记载的硬件类型,存在CPU为arm架构的家里网关、CPU为x86架构的工业机器人和CPU为RiSC-V架构架构的AR眼镜。
此时存在多种情况:情况一,如图9a所示,根据应用对外总能力、在对应硬件类型的硬件设备上部署一个应用实例所提供的对外能力和用户侧设定的部署优先级,通过与上述实施例类似的方法流程,在AR眼镜上部署两个应用实例,以满足应用对外总能力的要求。
图9b为本公开实施例提供的再一种应用部署方法的流程图。对应情况二,如图9b所示,云侧根据实际情况获悉应用在三种硬件设备上都有部署需求,即便此时AR眼镜的剩余资源足够满足应用对外总能力,但云端在所提供的对外能力之和大于或等于应用对外总能力的前提下,分别在家里网关、工业机器人和AR眼镜上部署一个实例,虽然回收在家里网关上部署的应用实例依旧满足应用对外总能力的要求,但其根据应用需求自适应硬件类型进行应用实例的部署,允许存在资源冗余。
本公开实施例提供了一种微服务平台,包括:
一个或多个处理器;存储装置,用于存储一个或多个程序;当该一个或多个程序被该一个或多个处理器执行,使得该一个或多个处理器实现如上述实施例中的任一应用部署方法。
本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述实施例中的任一应用部署方法中的步骤。
本公开实施例提供了一种通信终端,包括:
一个或多个处理器;存储装置,用于存储一个或多个程序;当该一个或多个程序被该一个或多个处理器执行,使得该一个或多个处理器实现如上述实施例中的应用蓝图生成方法。
本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述实施例中的应用蓝图生成方法中的步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (13)

1.一种应用部署方法,其中,包括:
接收应用蓝图,所述应用蓝图包括:至少两个子蓝图,各所述子蓝图中记载有对应的硬件类型、在对应的硬件类型的硬件设备上部署一个应用实例所提供的对外能力以及应用对外总能力;
根据所述应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例,部署的全部应用实例所提供的对外能力之和大于或等于所述应用对外总能力。
2.根据权利要求1所述的应用部署方法,其中,所述子蓝图中还记载有部署优先级;
所述根据所述应用蓝图和部署的全部应用实例所提供的对外能力在集群内的硬件设备上部署应用实例的步骤,具体包括:
根据所述部署优先级确定待部署子蓝图,并根据所确定的待部署子蓝图在集群内的硬件设备部署应用实例。
3.根据权利要求2所述的应用部署方法,其中,所述根据所述部署优先级确定待部署子蓝图,并根据所确定的待部署子蓝图部署应用实例的步骤,具体包括:
确定所述应用蓝图中部署优先级最高的子蓝图,作为所述待部署子蓝图;
确定所述待部署子蓝图对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量,并判断部署所述最大数量的应用实例的对外能力之和是否大于或等于第一待补充能力,所述第一待补充能力等于所述应用对外总能力减去已部署应用实例的对外能力之和;
若判断出部署所述最大数量的应用实例的对外能力之和大于或等于所述第一待补充能力,根据所述待部署子蓝图在对应硬件类型的硬件设备上部署应用实例且所部署的应用实例的对外能力之和大于或等于所述第一待补充能力;
若判断出部署所述最大数量的应用实例的对外能力之和小于所述第一待补充能力,根据所述待部署子蓝图在对应硬件类型的硬件设备上部署最大数量的应用实例;选取比所述待部署子蓝图的部署优先级低一级的子蓝图作为新的所述待部署子蓝图,并继续执行所述确定所述待部署子蓝图对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量的步骤。
4.根据权利要求3所述的应用部署方法,其中,在所述根据所述待部署子蓝图在对应硬件类型的硬件设备上部署应用实例且所部署的应用实例的对外能力之和大于或等于所述第一待补充能力的步骤中,所部署的应用实例数量为N,N满足:N*p≥Q,且(N-1)*p<Q;
其中,p表示根据所述待部署子蓝图在对应硬件类型的硬件设备上部署一个应用实例所提供的对外能力,Q表示所述第一待补充能力。
5.根据权利要求3所述的应用部署方法,其中,在选取比所述待部署子蓝图的部署优先级低一级的子蓝图作为新的所述待部署子蓝图的步骤之前,还包括:
判断所述待部署子蓝图的部署优先级是否为最低级;
若判断出所述待部署子蓝图的部署优先级为最低级,反馈应用部署失败信息;
若判断出所述待部署子蓝图的部署优先级不为最低级,继续执行所述选取比所述待部署子蓝图的部署优先级低一级的子蓝图作为新的所述待部署子蓝图的步骤。
6.根据权利要求1所述的应用部署方法,其中,还包括:
响应于部署有所述应用实例的硬件设备下线,确定待补充缺口能力,所述待补充缺口能力等于所述应用对外总能力与已部署且正常工作的应用实例的对外能力之和的差;
根据所述应用蓝图在集群内的硬件设备上继续部署应用实例,且继续部署的全部应用实例所提供的对外能力之和大于或等于所述待补充缺口能力。
7.根据权利要求1所述的应用部署方法,其中,还包括:
响应于所述应用对外总能力增大,确定待补充缺口能力,所述待补充缺口能力等于所述应用对外总能力的增大量;
根据所述应用蓝图在集群内的硬件设备上继续部署应用实例,且继续部署的全部应用实例所提供的对外能力之和大于或等于所述待补充缺口能力。
8.根据权利要求6或7所述的应用部署方法,其中,所述子蓝图中还记载有部署优先级;所述根据所述应用蓝图在集群内的硬件设备上继续部署应用实例,且继续部署的全部应用实例所提供的对外能力之和大于或等于所述待补充缺口能力的步骤,具体包括:
确定所述应用蓝图中部署优先级最高的子蓝图,作为备选子蓝图;
确定所述备选子蓝图所对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量,并判断部署所述最大数量应用实例的对外能力之和是否大于或等于第二待补充能力,所述第二待补充能力等于所述待补充缺口能力与已继续部署的应用实例的对外能力之和的差;
若判断出部署所述最大数量的应用实例的对外能力之和大于或等于所述第二待补充能力,将所述备选子蓝图作为待部署子蓝图,并根据所述待部署子蓝图在对应硬件类型的硬件设备上部署应用实例且所部署应用实例的对外能力之和大于或等于所述第二待补充能力;
若判断出部署所述最大数量的应用实例的对外能力之和小于所述第二待补充能力,将所述备选子蓝图作为所述待部署子蓝图,并根据所述待部署子蓝图在对应硬件类型的硬件设备上部署最大数量的应用实例;选取比所述备选子蓝图的部署优先级低一级的子蓝图作为新的所述备选子蓝图,并继续执行所述确定所述备选子蓝图所对应的硬件类型的硬件设备中剩余资源所能够部署的应用实例的最大数量的步骤。
9.根据权利要求1至7中任一所述的应用部署方法,其中,所述应用蓝图还包括:蓝图标识,所述蓝图标识用于表征所述应用蓝图包含多个所述子蓝图。
10.一种应用蓝图生成方法,其中,包括:
获取应用支持的硬件类型、在该硬件类型的硬件设备上部署一个应用实例所提供的对外能力以及应用对外总能力,并生成与所述硬件类型一一对应的子蓝图;
整合全部所述子蓝图,并生成应用蓝图;
将所述应用蓝图发送至微服务平台,以供所述微服务平台根据所述应用蓝图在集群内的硬件设备上部署应用实例。
11.一种微服务平台,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的应用部署方法。
12.一种通信终端,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求10中所述的应用蓝图生成方法。
13.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-9中任一所述的应用部署方法中的步骤,和/或,所述程序被处理器执行时实现如权利要求10中所述的应用蓝图生成方法中的步骤。
CN202010567511.7A 2020-06-19 2020-06-19 应用部署方法、应用蓝图生成方法、平台、终端和介质 Pending CN113821214A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010567511.7A CN113821214A (zh) 2020-06-19 2020-06-19 应用部署方法、应用蓝图生成方法、平台、终端和介质
US18/009,374 US20230221934A1 (en) 2020-06-19 2021-03-30 Application deployment method, application blueprint generation method, platform, terminal and medium
JP2022577782A JP7432774B2 (ja) 2020-06-19 2021-03-30 アプリケーション展開方法、アプリケーション・ブループリント生成方法、プラットフォーム、端末及び媒体
PCT/CN2021/083872 WO2021253914A1 (zh) 2020-06-19 2021-03-30 应用部署方法、应用蓝图生成方法、平台、终端和介质
EP21826418.2A EP4148565A4 (en) 2020-06-19 2021-03-30 APPLICATION METHOD, METHOD FOR GENERATING AN APPLICATION BLUEPRINT, PLATFORM, TERMINAL AND MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010567511.7A CN113821214A (zh) 2020-06-19 2020-06-19 应用部署方法、应用蓝图生成方法、平台、终端和介质

Publications (1)

Publication Number Publication Date
CN113821214A true CN113821214A (zh) 2021-12-21

Family

ID=78912067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010567511.7A Pending CN113821214A (zh) 2020-06-19 2020-06-19 应用部署方法、应用蓝图生成方法、平台、终端和介质

Country Status (5)

Country Link
US (1) US20230221934A1 (zh)
EP (1) EP4148565A4 (zh)
JP (1) JP7432774B2 (zh)
CN (1) CN113821214A (zh)
WO (1) WO2021253914A1 (zh)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350186B2 (en) * 2003-03-10 2008-03-25 International Business Machines Corporation Methods and apparatus for managing computing deployment in presence of variable workload
US20080306798A1 (en) * 2007-06-05 2008-12-11 Juergen Anke Deployment planning of components in heterogeneous environments
US20140201218A1 (en) * 2008-06-19 2014-07-17 Servicemesh, Inc. Systems and methods for providing ranked deployment options
US8266254B2 (en) * 2008-08-19 2012-09-11 International Business Machines Corporation Allocating resources in a distributed computing environment
US20130232470A1 (en) * 2012-03-03 2013-09-05 John C. Yung Launching an application stack on a cloud platform environment
CN102821000B (zh) * 2012-09-14 2015-12-09 乐视致新电子科技(天津)有限公司 提高PaaS平台可用性的方法
WO2014054231A1 (ja) 2012-10-02 2014-04-10 日本電気株式会社 情報システム構築支援装置、情報システム構築支援方法および記憶媒体
US9244669B2 (en) * 2014-06-26 2016-01-26 Vmware, Inc. Deploying an application across multiple deployment environments
US9645805B2 (en) * 2014-06-26 2017-05-09 Vmware, Inc. Application blueprints based on service templates to deploy applications in different cloud environments
US9825881B2 (en) 2014-09-30 2017-11-21 Sony Interactive Entertainment America Llc Methods and systems for portably deploying applications on one or more cloud systems
US10908938B2 (en) * 2015-06-16 2021-02-02 Vmware, Inc. Methods and systems to determine application license costs in a virtualized data center for use in virtual machine consolidation
US10871995B2 (en) 2016-09-29 2020-12-22 Amazon Technologies, Inc. Managed container instances
US10223109B2 (en) * 2016-12-22 2019-03-05 Juniper Networks, Inc. Automatic scaling of microservices applications
CN106897094A (zh) * 2017-02-24 2017-06-27 郑州云海信息技术有限公司 一种云环境下SaaS软件部署方法及装置
US11409719B2 (en) * 2017-07-27 2022-08-09 Sap Se Co-locating microservice persistence containers within tenant-specific database
EP4060481A1 (en) * 2017-09-19 2022-09-21 Huawei Technologies Co., Ltd. Application deployment method, apparatus, and system

Also Published As

Publication number Publication date
JP2023530737A (ja) 2023-07-19
JP7432774B2 (ja) 2024-02-16
US20230221934A1 (en) 2023-07-13
EP4148565A1 (en) 2023-03-15
WO2021253914A1 (zh) 2021-12-23
EP4148565A4 (en) 2023-11-01

Similar Documents

Publication Publication Date Title
EP2493118B1 (en) Information processing system
US10481935B2 (en) Management system, overall management node, and management method for managing virtualization resources in a mobile communication network
US10404616B2 (en) Virtual resource automatic selection system and method
CN110933178B (zh) 调整集群***内的节点配置的方法及服务器
CN112506659A (zh) 一种边缘设备的管理方法以及相关装置
CN112214288B (zh) 基于Kubernetes集群的Pod调度方法、装置、设备和介质
CN111314144B (zh) 通信数据处理方法、装置及数据处理终端
CN112351051A (zh) 云服务处理方法、装置、云服务器、***及存储介质
CN104239156A (zh) 一种外部服务的调用方法及***
CN113867957A (zh) 一种跨集群容器数量弹性伸缩实现方法及装置
CN108900435B (zh) 一种业务部署的方法、装置及计算机存储介质
CN112202829A (zh) 基于微服务的社交机器人调度***和调度方法
CN110737554A (zh) 一种磁盘故障预测***、装置及可读存储介质
CN114546493A (zh) 核共享方法及装置、处理核、电子设备、介质
CN113821214A (zh) 应用部署方法、应用蓝图生成方法、平台、终端和介质
CN115914404A (zh) 集群流量管理方法、装置、计算机设备和存储介质
CN112286622A (zh) 虚机迁移处理及策略生成方法、装置、设备及存储介质
CN113258679B (zh) 基于服务器实例缩容的电网监控***通道分配方法
CN115202934A (zh) 数据备份的方法、装置、设备及存储介质
CN114090201A (zh) 资源调度方法、装置、设备及存储介质
CN115774614A (zh) 资源调控方法、终端及存储介质
CN115878309A (zh) 资源分配方法、装置、处理核、设备和计算机可读介质
CN113760446A (zh) 资源调度方法、装置、设备及介质
CN112395072A (zh) 模型部署的方法、装置、存储介质及电子设备
CN116257360B (zh) 一种基于历史使用数据规划容器组资源的方法和***

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