微服务应用的自动缩放的制作方法

文档序号:14843740发布日期:2018-06-30 14:32阅读:156来源:国知局
微服务应用的自动缩放的制作方法

微服务架构可以指代包括一组可独立部署和模块化应用的软件应用,每个可独立部署和模块化的应用执行独特的过程并且相交互以实现软件应用的整体功能。



技术实现要素:

根据一些可能的实现,一种设备可以包括一个或多个处理器以接收标识将被执行的任务集合的信息。任务集合可以与微服务应用相关联。微服务应用可以与微服务集合相关联。一个或多个处理器可以基于参数集合和模型来确定任务集合的执行时间。参数集合可以至少包括标识任务集合中的任务的数目的第一参数,标识微服务集合中的第一微服务的第一实例数目的第二参数,标识与微服务集合中的第一微服务相关联的第一得分的第三参数,标识微服务集合中的第二微服务的第二实例数目的第四参数,以及标识与微服务集合中的第二微服务相关联的第二得分的第五参数。一个或多个处理器可以将执行时间与门限相比较。一个或多个处理器可以基于将执行时间与门限相比较来选择性地调节第一微服务的第一实例数目或第二微服务的第二实例数目。

根据一些可能的实现,一个或多个处理器还用于:确定执行时间不满足门限;基于第二得分减小第二微服务的第二实例数目;以及基于第一得分增加第一微服务的第一实例数目。

根据一些可能的实现,一个或多个处理器还用于:确定与任务集合的执行相关联的完成百分比;以及其中一个或多个处理器在确定任务集合的执行时间时,基于完成百分比来确定执行时间。

根据一些可能的实现,一个或多个处理器还用于:确定与任务集合的执行相关联的逝去时间;基于逝去时间来确定门限;以及其中一个或多个处理器在将执行时间与门限相比较时,基于确定的门限来将执行时间与门限相比较。

根据一些可能的实现,一个或多个处理器在选择性地调节第一微服务的第一实例数目时:减小第三微服务的第三实例数目,其中第三微服务与另一任务集合相关联;以及基于减小第三微服务的第三实例数目来增加第一微服务的第一实例数目。

根据一些可能的实现,一个或多个处理器还用于:供应用于执行微服务应用的网络设备集合;以及其中一个或多个处理器在确定任务集合的执行时间时,基于供应用于执行微服务应用的网络设备集合来确定任务集合的执行时间。

根据一些可能的实现,其中一个或多个处理器在选择性地调节第一微服务的第一实例数目时,基于第一得分来增加第一微服务的第一实例数目。

根据一些可能的实现,一种非暂态计算机可读介质可以存储一个或多个指令,这些指令在由设备的一个或多个处理器执行时引起一个或多个处理器接收标识要由包括多个微服务的微服务应用执行的任务集合的信息。一个或多个指令可以引起一个或多个处理器基于参数集合和模型来确定任务集合的执行时间。参数集合可以包括标识多个微服务中的第一微服务的第一实例数目的第一参数和标识多个微服务中的第二微服务的第二实例数目的第二参数。一个或多个指令可以引起一个或多个处理器将执行时间与门限相比较。门限可以与服务水平协议相关联。一个或多个指令可以引起一个或多个处理器基于将执行时间与门限相比较来选择性地调节第一实例数目或第二实例数目。

根据一些可能的实现,非暂态计算机可读介质所存储的一个或多个指令在由一个或多个处理器执行时进一步引起一个或多个处理器:确定执行时间不满足门限;其中使得一个或多个处理器选择性地调整第一实例数目的一个或多个指令,使得一个或多个处理器基于执行时间不满足门限而调整第一实例数目。

根据一些可能的实现,非暂态计算机可读介质所存储的一个或多个指令在由一个或多个处理器执行时进一步引起一个或多个处理器:基于与第一微服务相关联的指令度量确定与第一微服务相关联的分数;以及其中一个或多个指令在确定执行时间时,基于分数确定执行时间。

根据一些可能的实现,非暂态计算机可读介质所存储的一个或多个指令在由一个或多个处理器执行时进一步引起一个或多个处理器:接收标识第一微服务执行另一任务集合中的任务的子任务的请求的数目的信息;多个微服务中的其他微服务与请求的数目相关联;利用标识请求数目的信息来训练模型;以及使得一个或多个处理器基于参数集合和模型来确定执行时间的一个或多个指令,使得一个或多个处理器基于训练该模型来确定执行时间。

根据一些可能的实现,非暂态计算机可读介质所存储的一个或多个指令在由一个或多个处理器执行时进一步引起一个或多个处理器:识别第一微服务的资源利用率;基于资源利用率确定与第一微服务相关联的分数;其中使得一个或多个处理器确定执行时间的一个或多个指令,使得一个或多个处理器基于与第一微服务相关联的分数来确定执行时间。

根据一些可能的实现,非暂态计算机可读介质所存储的一个或多个指令在由一个或多个处理器执行时进一步引起一个或多个处理器:接收标识时间帧的信息;其中使得一个或多个处理器确定执行时间的一个或多个指令,使得一个或多个处理器基于时间帧来确定执行时间。

根据一些可能的实现,其中使得一个或多个处理器选择性地调整第一微服务的第一实例数目的非暂态计算机可读介质所存储的一个或多个指令,使得一个或多个处理器:减少第二微服务的第二实例数目;以及基于减少第二微服务的第二实例数目来增加第一微服务的第一实例数目。

根据一些可能的实现,一种方法可以包括由设备接收标识将被执行的任务集合的信息。任务集合可以与微服务应用相关联。微服务应用可以与微服务集合相关联。该方法可以包括由设备基于参数集合来确定任务集合的执行时间。参数集合可以包括标识微服务集合中的第一微服务的第一实例数目的第一参数、标识与第一微服务相关联的第一得分的第二参数、标识第二微服务的第二实例数目的第三参数、以及标识与微服务集合中的第二微服务相关联的第二得分的第四参数。该方法可以包括由设备确定执行时间是否满足门限。该方法可以包括由设备基于确定执行时间满足门限来选择性地调节第一实例数目或第二实例数目。

根据一些可能的实现,一种方法还包括:从另一设备接收标识将被调度的作业的信息,作业与任务集合相关联,作业与服务水平协议相关联,以及服务水平协议用于确定门限;以及其中接收标识任务集合的信息包括:基于标识作业的信息来接收标识任务集合的信息。

根据一些可能的实现,一种方法还包括:确定执行时间不满足门限;基于第一得分并且基于执行时间不满足门限来增加第一微服务的第一实例数目;基于第二得分并且基于增加第一实例数目来减小第二微服务的第二实例数目;以及其中基于执行时间来选择性地调节第一实例数目或第二实例数目包括:基于增加第一实例数目来调节第一实例数目并且基于减小第二实例数目来调节第二实例数目。

根据一些可能的实现,一种方法还包括:使用与训练任务集合的执行相关联的信息来训练模型;以及其中确定执行时间包括:基于模型来确定执行时间。

根据一些可能的实现,一种方法还包括:供应用于执行微服务应用的网络设备集合;以及其中确定执行时间包括:基于供应网络设备集合来确定执行时间。

根据一些可能的实现,一种方法还包括:减小第三微服务的第三实例数目,第三微服务与另一任务集合相关联;基于减小第三微服务的第三实例数目来增加第一微服务的第一实例数目;以及其中基于执行时间来选择性地调节第一实例数目或第二实例数目包括:基于增加第一实例数目来调节第一实例数目。

附图说明

图1A-1D是本公开中所描述的示例实现的概述的图;

图2是其中可以实现本公开中所描述的系统和/或方法的示例环境的图;

图3是图2的一个或多个设备的示例部件的图;以及

图4是用于基于任务集合的执行时间来自动调节微服务的实例数目的示例过程的流程图。

具体实施方式

示例实现的以下详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元件。

微服务应用可以包括应用,应用包括一组应用(例如,微服务),一组应用中的每个应用执行微服务应用的特定功能并且相交互以执行微服务应用的整体功能。微服务应用的微服务可以是独立可缩放的。也就是说,第一微服务可以与正在执行的第一数目的实例相关联,第二微服务可以与正在执行的第二数目的实例相关联等。

在一些情况下,调度设备可能对于供应网络设备来执行微服务(例如,执行微服务的服务器设备)效率不足。例如,调度设备可能向第一微服务供应不足数目的实例,和/或可能向第二微服务供应多余数目的实例。在任一情况下,资源(例如,处理器、存储器等)被低效地利用。

本公开中所描述的实现使得调度平台能够供应网络设备,使得能够有效地利用资源。例如,调度平台可以接收标识将被执行的与微服务应用相关联的任务集合的信息。在一些实现中,服务水平协议(SLA)可以指示将被完成的任务集合的时间帧(例如,时间量)(例如,门限)。调度平台可以基于参数集合和模型来确定任务集合的执行时间(例如,估计的执行时间,诸如与执行任务集合中的每个任务相关联的时间量)。另外,调度平台可以基于执行时间来选择性地且动态地调节微服务的实例的数目。以这种方式,本公开中所描述的实现使得调度平台能够动态地且自动地缩放特定微服务,使得总的执行时间可以减少和/或满足与SLA相关联的门限,从而节省正在执行微服务的网络设备的处理器和/或存储器资源,和/或节省网络资源。

图1A-1D是本公开中所描述的示例实现100的概述的图。如图1A并且通过附图标记110所示,调度平台(例如,服务器设备)可以接收标识将被执行的与微服务应用相关联的任务集合的信息。例如,假定微服务应用提供用于配置网络设备(例如,交换机、路由器、防火墙等)的功能。假定客户端设备(例如,计算设备)向调度平台提供(例如,基于来自用户的输入)对将被执行的任务集合的请求。例如,假定任务集合与配置5000个网络设备(例如,5000个任务)相关联。另外,与客户端设备相关联的用户和与提供(例如,经由调度平台)微服务应用相关联的网络运营商之间的服务水平协议(SLA)可以规定将被执行的任务集合的时间帧。假定时间帧是2小时(例如,门限)。

如附图标记120所示,调度平台可以基于参数集合和模型来确定任务集合的执行时间。例如,参数可以包括标识以下各项的信息:任务集合的完成百分比(例如,0%)、任务数目(例如5000)、与任务集合相关联的逝去时间(例如,0:00)、以及微服务应用的各种微服务的各种实例数目(例如,微服务1为15,微服务2为10,微服务N为4)。在一些实现中,调度平台可以基于模型(例如,执行5000个任务的时间量)来确定执行时间(例如,估计的执行时间)。例如,如本公开中其他地方所描述的,调度平台可以使用与先前执行的任务集合的相关联的信息来训练模型,并且可以使用该模型来预测其他任务集合的执行时间。

例如,如图所示,调度平台可以确定1小时的执行时间。另外,如图所示,调度平台可以确定执行时间满足与SLA相关联的门限(例如,2小时)。在这种情况下,调度平台可以供应网络设备以执行微服务的特定数目的实例(例如,引起特定网络设备执行微服务的特定数目的实例),以便在与SLA相关联的2小时时间帧内完成任务集合的执行。

如图1B所示,网络设备(例如,由调度平台供应的)可以执行任务集合。在一些实现中,微服务可以相交互以执行任务(例如,微服务可以执行任务的各种子任务)。作为示例,微服务1可以执行与模板服务相关联的第一子任务(例如,将各种配置数据转换为网络设备的配置)。微服务2可以执行与连接服务相关联的第二子任务(例如,将配置推送到网络设备)。因为微服务的多个实例正在执行,所以可以并行地执行多个任务。通过并行地执行任务,可以减少执行时间,从而节省网络设备的处理器资源和/或存储器资源。

如图1C并且通过附图标记140所示,调度平台可以确定执行时间不满足门限。例如,以与上面结合图1所描述的类似的方式,调度平台可以基于参数集合和模型来确定执行时间。例如,如图所示,调度平台确定1.5小时的执行时间(例如,将被执行的剩余任务集合的估计时间)。另外,与任务集合的执行相关联的逝去时间是40分钟。因此,在这种情况下,任务集合的总的执行时间可以是2小时10分钟(例如,不满足与SLA相关联的2小时的门限的执行时间)。

如图1D并且通过附图标记150所示,调度平台可以基于执行时间来选择性地调节微服务的实例数目。例如,如图所示,调度平台可以调节微服务1的实例数目(例如,从15增加到30),并且可以调节微服务2的实例数目(例如,从20减少到5)。如本公开中其它地方所描述的,调度平台可以基于得分、优先级等来动态地缩放特定微服务。

例如,假定与微服务2相比,微服务1与子任务的更大执行时间量相关联,比微服务2需要更多的资源,等等。另外,微服务2可以依赖于与微服务1相关联的子任务的执行结果。以这种方式,与微服务1相关联的更多子任务可以并行执行,从而减少与任务集合相关联的执行时间,并且从而节省网络设备和/或调度平台的处理器和/或存储器资源。另外,以这种方式,可以减少等待微服务1的执行结果的微服务2的实例数目,从而与执行保持空闲的微服务的多个实例相比,通过更有效地利用可用资源来节省网络设备的处理器和/或存储器资源。

如图1D所示,调度平台可以确定执行时间满足门限。例如,40分钟的逝去时间和54分钟的执行时间可以导致1小时34分钟的总的执行时间,从而满足2小时的门限。

通过接收标识任务集合的信息,并且基于各种参数和模型确定它们的执行时间,调度平台能够动态地且选择性地调节各种微服务的实例,从而使得能够在预期和/或估计的时间量内执行任务集合。以这种方式,调度平台可以缩放特定微服务,以便减少任务集合的执行时间,并且相应地减少正在执行微服务的设备的处理器和/或存储器资源的使用,和/或节省网络资源。

如上所述,图1A-1D仅作为示例提供。其他示例是可能的,并且可以不同于关于图1A-1D所描述的。

图2是其中可以实现本公开中所描述的系统和/或方法的示例环境200的图。如图2所示,环境200可以包括客户端设备210、调度平台220、网络设备230的集合和网络240。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合互连。

客户端设备210包括能够接收、生成、存储、处理和/或提供与将被执行的微服务应用相关联的信息的一个或多个设备。例如,客户端设备210可以包括计算设备,诸如台式计算机、膝上型计算机、平板计算机、手持计算机、服务器设备、移动电话(例如,智能电话或无线电话)或者相似类型的设备。

调度平台220包括能够自动地且动态地缩放与微服务应用相关联的微服务的一个或多个设备。在一些实现中,调度平台220可以被设计为模块化,使得可以根据特定需要来换入或换出某些软件部件。因此,可以容易地和/或快速地重新配置调度平台220以用于不同的用途。在一些实现中,调度平台220可以在网络设备230或网络设备230的集合中实现。

在一些实现中,如图所示,调度平台220可以被托管在云计算环境222中。值得注意的是,尽管本公开中公开的实现将调度平台220描述为被托管在云计算环境222中,但是在一些实现中,调度平台220可以不是基于云的(即,可以在云计算环境之外实现),或者可以是部分基于云的。

云计算环境222包括托管调度平台220的环境。云计算环境222可以提供不需要终端用户(例如,客户端设备210)知道托管调度平台220的系统和/或设备的物理位置和配置的服务,诸如计算、软件、数据访问、存储等。如图所示,云计算环境222可以包括计算资源224的集合(统称为“计算资源224”和单独地称为“计算资源224”)。

计算资源224包括一个或多个个人计算机、工作站计算机、服务器设备或者其他类型的计算和/或通信设备。在一些实现中,计算资源224可以托管调度平台220。云资源可以包括在计算资源224中执行的计算实例、在计算资源224中提供的存储设备、由计算资源224提供的数据传输设备等。在一些实现中,计算设备224可以经由有线连接、无线连接、或有线和无线连接的组合与其他计算资源224通信。

如图2另外所示,计算资源224包括一组云资源,诸如一个或多个应用(“APP”)224-1、一个或多个虚拟机(“VM”)224-2、虚拟化存储装置(“VS”)224-3、一个或多个管理程序(“HYP”)224-4等。

应用224-1包括可以被提供给客户端设备210或由客户端设备210访问的一个或多个软件应用。应用224-1可以消除在客户端设备210上安装和执行软件应用的需要。例如,应用224-1可以包括与调度平台220相关联的软件和/或能够经由云计算环境222提供的任何其它软件。在一些实现中,一个应用224-1可以经由虚拟机224-2向/从一个或多个其他应用224-1发送/接收信息。

虚拟机224-2包括类似物理机的执行程序的机器(例如,计算机)的软件实现。虚拟机224-2可以是系统虚拟机或过程虚拟机,这取决于虚拟机224-2对任何真实机器的使用和对应程度。系统虚拟机可以提供支持完整操作系统(“OS”)的执行的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个过程。在一些实现中,虚拟机224-2可以代表用户(例如,客户端设备210)执行,并且可以管理云计算环境222的基础设施,诸如数据管理、同步或长持续时间数据传输。

虚拟化存储装置224-3包括在计算资源224的存储系统或设备内使用虚拟化技术的一个或多个存储系统和/或一个或多个设备。在一些实现中,在存储系统的上下文中,虚拟化形态可以包括块虚拟化和文件虚拟化。块虚拟化可以指代自物理存储抽象(或分离)的逻辑存储,使得可以在不考虑物理存储或异构结构的情况下访问存储系统。该分离可以许可存储系统的管理员在管理员如何管理终端用户的存储方面的灵活性。文件虚拟化可以消除在文件级访问的数据与文件被物理存储的位置之间的依赖性。这可以优化存储使用、服务器整合和/或非中断性文件迁移的性能。

管理程序224-4可以提供使得能够在主计算机(诸如计算资源224)上并发执行多个操作系统(例如,“客户操作系统”)的硬件虚拟化技术。管理程序224-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。

网络设备230包括能够执行微服务应用的一个或多个设备。例如,网络设备230可以包括防火墙、路由器、网关、交换机、集线器、网桥、反向代理、服务器(例如,代理服务器、执行虚拟机的服务器等)、安全设备、入侵检测设备、负载平衡器或类似设备。在一些实现中,网络设备230可以基于由调度平台220的供应来执行与微服务应用相关联的微服务或微服务集合的特定数目的实例。

网络240包括一个或多个有线和/或无线网络。例如,网络240可以包括蜂窝网络(例如,第五代(5G)网络、长期演进(LTE)网络、第三代(3G)网络、码分多址(CDMA)网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网络(PSTN))、专用网络、自组织网络、内联网、因特网、基于光纤的网络、云计算网络等、和/或这些或其他类型的网络的组合。

图2所示的设备和网络的数目和布置被提供作为示例。实际上,可能存在与图2所示的设备和/或网络相比更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或不同布置的设备和/或网络。此外,图2所示的两个或更多个设备可以在单个设备中实现,或者图2所示的单个设备可以实现为多个分布式设备。另外地或替代地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。

图3是设备300的示例部件的图。设备300可以对应于客户端设备210、调度平台220、和/或网络设备230。在一些实现中,客户端设备210、调度平台220、和/或网络设备230可以包括一个或多个设备300和/或设备300的一个或多个部件。如图3所示,设备300可以包括总线310、处理器320、存储器330、存储部件340、输入部件350、输出部件360和通信接口370。

总线310包括允许设备300的部件之间的通信的部件。处理器320在硬件、固件或硬件和软件的组合中实现。处理器320采用以下形式:中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或另一类型的处理部件。在一些实现中,处理器320包括能够被编程以执行功能的一个或多个处理器。存储器330包括随机存取存储器(RAM)、只读存储器(ROM)、和/或存储用于由处理器320使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器)。

存储部件340存储与设备300的操作和使用相关的信息和/或软件。例如,存储部件340可以包括硬盘(例如,磁盘、光盘、磁光盘、和/或固态硬盘)、光盘(CD)、数字通用盘(DVD)、软盘、盒式磁带、磁带、和/或另一类型的非暂态计算机可读介质、连同相应的驱动器。

输入部件350包括使得设备300能够诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)来接收信息的部件。另外地或替代地,输入部件350可以包括用于感测信息的传感器(例如,全球定位系统(GPS)部件、加速度计、陀螺仪和/或致动器)。输出部件360包括提供来自设备300的输出信息的部件(例如,显示器、扬声器和/或一个或多个发光二极管(LED))。

通信接口370包括使得设备300能够例如经由有线连接、无线连接或其组合与其他设备通信的收发器类部件(例如,收发器和/或单独的接收器和发射器)的有线和无线连接。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光接口、同轴接口、红外接口,射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等。

设备300可以执行本公开中所描述的一个或多个过程。响应于处理器320执行由诸如存储器330和/或存储部件340等非暂态计算机可读介质存储的软件指令,设备300可以执行这些过程。计算机可读介质在本公开中被定义为非暂态存储器设备。存储器设备包括在单个物理存储设备内的存储空间或者跨越多个物理存储设备的存储空间。

软件指令可以经由通信接口370从另一计算机可读介质或从另一设备读取到存储器330和/或存储部件340中。当被执行时,存储在存储器330和/或存储部件340中的软件指令可以引起处理器320执行本公开中所描述的一个或多个过程。另外地或替代地,硬连线电路可以用于代替或结合软件指令来执行本公开中所描述的一个或多个过程。因此,本公开中所描述的实现不限于硬件电路和软件的任何特定组合。

图3所示的部件的数目和布置作为示例。实际上,设备300可以包括与图3所示的部件相比更多的部件、更少的部件、不同的部件或不同布置的部件。另外地或替代地,设备300的一组部件(例如,一个或多个部件)可以执行被描述为由设备300的另一组部件执行的一个或多个功能。

图4是用于基于任务集合的执行时间来自动调节微服务的实例数目的示例过程400的流程图。在一些实现中,图4的一个或多个处理块可以由调度平台220执行。在一些实现中,图4的一个或多个处理块可以由与诸如客户端设备210和/或网络设备230的、与调度平台220分离或包括调度平台220的另一设备或一组设备来执行。

如图4所示,过程400可以包括接收标识与微服务应用相关联的将被执行的任务集合的信息(框410)。例如,调度平台220可以接收标识与微服务应用相关联的将被执行的任务集合的信息。在一些实现中,微服务应用可以包括具有微服务集合的应用。在一些实现中,微服务可以包括执行微服务应用的特定功能的应用。在一些实现中,微服务应用可以与数百个、数千个等微服务相关联。

换句话说,微服务应用的微服务可以指代相交互(例如,通过网络)以执行微服务应用的整体功能的独立应用。作为示例,微服务应用可以接收与将被执行的任务相关联的输入,第一微服务可以执行任务的第一子任务(例如,与微服务应用的特定功能相关联),并且第一微服务可以向第二微服务提供第一子任务的执行结果。继续该示例,第二微服务然后可以基于第一子任务的执行结果来执行任务的第二子任务。在一些实现中,任务集合可以包括数千个、数百万个、数十亿个等任务和/或子任务。

在一些实现中,微服务可以经由应用编程接口(API)、消息传递队列等向其他微服务提供执行结果。以这种方式,微服务集合可以执行任务的相应子任务,并且相交互(例如,传达执行结果)以实现微服务应用的整体功能。

在一些实现中,任务集合可以与作业相关联。例如,客户端设备210可以向调度平台220提供对将被调度的作业的请求。在一些实现中,调度平台220可以基于对将被调度的作业的请求来接收标识将被执行的任务集合的信息。另外地或替代地,SLA可以指示完成作业的时间帧(例如,执行任务集合的时间量)。如本公开中其他地方所描述的,调度平台220可以基于SLA确定门限(例如,门限时间量),将执行时间与门限相比较,并且基于将执行时间与门限相比较来选择性地且动态地缩放特定微服务(例如,以使得能够在由SLA指示或从SLA确定的门限内完成作业)。

在一些实现中,调度平台220可以供应网络设备230以执行微服务应用。例如,调度平台220可以供应特定网络设备230以执行微服务的特定数目的实例,如本公开中其它地方所描述的。以这种方式,微服务应用的微服务可以被独立地缩放,从而使得能够调节任务集合的执行时间(例如,满足与SLA相关联的门限)。

如图4另外所示,过程400可以包括基于参数集合和模型来确定任务集合的执行时间(框420)。例如,调度平台220可以基于参数集合和模型来确定任务集合的执行时间。在一些实现中,执行时间可以指代执行任务集合的时间帧(例如,时间量)。例如,作业可以在基于正被执行的任务集合中的每个任务的特定时间量(例如,执行时间)内完成。在一些实现中,执行时间可以指代估计的执行时间。也就是说,调度平台220可以使用模型来估计执行时间。

在一些实现中,调度平台220可以实现机器学习技术以确定任务集合的执行时间。例如,调度平台220可以使用一个或多个人工智能和/或机器学习技术来分析数据(例如,训练数据,诸如特定任务的历史执行时间等)并且创建模型。这些技术可以包括例如监督的和/或非监督的技术,诸如人工网络、基于案例的推理、贝叶斯统计、学习自动机、隐马尔科夫模型、线性分类器、二次分类器、决策树、关联规则学习等。另外地或者替代地,调度平台220可以使用另一种计算机实现的技术(诸如机器感知或计算机视觉)来分析数据并且生成模型。

作为示例,调度平台220可以接收标识任务集合的信息、标识参数的信息以及标识任务集合的执行时间的信息,并且可以使用这些信息来训练模型。以这种方式,调度平台220可以接收标识将被调度用于执行的任务的信息,并且可以基于模型和与任务相关联的参数来确定任务的执行时间。在一些实现中,调度平台220可以实现确定任务集合的执行时间的模型。作为特定示例,调度平台220可以基于以下回归模型来确定执行时间:

HΘ(x)=Θ1+Θ2*(微服务应用的类型)+Θ3*(任务的数目)+Θ4*(逝去时间)+Θ5*(时间段)+Θ6*(完成百分比)+Θ7*(微服务的实例数目1*得分)+Θ8*(微服务的实例数目2*得分)+...Θn*(微服务的实例数目N*score)

在一些实现中,Θ1,Θ2,...,Θn可以包括变量。例如,调度平台220可以用特定值来初始化变量。另外地或替代地,调度平台220可以基于接收与执行附加任务集合相关联的附加信息来更新(例如,调节)与变量相关联的值。在一些实现中,调度平台220可以配置有用于变量的特定值,并且基于接收与已经被执行的任务集相关联的信息来调节这些值。

在一些实现中,模型可以包括与任务集合相关联的参数集合。在一些实现中,调度平台220可以配置有参数集合(例如,由网络运营商等)。另外地或者替代地,调度平台220可以基于接收对将被执行的任务集合的请求和/或基于执行任务集合来接收标识特定值的信息。作为示例,调度平台220可以接收标识将被执行的任务数目的信息。作为另一示例,调度平台220可以基于执行任务集合(例如,随着作业进行)来确定逝去时间和/或完成百分比。

在一些实现中,参数可以包括标识与任务集合相关联的微服务应用的类型的信息(例如,“微服务应用的类型”)。另外地或者替代地,参数可以指代标识将被执行的任务数目(例如,“任务数目”)的信息。另外地或者替代地,参数可以指代标识与任务集合的执行相关联的逝去时间的信息,诸如自从任务集合的执行开始以来经过的时间量(例如,“逝去时间”)。

另外地或替代地,参数可以指代标识与任务集合的执行相关联的时间段的信息,例如一天中的时间、一周中的一天、一月中的一周等(例如,“时间段”)。另外地或替代地,参数可以指代标识任务集合的完成百分比的信息,例如如果执行了1000个任务中的500个任务(例如,“完成百分比”),则为50%。

另外地或替代地,参数可以包括标识微服务的实例数目的信息(例如,“微服务1的实例数目”、“微服务2的实例数目”、“微服务N的实例数目”)。另外地或替代地,参数可以包括标识与微服务相关联的得分的信息(例如,得分、等级、值、指定、优先级等)。

在一些实现中,调度平台220可以基于与微服务相关联的一组因子来确定特定微服务的得分。例如,调度平台220可以确定一组因子的值,诸如与微服务相关联的指令度量(例如,微服务的代码行(LOC),诸如源代码行(SLOC)、物理SLOC、逻辑SLOC(LLOC)等)、微服务的执行时间(例如,历史执行时间)、微服务执行子任务的请求数目(例如,来自其他微服务的API调用数目)、微服务的资源利用(例如,处理器、存储器等)、微服务执行子任务的时间量(例如,不等待来自另一微服务的执行结果)等。

在一些实现中,调度平台220可以基于与该组因子相关联的值来确定微服务的得分。另外地或替代地,调度平台220可以将特定权重分配给特定因子,并且基于权重确定得分。以这种方式,调度平台220可以确定第一微服务的第一得分,确定第二微服务的第二得分等。例如,和包括更少的代码行的第二微服务相比,包括更多代码行的第一微服务可以与更高的得分相关联。作为另一示例,与和较少执行时间相关联的第二微服务相比,与更大执行时间量(例如,第一微服务执行子任务的时间量)相关联的第一微服务可以与更高的得分相关联。

在一些实现中,得分可以指示特定微服务比另一微服务需要更多资源(例如,对于在时间帧内将被执行的任务集合)。例如,增加与高得分相关联的微服务的实例数目可以减少任务集合的执行时间。另外,减少与低得分相关联的微服务的实例数目可以不显著影响任务集合的执行时间(例如,与和高得分相关联的微服务的实例数目减少相比)。

在一些实现中,调度平台220可以使用训练数据(例如,与已经执行的任务集合相关联的信息、与任务集合相关联的参数、以及任务集合的执行时间)来训练模型。例如,调度平台220可以将已知的执行时间与已知的参数相关。以这种方式,调度平台220可以使用与特定参数值相关联的模型,并且确定(例如,估计)执行时间。在一些实现中,调度平台220可以使用与第一微服务应用集合相关联的训练数据来训练模型,然后关于第二微服务应用集合使用该模型。

在一些实现中,调度平台220可以基于该模型确定将被执行的每个微服务的初始实例数目。例如,调度平台220可以输入用于模型的参数的各种值,并且基于输入值确定执行时间。另外,调度平台220初始可以输入标识“微服务应用的类型”参数的值,针对“任务数目”参数输入标识将被执行的任务数目的值,针对“逝去时间”参数输入标识逝去时间的值(例如,零),输入标识与“时间段”参数相关联的时间的值,针对“完成百分比”参数输入标识完成百分比的值(例如,零),以及输入标识每个微服务的相应实例数目和微服务的相应得分的值。

在一些实现中,调度平台220可以确定每个微服务的初始实例数目(例如,要提供以执行的实例的数目)。在一些实现中,调度平台220可以确定可以用于执行微服务应用的可用资源(例如,网络设备230的)的量。例如,调度平台220可以从网络设备230接收标识网络设备230的可用资源的信息。调度平台220可以基于标识可用资源的信息来确定每个微服务的初始实例数目。在一些实现中,可用资源的量可以是有限的。也就是说,可以执行微服务的不超过门限数目的实例。这样,调度平台220可以缩放特定微服务,使得执行时间可以满足门限(例如,与SLA相关联),如本公开中其它地方所描述的。

在一些实现中,调度平台220可以基于微服务的得分来确定每个微服务的初始实例数目。例如,与和较低得分相关联的第二微服务相比,调度平台220可以使用该模型来输入与较高得分相关联的第一微服务的较大数目的实例。作为示例,与最高得分相关联的微服务可以被分配最多的实例,与第二最高得分相关联的微服务可以被分配第二多的实例等。在一些实现中,调度平台220可以以线性方式分配实例(例如,具有第三高得分的微服务有2个实例,具有第二高得分的微服务有4个实例,以及具有最高得分的微服务有6个实例)。或者,调度平台220可以以指数方式分配实例(例如,具有第三高得分的微服务有4个实例,具有第二高得分的微服务有16个实例,以及具有最高得分的微服务有64个实例)。这些仅仅是调度平台220可以分配微服务的实例的方式的示例。实际上,调度平台220可以使用不同的分配策略。

在一些实现中,调度平台220可以基于标识在时间帧内执行的另一任务集合的信息来确定每个微服务的初始实例数目。例如,调度平台220可以标识在时间帧内执行的另一作业(例如,满足与SLA相关联的门限),确定与另一作业相关联的微服务的初始实例数目,并且使用与该另一作业相关联的实例数目作为作业的初始值(例如,当初始供应网络设备230时)。

以这种方式,调度平台220可以确定参数集合的初始值,基于初始值和模型确定执行时间,并且将执行时间与门限相比较,如下所述。

如图4另外所示,过程400可以包括确定执行时间是否满足门限(框430)。例如,调度平台220可以确定执行时间是否满足门限。在一些实现中,调度平台220可以基于SLA来确定门限。例如,调度平台220可以从客户端设备210接收标识作业请求的信息,并且SLA可以基于作业请求来指示完成作业的时间帧(例如,在特定量的时间内)。作为特定示例,假定SLA指示在时间帧(例如,3小时)内完成作业(例如,任务集合中的每个任务都要执行)。在这种情况下,门限可以对应于时间帧(例如,门限为3小时),或者可以基于时间帧来确定(例如,时间帧的90%、时间帧的95%等)。如本公开中其他地方所描述的,门限可以随着作业的逝去时间改变而改变(例如,可以偏移与逝去时间相关联的时间量)。

如图4另外所示,如果执行时间不满足门限(框430-否),则过程400可以包括调节微服务应用的微服务的实例数目(框440)。例如,如果执行时间不满足门限,则调度平台220可以调节一个或多个微服务的实例数目(例如,以确定满足门限的执行时间)。

在一些实现中,调度平台220可以基于微服务的得分来调节微服务的实例数目。例如,调度平台220可以增加与最高得分相关联的第一微服务的实例数目,并且减少与最低得分相关联的第二微服务的实例数目。另外地或替代地,调度平台220可以增加位于前列的(例如,前三个、前五个等)微服务的实例数目(例如,基于得分),并且减少位于后列的(例如,后三个、后五个等)微服务的实例数目。在一些实现中,调度平台220可以减少第一微服务的实例数目,以使得第二微服务能够利用之前被分配给第一微服务的资源(例如,基于有限量的可用资源)。

以这种方式,调度平台220可以调节微服务的实例数目,并且执行与框420相关联的操作(例如,确定微服务的已更新实例数目是否可以使得能够在与SLA相关联的门限内完成作业)。

如图4另外所示,如果执行时间满足门限(框430-是),则过程400可以包括供应网络设备以执行与微服务应用相关联的任务集合(框450)。例如,如果执行时间满足门限,则调度平台220可以供应网络设备230以执行每个微服务的多个实例。在一些实现中,调度平台220可以供应每个微服务的初始数目的实例以由网络设备230在任务集合的执行开始时执行。例如,调度平台220可以基于与模型相关联地使用的值(例如,用于确定满足门限的执行时间)来供应每个微服务的多个实例。

在一些实现中,调度平台220初始可以基于确定满足门限的执行时间来供应网络设备230以执行微服务的特定数目的实例。另外地或替代地,调度平台220初始可以基于确定最小执行时间(例如,最低潜在执行时间、优化的执行时间等),来供应网络设备230以执行微服务的特定数目的实例。例如,调度平台220可以调节特定微服务的实例数目,确定执行时间,并且重复,直到达到最低潜在执行时间或优化的执行时间,或者直到已经达到门限迭代数目。以这种方式,调度平台220可以通过标识可以导致最低执行时间、优化的执行时间等的微服务的特定实例数目来优化执行时间。另外,以这种方式,本公开中所描述的实现节省调度平台220和/或网络设备230的处理器和/或存储器资源,和/或节省网络资源。

在一些实现中,调度平台220可以在任务集合正被执行时执行框420-450的操作。例如,调度平台220可以以与逝去时间和/或任务集合的执行的完成百分比(例如,5%、10%、20%)相关联的各种间隔(例如,每五分钟、每二十分钟等),来执行框420-450的迭代操作。以这种方式,调度平台220可以监测任务集合的执行,并且如果调度平台220确定任务集合的执行不与总执行时间的步调一致上,则调度平台220可以选择性地且动态地调节特定微服务的实例数目以满足门限(例如,从而使得特定微服务能够被缩放,使得任务集合可以在该时间帧内执行)。以这种方式,本公开中所描述的实现使得能够减少执行时间,从而节省调度平台220和/或网络设备230的处理器和/或存储器资源,和/或节省网络资源。

在一些实现中,调度平台220可以在任务集合正被执行时确定附加门限,并且将执行时间(例如,使用模型确定的)和附加门限相比较。例如,假定任务集合与1小时的逝去时间相关联。另外,假定门限(例如,与SLA相关联的时间帧)为3小时。在这种情况下,调度平台可以确定执行时间(例如,如结合框420所描述的),并且将执行时间与2小时的门限相比较(例如,因为与SLA相关联的初始门限是3小时,并且已经过去了一小时,或者3-1=2)。也就是说,调度平台220可以将与SLA相关联的门限调节已经过去的时间量。

在一些实现中,并且以与上面结合框440描述的类似的方式,调度平台220可以在任务集合正被执行时调节微服务的实例数目(例如,以使得任务集合在SLA的时间框架内完成)。

在一些实现中,如果网络设备230包括可以用于执行特定微服务的附加实例的附加资源,则调度平台220可以标识可以被微服务使用的可用资源。在一些实现中,如果网络设备230减少了可以用于执行特定微服务的附加实例的资源量,则调度平台220可以调节(例如,减少)特定微服务的实例数目。例如,调度平台220可以标识与最低得分相关联的微服务,可以标识与五个最低得分相关联的微服务等,并且减少微服务的实例数目。

在一些实现中,调度平台220可以标识另一任务集合(例如,与另一作业相关联),并且可以减少与另一任务集合相关联地执行的微服务的实例数目。例如,调度平台220可以确定与另一作业相关联地执行的另一微服务集合是否可以按比例缩小,同时仍然能够在特定时间帧执行另一任务集合(例如,根据与另一作业相关联的SLA)。以这种方式,调度平台220可以调节(例如,减少)与作业或另一作业相关联地执行的特定微服务的实例数目,以使得其他微服务能够利用之前被分配给该特定微服务的资源。

在一些实现中,调度平台220可以调节(例如,增加)特定微服务的实例数目(例如,基于调节另一微服务的实例的数目,和/或基于标识可用资源)。在一些实现中,调度平台220可以调节与最大得分相关联的微服务的实例数目。另外地或替代地,调度平台220可以调节与前五个最高得分、前十个最高得分等相关联的微服务的实例数目。

在一些实现中,调度平台220可以基于调节微服务的实例数目来确定执行时间,并且确定执行时间是否满足门限(例如,基于逝去时间和与SLA相关联的初始门限确定的门限)。例如,调度平台220可以迭代地执行框420-450的操作,并且选择性地调节微服务的实例数目。以这种方式,调度平台220可以监测任务集合的执行,并且动态地缩放特定微服务,使得任务集合可以在特定时间帧内执行。

以这种方式,本公开中所描述的实现使调度平台220能够自动地且动态地缩放微服务,使得可以减少任务集合的总的执行时间。以这种方式,本公开中所描述的实现节省调度平台220和网络设备230的处理器和/或存储器资源,和/或节省网络资源。

图4示出了过程400的示例框,在一些实现中,过程400可以包括与图4所示的框相比更多的框、更少的框、不同的框或不同布置的框。另外地或替代地,可以并行执行过程400的框中的两个或更多个。

前面的描述指示调度平台可以动态地且选择性地调节微服务的实例,以便减少任务集合的执行时间。调度平台可以接收标识与微服务应用相关联的将被执行的任务集合的信息。调度平台然后可以基于参数和模型来确定任务集合的执行时间。估计的执行时间基于参数和模型。调度平台在监测参数的同时可以对微服务的实例进行调节,以使得任务集合满足所需的门限执行时间。这种动态且选择性的调节可以节省执行任务集合的各种设备的处理器、存储器和网络资源。

前述公开内容提供了说明和描述,但是并不旨在穷尽或将实现限制为所公开的精确形式。根据上述公开,修改和变化是可能的,或者可以从实现的实践中获得。

如本公开中所使用的,术语“部件”旨在被广泛地解释为硬件、固件、和/或硬件和软件的组合。

本公开中结合门限描述了一些实现。如本公开中所使用的,满足门限可以指代大于门限、多于门限、高于门限、大于或等于门限、小于门限、少于门限、低于门限、小于或等于门限、等于门限等的值。

显而易见,本公开中所描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现的限制。因此,本公开中描述了系统和/或方法的操作和行为,而不参考特定的软件代码——应当理解,可以设计软件和硬件以实现基于本公开中的描述的系统和/或方法。

即使在权利要求中记载和/或在说明书中公开了特征的特定组合,但是这些组合并不旨在限制可能的实现的公开。事实上,这些特征中的很多可以以没有在权利要求中具体叙述和/或在说明书中公开的方式组合。虽然下面列出的每个从属权利要求可以直接仅依赖于一个权利要求,但是可能的实现的公开包括每个从属权利要求与权利要求组中的每个其他权利要求组合。

本公开中使用的元件、动作或指令不应当被解释为关键或必要的,除非明确地如此描述。此外,如本文所使用的,冠词“一个(a)”和“一个(an)”旨在包括一个或多个项目,并且可以与“一个或多个(one or more)”互换使用。此外,如本公开中所使用的,术语“集合”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关和不相关项目的组合等),并且可以与“一个或多个”可互换地使用。在仅意图一个项目时,使用术语“一个(one)”或类似语言。此外,如本公开中所使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在是开放式术语。此外,短语“基于”旨在表示“至少部分地基于”,除非另有明确说明。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1