CN115964157A - 一种应用服务调度方法、装置、存储介质及电子设备 - Google Patents
一种应用服务调度方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115964157A CN115964157A CN202111181153.7A CN202111181153A CN115964157A CN 115964157 A CN115964157 A CN 115964157A CN 202111181153 A CN202111181153 A CN 202111181153A CN 115964157 A CN115964157 A CN 115964157A
- Authority
- CN
- China
- Prior art keywords
- application service
- application
- scheduling
- target
- service
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种应用服务调度方法、装置、存储介质及电子设备,其中,方法包括:获取正在所述资源池上运行的目标应用服务,获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。采用本申请,将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少应用服务所占用的资源池大小,减少在资源池上的所需的内存和运算能力,提升云服务器的内存利用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用服务调度方法、装置、存储介质及电子设备。
背景技术
开发者和软件相关工作人员常用容器编排引擎对容器化应用进行部署,容器编排引擎常见的可进行部署的空间包括资源池和云服务器,但是将应用程序的中的应用服务部署在资源池中会花费更多的维护成本,现有的容器编排引擎会在应用服务需求量变大时将应用服务部署在资源池中,但是当应用服务需求量变小时却不会将资源池中的应用服务进行删除或重新部署,增大了在资源池中所占资源。
发明内容
本申请实施例提供了一种应用服务调度方法、装置、存储介质及电子设备,可以将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少应用服务所占用的资源池大小,减少在资源池上的所需的内存和运算能力,提升云服务器的内存利用率。所述技术方案如下:
第一方面,本申请实施例提供了一种应用服务调度方法,应用于容器编排引擎,所述容器编排引擎包括资源池和云服务器,所述方法包括:
获取正在所述资源池上运行的目标应用服务;
获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中;
基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
第二方面,本申请实施例提供了一种应用服务调度装置,所述装置包括:
应用服务获取模块,用于获取正在所述资源池上运行的目标应用服务;
分组模块,用于获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中;
调度模块,用于基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请一个或多个实施例中,获取正在所述资源池上运行的目标应用服务,获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。通过将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少了应用服务所占用的资源池大小,减少了在资源池上的所需的内存和运算能力,提升了云服务器的内存利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种应用服务调度的距离示意图;
图2是本申请实施例提供的一种应用服务调度方法的流程示意图;
图3是本申请实施例提供的一种应用服务调度方法的流程示意图;
图4是本申请实施例提供的一种基于黑名单的目标应用服务获取方法的流程示意图;
图5是本申请实施例提供的一种应用服务调度装置的结构示意图;
图6是本申请实施例提供的一种应用服务获取模块的结构示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的应用服务调度方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的应用服务调度装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。本申请实施例中的应用服务调度装置可以为容器编排引擎(Kubernetes),也可以为容器编排引擎中可以实现应用服务调度方法的模块。所述容器编排引擎可以管理云平台中的应用程序,可以对应用程序进行自动化部署、扩容处理或缩容处理等,可以理解的是每个应用程序中都包括至少一个应用服务,所述应用服务可以用于实现应用程序的不同功能,例如即时通信应用程序中,可以包括视频通信应用服务、语音通信应用服务等。容器编排引擎可以对应用程序和应用程序的应用服务进行管理,将应用服务部署在资源池或云服务器上,所述云服务器(Elastic Compute Service,ECS)是物理或虚拟基础架构,用于执行应用和信息处理存储,可使用虚拟化软件创建云服务器,将物理(裸机)服务器划分为若干虚拟服务器,企业或用户使用、访问云服务器来处理工作负载以及存储信息,通过在线界面远程访问云服务器功能。所述资源池可以为一种弹性容器实施例(Elastic ContainerInstance,ECI),资源池没有服务器的概念,资源池可以给用户和企业提供内存和处理器(central processing unit,CPU)算力。可以理解的是一般企业或用户需要会租用云服务器和资源池,云服务器是按照固定CPU核心和内存大小的服务器进行出租的,所能租用的云服务器的大小是固定的,例如可以将一定大小的服务器包月、包年进行出租,而资源池不会是按照企业和用户的需求来提供算力或内存,是根据企业或用户所占用的资源池的大小和时间来计算费用的,所以需要在资源池上占用更少的资源,提高对云服务器的利用率。应用服务调度方法还可以设置至少一个命名空间,所述命名空间用于不同应用程序在逻辑上做的隔离,可以区别不同的代码功能,例如应用程序A可以属于命名空间A,应用程序B可以同样属于命名空间A也可以属于命名空间B,应用服务归属于哪一个命名空间,可以与应用服务所属的应用程序或应用服务的程序标签有关,所述程序标签可以代表应用服务的开发团队、程序代码功能等,所以同一个命名空间中的应用服务可以在资源池上运行,也可以在云服务器上运行。
请一并参见图1,为本申请实施例提供了一种应用服务调度的举例示意图,可以理解的是用户或企业一般会根据日常所需的内存、流量来租用一定大小和数量的云服务器,例如可以租用相当于200台、规格为32核128GB内存的服务器的云服务器,但是应用程序会存在访问量陡增的突发情况,需要进行扩容处理,即增加应用服务来进行应对访问量陡增的情况,而出于提高云服务运行内存利用率的考虑,云服务器的内存和算力只能满足日常使用而不能满足扩容处理的情况,所以容器编排引擎会将云服务器中部署不下的应用服务部署在资源池中,等到突发情况结束后再将应用服务数量减少至日常所需数量,即缩容处理,但是容器编排引擎进行缩容处理时并不会优先删除资源池中的应用服务而是随机选取应用服务进行缩容,所以应用服务调度装置会将资源池中的应用服务回迁至云服务器中,减少应用服务所占用的资源池大小,减少在资源池上的所需的内存和算力。如图1所示,应用程序中原本有三个应用程序:应用程序A、应用程序B和应用程序C,当遇到例如访问量陡增的突发情况时,应用服务调度装置进行扩容处理,增加应用服务D和应用服务E来帮助应对突发情况,但是若云服务器中已经没有了剩余的内存来部署应用服务D和应用服务E,则应用服务调度装置会给应用服务D和应用服务E这类由于云服务器资源不够还需要部署在资源池中的应用服务打上污点标签,当有应用服务被打上了污点标签时,应用服务调度装置就会确认云服务器中资源不够,应用服务调度装置会将应用服务D和应用服务E部署在资源池中,突发情况结束后应用服务调度装置会进行缩容处理,即将应用程序的应用服务随机减少至原本的数量,例如将应用服务B和应用服务D进行删除,虽然进行了缩容处理但是应用服务E是在云服务器资源有空余的情况下仍然在资源池上运行,所以应用服务调度装置可以将在资源池中运行的应用服务E调度至云服务器,从而减少了应用服务所占用的资源池大小,减少了在资源池上的所需的内存和算力。本申请实施例中的目标应用服务即为在资源池上运行,并且需要被应用服务调度装置调度到云服务器上的应用服务,例如图1中的应用服务E。
下面结合具体的实施例对本申请提供的应用服务调度方法进行详细说明。
请参见图2,为本申请实施例提供了一种应用服务调度方法的流程示意图。如图2所示,本申请实施例的所述方法可以包括以下步骤S101-S103。
S101,获取正在所述资源池上运行的目标应用服务。
具体的,应用服务调度装置进行了缩容处理后,若检测到资源池上还有应用服务在运行,则表示需要将资源池上的应用服务重新调度至云服务器。应用服务调度装置可以遍历所有的应用服务来获取到正在资源池上运行的目标应用服务。可以理解的用户或相关工作人员可以预先设置黑名单与白名单,白名单中的应用服务可以重新调度到云服务器上,而黑名单中的应用服务不需要重新调度到云服务器上。应用服务调度装置可以先获取命名空间白名单,命名空间白名单中的命名空间为可能存在需要回迁到云服务器的应用服务,然后在命名空间白名单所包含的命名空间中找到,正在资源池上运行的目标应用服务,所述目标应用服务就是需要调度到云服务器上的应用服务,可以减少应用服务调度装置的计算量,提高应用服务调度效率,也避免对一些允许在资源池上运行的应用服务进行错误的调度。
S102,获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中。
具体的,应用服务调度装置可以获取目标应用服务对应的应用程序信息,所述应用程序信息可以为目标应用服务所述的应用程序和应用程序的分组信息,所述分组信息可以为应用程序的名称、本地存储地址等,可以表示应用程序与调度分组的对应关系,然后应用服务调度装置可以根据应用程序信息找到对应的调度分组,并将目标应用程序添加至调度分组中。同一个调度分组中的应用程序都拥有相同的分组信息,或所属同一个应用程序。
S103,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
具体的,云服务器中剩余的内存、算力是有限的,可能不是资源池上所有需要重新调度的应用服务都可以调度到云服务器上,需要根据云服务器中可运行应用服务的剩余数量来对资源池上应用服务进行重新调度。应用服务调度装置可以依次对调度分组中的应用服务进行重新调度,例如先获取一个目标调度分组,获取此时云服务器中可运行应用服务的剩余数量,若剩余数量大于或等于目标调度分组中的应用服务的服务数量,则表示目标调度分组中的所有应用服务都可以进行重新调度,由于一个调度分组中的应用服务属于同一个应用程序,应用服务调度装置可以直接将目标调度分组对应的应用程序重新部署在云服务器上;若剩余数量小于服务数量,则表示云服务器剩余的内存不足不能够将目标调度分组中所有的应用服务进行重新调度,所以可以在目标调度分组中确定满足剩余数量的至少一个应用服务,将这至少一个应用服务调度到云服务器上运行,达到减少所占用资源池大小、提高云服务器内存利用率的目的。
在本申请实施例中,获取正在所述资源池上运行的目标应用服务,获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。通过将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少了应用服务所占用的资源池大小,减少了在资源池上的所需的内存和运算能力,提升了云服务器的内存利用率。
请参见图3,为本申请实施例提供了一种应用服务调度方法的流程示意图。如图3所示,本申请实施例的所述方法可以包括以下步骤S201-S208。
S201,获取命名空间集合中的目标命名空间。
具体的,应用服务调度装置进行了缩容处理后,若检测到资源池上还有应用服务在运行,则表示需要将资源池上的应用服务重新调度至云服务器。应用服务调度装置可以遍历所有的应用服务来获取到正在资源池上运行的目标应用服务。若应用服务调度装置遍历所有的应用服务来找到在资源池上运行的目标应用服务,所需要的计算量十分庞大且复杂、应用服务调度效率较低,所以应用服务调度装置可以以命名空间为单位来获取目标应用服务,且可以理解的是不是所有的命名空间中的应用服务都需要被重新调度,而目标命名空间中的应用服务可能是需要被重新调度的,除了目标命名空间之外的命名空间中的应用服务是允许在资源池上运行的,所以应用服务调度装置可以在命名空间集合中先获取目标命名空间,再在目标命名空间集合中获取目标应用服务。
可选的,用户或相关工作人员可以预先设置黑名单与白名单,白名单中的应用服务可以重新调度到云服务器上,而黑名单中的应用服务不需要重新调度到云服务器上。例如用户或相关人员可以预先在应用服务调度装置中设置命名空间白名单,只有命名空间白名单中的命名空间中的存在正在资源池上运行且需要进行重新调度的目标应用服务,所以应用服务调度装置可以先检测是否存在命名空间白名单或命名空间白名单是否为空。若命名空间白名单不为空,则将应用服务调度装置可以将命名空间白名单中的命名空间确认为目标命名空间,即对命名空间白名单中的命名空间均进行检查,查找是否存在目标应用服务;若所述命名空间白名单为空或不存在命名空间白名单,则应用服务调度装置可以将命名空间集合中的所有命名空间确认为目标命名空间,即所有的命名空间都需要进行检查来查找目标应用服务。
可以理解的是,应用服务调度装置中可以设置命名空间白名单也可以设置命名空间黑名单,属于命名空间黑名单中命名空间的应用服务是允许在资源池上运行的,不需要进行重新调度。若命名空间黑名单不为空,则应用服务调度装置可以获取命名空间黑名单中的命名空间,并将命名空间集合中,除命名空间黑名单中的命名空间之外的其他命名空间确认为目标命名空间。
S202,在所述目标命名空间中确定运行在所述资源池上的应用服务集合。
具体的,由于同一个命名空间中的应用服务,既可能是在云服务器上运行的也可能是在资源池上运行,所以应用服务调度装置可以在目标命名空间中确定运行在资源池上的应用服务集合,应用服务集合中的应用服务均归属于目标命名空间,并且在资源池上运行。
S203,基于标签黑名单和/或应用程序黑名单,获取所述应用服务集合中的目标应用服务。
具体的,用户或相关工作人员可以在应用服务调度装置中设置标签黑名单和应用程序黑名单,标签黑名单中保存有至少一个应用服务的程序标签,应用程序黑名单中保存有至少一个应用程序的应用标识,所述应用标识可以为应用程序的名称、开发团队名称、功能或存储地址等可以用于区分应用程序的标识。标签黑名单中的程序标签对应的应用服务,和应用程序黑名单中应用程序所包含的应用服务是允许在资源池上运行并不需要被重新调度的。应用服务调度装置可以获取应用服务集合中各应用服务的程序标签和各应用服务所属应用程序的应用标识,若应用服务集合中的第一应用服务的程序标签不存在于标签黑名单,并且第一应用服务对应的应用标识也不存在于应用程序黑名单,则应用服务调度装置将第一应用服务确认为目标应用服务。
请一并参见图4,为本申请实施例提供了一种基于黑名单的目标应用服务获取方法的流程示意图,所述方法可以包括以下步骤S301-S304。
S301,确定应用服务集合中的第一应用服务,获取所述第一应用服务的程序标签,获取所述第一应用服务所属应用程序的应用标识。
具体的,应用服务调度装置可以在应用服务集合中依次确定第一应用服务,例如可以给应用服务集合中的应用服务按照0、1、2……的顺序标上标号,按照从小到大的顺序在应用服务集合中确定第一应用服务。应用服务调度装置可以获取第一应用服务的程序标签,和第一应用服务所属应用程序的应用标识。
S302,判断所述第一应用服务对应的程序标签是否存在于标签黑名单。
具体的,应用服务调度装置可以判断第一应用服务对应的程序标签是否存在于标签黑名单,可以理解的是应用服务的程序标签可以代表应用服务的开发团队、程序代码功能等,若第一应用服务对应的程序标签存在于标签黑名单,则表示由于第一应用服务的团队或功能等原因,被应用服务调度装置允许在资源池中运行,不需要被重新调度,则执行S301,应用服务调度装置按照标号顺序将下一个应用服务确认为第一应用服务,直到应用服务集合中所有的应用服务均被检测过,即若第一应用服务的标号对应的数值大于或等于应用服务集合中应用服务的总数,则执行S204。
若第一应用服务对应的程序标签不存在于标签黑名单,则需要判断第一应用服务所述的应用程序是否被允许在资源池上运行,执行S303。
S303,判断所述第一应用服务对应的应用标识是否存在于应用程序黑名单。
具体的,应用服务调度装置可以判断第一应用服务所属应用程序的应用标识是否存在于应用程序黑名单,若第一应用服务对应的应用标识存在于应用程序黑名单,则表示应用程序调度装置允许应用程序中的应用服务在资源池上运行,不需要进行重新调度,则执行S301,应用服务调度装置按照标号顺序将下一个应用服务确认为第一应用服务,直到应用服务集合中所有的应用服务均被检测过,即若第一应用服务的标号对应的数值大于或等于应用服务集合中应用服务的总数,则执行S204。
若第一应用服务对应的应用标识不存在与应用程序黑名单,则执行S304。
可以理解的是S302和S303的执行顺序可以调换,此处不做限定。
S304,将所述第一应用服务确认为目标应用服务。
具体的,由于第一应用服务对应的程序标签不存在于标签黑名单,且第一应用服务对应的应用标识也不存在于应用程序黑名单,则表示第一应用服务从开发团队层面上、功能类别层面上或所属应用程序层面上均不被允许在资源池上运行,第一应用服务是需要进行重新调度的应用服务,应用服务调度装置会将第一应用服务确认为目标应用服务。
可以理解的是,除了可以设置标签黑名单和应用程序黑名单,还可以设置标签白名单和应用程序白名单,标签白名单中保存有至少一个应用服务的程序标签,应用程序黑名单中保存有至少一个应用程序的应用标识。顾名思义,标签白名单中的程序标签对应的应用服务,和应用程序白名单中应用程序所包含的应用服务是不允许在资源池上运行、需要被重新调度的。若应用服务集合中的第一应用服务的程序标签存在于标签白名单,和/或,第一应用服务对应的应用标识存在于应用程序白名单,则应用服务调度装置将第一应用服务确认为目标应用服务。可以理解的是,出于减少占用资源池大小、提高云服务器内存利用率的目的,只有少部分的应用服务不需要进行回迁,即标签黑名单和应用程序黑名单的内容比标签白名单和应用程序白名单的内容要少,所以应用服务调度装置只启用标签黑名单和应用程序黑名单,可以不启用或不设置标签白名单和应用程序白名单,可以提高应用服务调度的效率。
可选的,目标应用服务是由于之前云服务器中资源不够而被应用服务调度装置部署到资源池中的,所以目标应用服务存在污点标签。当应用服务调度装置在资源池中确定了目标应用服务后会进行资源整合并对目标应用服务进行重新调度,即步骤S204-207,在执行S204之前应用服务调度装置可以将目标应用服务的污点标签去除。因为按照应用服务调度装置的运行逻辑,当有应用服务存在污点标签时,表示云服务器的资源不足,所以在进行资源整合时应用服务调度装置会将云服务器未被占用的资源和资源池中未被占用的资源均考虑进去,有可能出现目标应用服务没有被调度到云服务器上而被再次调度到资源池上的错误情况。若在进行资源整合前去除目标应用服务的污点标签,则在进行资源整合时应用服务调度装置只会考虑云服务器中未被占用的资源,可以避免调度出错,提高应用服务调度的准确性。
S204,获取所述目标应用服务所属的应用程序,获取所述应用程序的分组标签,基于所述分组标签,将所述目标应用服务添加至所述分组标签对应的调度分组中。
具体的,应用服务调度装置可以获取目标应用服务所属的应用程序,并获取应用程序的分组标签,所述分组标签可以为应用程序的名称、保存地址或开发商名称等,也可以为用户或相关工作人员为应用程序所设置的标号等,一个分组标签对应一个调度分组。应用服务调度装置可以将目标应用服务添加至分组标签对应的调度分组中,则一个调度分组的中的应用服务均属于同一个应用程序。
S205,获取所述调度分组中应用服务的服务数量,获取所述云服务器中可运行应用服务的剩余数量。
具体的,应用服务调度装置就可以得到多个调度分组,依次对调度分组中的应用服务进行重新调度。应用服务调度装置获取其中一个调度分组中应用服务的服务数量,服务数量就是调度分组中应用服务的个数,再获取云服务器中可运行应用服务的剩余数量,剩余数量就是当前云服务器中还可以运行应用服务的个数。
S206,若所述服务数量小于或等于所述剩余数量,则将所述调度分组对应的应用程序部署至所述云服务器。
具体的,若服务数量小于或等于剩余数量,则表示云服务器中有足够的资源可以运行调度分组中的所有应用服务,也表示调度分组对应的应用程序中所包含的所有应用服务均可以在云服务器上运行,应用服务调度装置可以直接对调度分组对应的应用程序进行重新部署,将应用程序部署至云服务器。
S207,若所述服务数量大于所述剩余数量,则在所述调度分组中确定满足所述剩余数量的至少一个应用服务,将所述至少一个应用服务调度至所述云服务器上运行。
具体的,若服务数量大于剩余数量,则表示云服务器中的资源不足,不能运行调度分组中的所有应用服务,应用服务调度装置可以在调度分组中确实满足剩余数量的至少一个应用服务,将这至少一个应用服务调度至云服务器上运行。可以理解的是,当剩余数量为0时,表示云服务器中已经没有剩余的资源可以运行应用服务了,则结束应用服务调度。若再次检测到云服务器中有足够的资源且资源池上有正在运行的应用服务,则再次执行S201。
在本申请实施例中,获取命名空间集合中存在需要重新调度的应用服务的目标命名空间,在目标命名空间中按照标签黑名单和应用程序黑名单获取目标应用服务,减少应用服务调度装置的计算量,提高应用服务调度效率,避免对不需要重新调度的应用服务进行误操作。并且可以去除目标应用服务上的污点标签,避免应用服务调度装置对将目标应用服务再次调度到资源池上,提高了应用服务调度的准确性。获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。通过将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少了应用服务所占用的资源池大小,减少了在资源池上的所需的内存和运算能力,提升了云服务器的内存利用率。
下面将结合附图5-附图6,对本申请实施例提供的应用服务调度装置进行详细介绍。需要说明的是,附图5-附图6中的应用服务调度装置,用于执行本申请图2和图3所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图2和图3所示的实施例。
请参见图5,其示出了本申请一个示例性实施例提供的应用服务调度装置的结构示意图。该应用服务调度装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括应用服务获取模块11、分组模块12和调度模块13。
应用服务获取模块11,用于获取正在所述资源池上运行的目标应用服务;
具体的,请一并参见图6,为本申请实施例提供了一种应用服务获取模块的结构示意图。所图6所示,所述持应用服务获取模块11可以包括:
命名空间获取单元111,用于获取命名空间集合中的目标命名空间;
应用服务获取单元112,用于在所述目标命名空间中,确定运行在所述资源池上的目标应用服务。
可选的,所述命名空间获取单元111具体用于若所述命名空间白名单不为空,则将所述命名空间白名单中的命名空间确认为目标命名空间;
若所述命名空间白名单为空,则将所述命名空间集合中的所有命名空间确认为所述目标命名空间。
可选的,所述应用服务获取单元112具体用于在所述目标命名空间中确定运行在所述资源池上的应用服务集合;
基于标签黑名单和/或应用程序黑名单,获取所述应用服务集合中的目标应用服务。
可选的,所述应用服务获取单元112具体用于获取所述应用服务集合中各应用服务的程序标签,获取所述应用服务集合中各应用服务所属应用程序的应用标识;
若所述应用服务集合中的第一应用服务对应的程序标签不存在于标签黑名单,且所述第一应用服务对应的应用标识不存在于应用程序黑名单,则将所述第一应用服务确认为目标应用服务。
分组模块12,用于获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中;
可选的,所述分组模块12具体用于获取所述目标应用服务所属的应用程序,获取所述应用程序的分组标签;
基于所述分组标签,将所述目标应用服务添加至所述分组标签对应的调度分组中。
调度模块13,用于基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
可选的,所述调度模块13具体用于获取所述调度分组中应用服务的服务数量,获取所述云服务器中可运行应用服务的剩余数量;
若所述服务数量小于或等于所述剩余数量,则将所述调度分组对应的应用程序部署至所述云服务器;
若所述服务数量大于所述剩余数量,则在所述调度分组中确定满足所述剩余数量的至少一个应用服务,将所述至少一个应用服务调度至所述云服务器上运行。
在本实施例中,获取命名空间集合中存在需要重新调度的应用服务的目标命名空间,在目标命名空间中按照标签黑名单和应用程序黑名单获取目标应用服务,减少应用服务调度装置的计算量,提高应用服务调度效率,避免对不需要重新调度的应用服务进行误操作。并且可以去除目标应用服务上的污点标签,避免应用服务调度装置对将目标应用服务再次调度到资源池上,提高了应用服务调度的准确性。获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。通过将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少了应用服务所占用的资源池大小,减少了在资源池上的所需的内存和运算能力,提升了云服务器的内存利用率。
需要说明的是,上述实施例提供的应用服务调度装置在执行应用服务调度方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用服务调度装置与应用服务调度方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图4所示实施例的所述应用服务调度方法,具体执行过程可以参见图1-图4所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图4所示实施例的所述应用服务调度方法,具体执行过程可以参见图1-图4所示实施例的具体说明,在此不进行赘述。
请参考图7,其示出了本申请一个示例性实施例提供的电子设备的结构示意图。本申请中的电子设备可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个服务器内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户页面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统,包括基于Android系统深度开发的系统、苹果公司开发的IOS系统,包括基于IOS系统深度开发的系统或其它系统。
存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于电子设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏。
所述触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在图7所示的电子设备中,处理器110可以用于调用存储器120中存储的应用服务调度应用程序,应用于容器编排引擎,所述容器编排引擎包括资源池和云服务器,并具体执行以下操作:
获取正在所述资源池上运行的目标应用服务;
获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中;
基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
在一个实施例中,所述处理器110在执行获取正在所述资源池上运行的目标应用服务时,具体执行以下操作:
获取命名空间集合中的目标命名空间;
在所述目标命名空间中,确定运行在所述资源池上的目标应用服务。
在一个实施例中,所述处理器110在执行获取命名空间集合中的目标命名空间时,具体执行以下操作:
若所述命名空间白名单不为空,则将所述命名空间白名单中的命名空间确认为目标命名空间;
若所述命名空间白名单为空,则将所述命名空间集合中的所有命名空间确认为所述目标命名空间。
在一个实施例中,所述处理器110在执行在所述目标命名空间中,确定运行在所述资源池上的目标应用服务时,具体执行以下操作:
在所述目标命名空间中确定运行在所述资源池上的应用服务集合;
基于标签黑名单和/或应用程序黑名单,获取所述应用服务集合中的目标应用服务。
在一个实施例中,所述处理器110在执行基于标签黑名单和/或应用程序黑名单,获取所述应用服务集合中的目标应用服务时,具体执行以下操作:
获取所述应用服务集合中各应用服务的程序标签,获取所述应用服务集合中各应用服务所属应用程序的应用标识;
若所述应用服务集合中的第一应用服务对应的程序标签不存在于标签黑名单,且所述第一应用服务对应的应用标识不存在于应用程序黑名单,则将所述第一应用服务确认为目标应用服务。
在一个实施例中,所述处理器110在执行获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中时,具体执行以下操作:
获取所述目标应用服务所属的应用程序,获取所述应用程序的分组标签;
基于所述分组标签,将所述目标应用服务添加至所述分组标签对应的调度分组中。
在一个实施例中,所述处理器110在执行基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行时,具体执行以下操作:
获取所述调度分组中应用服务的服务数量,获取所述云服务器中可运行应用服务的剩余数量;
若所述服务数量小于或等于所述剩余数量,则将所述调度分组对应的应用程序部署至所述云服务器;
若所述服务数量大于所述剩余数量,则在所述调度分组中确定满足所述剩余数量的至少一个应用服务,将所述至少一个应用服务调度至所述云服务器上运行。
在本实施例中,获取命名空间集合中存在需要重新调度的应用服务的目标命名空间,在目标命名空间中按照标签黑名单和应用程序黑名单获取目标应用服务,减少应用服务调度装置的计算量,提高应用服务调度效率,避免对不需要重新调度的应用服务进行误操作。并且可以去除目标应用服务上的污点标签,避免应用服务调度装置对将目标应用服务再次调度到资源池上,提高了应用服务调度的准确性。获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。通过将资源池上运行的应用服务按照对应的应用程序进行分组,再将调度分组中的应用服务重新调度至云服务器,减少了应用服务所占用的资源池大小,减少了在资源池上的所需的内存和运算能力,提升了云服务器的内存利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种应用服务调度方法,其特征在于,应用于容器编排引擎,所述容器编排引擎包括资源池和云服务器,所述方法包括:
获取正在所述资源池上运行的目标应用服务;
获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中;
基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
2.根据权利要求1所述的方法,其特征在于,所述获取正在所述资源池上运行的目标应用服务,包括:
获取命名空间集合中的目标命名空间;
在所述目标命名空间中,确定运行在所述资源池上的目标应用服务。
3.根据权利要求2所述的方法,其特征在于,所述获取命名空间集合中的目标命名空间,包括:
若所述命名空间白名单不为空,则将所述命名空间白名单中的命名空间确认为目标命名空间;
若所述命名空间白名单为空,则将所述命名空间集合中的所有命名空间确认为所述目标命名空间。
4.根据权利要求2所述的方法,其特征在于,所述在所述目标命名空间中,确定运行在所述资源池上的目标应用服务,包括:
在所述目标命名空间中确定运行在所述资源池上的应用服务集合;
基于标签黑名单和/或应用程序黑名单,获取所述应用服务集合中的目标应用服务。
5.根据权利要求4所述的方法,其特征在于,所述基于标签黑名单和/或应用程序黑名单,获取所述应用服务集合中的目标应用服务,包括:
获取所述应用服务集合中各应用服务的程序标签,获取所述应用服务集合中各应用服务所属应用程序的应用标识;
若所述应用服务集合中的第一应用服务对应的程序标签不存在于标签黑名单,且所述第一应用服务对应的应用标识不存在于应用程序黑名单,则将所述第一应用服务确认为目标应用服务。
6.根据权利要求1所述的方法,其特征在于,所述获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中,包括:
获取所述目标应用服务所属的应用程序,获取所述应用程序的分组标签;
基于所述分组标签,将所述目标应用服务添加至所述分组标签对应的调度分组中。
7.根据权利要求1所述的方法,其特征在于,所述基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行,包括:
获取所述调度分组中应用服务的服务数量,获取所述云服务器中可运行应用服务的剩余数量;
若所述服务数量小于或等于所述剩余数量,则将所述调度分组对应的应用程序部署至所述云服务器;
若所述服务数量大于所述剩余数量,则在所述调度分组中确定满足所述剩余数量的至少一个应用服务,将所述至少一个应用服务调度至所述云服务器上运行。
8.一种应用服务调度装置,其特征在于,所述装置包括:
应用服务获取模块,用于获取正在所述资源池上运行的目标应用服务;
分组模块,用于获取所述目标应用服务对应的应用程序信息,将所述目标应用服务添加至所述应用程序信息对应的调度分组中;
调度模块,用于基于所述云服务器中可运行应用服务的剩余数量,将所述调度分组中的所述目标应用服务调度至所述云服务器上运行。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111181153.7A CN115964157A (zh) | 2021-10-11 | 2021-10-11 | 一种应用服务调度方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111181153.7A CN115964157A (zh) | 2021-10-11 | 2021-10-11 | 一种应用服务调度方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964157A true CN115964157A (zh) | 2023-04-14 |
Family
ID=87351537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111181153.7A Pending CN115964157A (zh) | 2021-10-11 | 2021-10-11 | 一种应用服务调度方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964157A (zh) |
-
2021
- 2021-10-11 CN CN202111181153.7A patent/CN115964157A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
CN110704173A (zh) | 任务调度方法、调度系统、电子设备及计算机存储介质 | |
CN111158879B (zh) | 一种系统资源的调度方法,装置、机器可读介质和系统 | |
CN107133064B (zh) | 原生应用的页面热更新方法及装置 | |
WO2020103925A1 (zh) | 一种容器化虚拟网络功能的部署方法和装置 | |
CN110096685A (zh) | 一种设备标识生成方法及装置 | |
CN110908707B (zh) | 一种资源打包方法、装置、服务器及存储介质 | |
CN105045602A (zh) | 一种构建Hadoop应用开发框架的方法、装置及电子装置 | |
CN112463123A (zh) | 任务编译方法、装置、网络节点、系统及存储介质 | |
CN113190282A (zh) | 安卓运行环境构建的方法及装置 | |
CN111476479A (zh) | 分配任务的方法、装置和系统 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN113760543A (zh) | 资源管理方法、装置、电子设备及计算机可读存储介质 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN111953503A (zh) | Nfv资源部署编排方法和网络功能虚拟化编排器 | |
CN110113391A (zh) | 一种客户端上线方法、装置及一种客户端运行方法、装置 | |
CN112882765A (zh) | 数字孪生模型调度方法和装置 | |
CN107025126B (zh) | 一种资源调度方法、nfvo和系统 | |
CN111459510A (zh) | 跨网络操作系统的安装方法、装置、电子设备及介质 | |
CN115964157A (zh) | 一种应用服务调度方法、装置、存储介质及电子设备 | |
CN115794386A (zh) | 虚拟机的资源调用方法、设备及存储介质 | |
EP3848800B1 (en) | Method and apparatus for displaying message box, terminal and storage medium | |
CN110290172B (zh) | 容器应用克隆方法、装置、计算机设备及存储介质 | |
CN112817691B (zh) | 资源分配方法、装置、设备及介质 | |
CN113568708B (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 |