CN117992174A - 一种资源调度方法及装置 - Google Patents
一种资源调度方法及装置 Download PDFInfo
- Publication number
- CN117992174A CN117992174A CN202211351970.7A CN202211351970A CN117992174A CN 117992174 A CN117992174 A CN 117992174A CN 202211351970 A CN202211351970 A CN 202211351970A CN 117992174 A CN117992174 A CN 117992174A
- Authority
- CN
- China
- Prior art keywords
- function instance
- resource scheduling
- scheduling platform
- architecture
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000006870 function Effects 0.000 claims description 400
- 238000012545 processing Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 6
- 238000005129 volume perturbation calorimetry Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
一种资源调度方法及装置,可应用于包括资源调度平台、第一架构和第二架构的服务提供系统,第一架构用于为该服务提供系统的租户提供无服务器serverless服务,第二架构与第一架构不同;该方法包括:资源调度平台根据述租户发送的第一配置信息在第一架构内运行第一函数实例,第一函数实例中加载有第一程序代码;以及根据所述租户发送的第二配置信息在第二架构内运行第二函数实例,第二函数实例中加载有第二程序代码,第一函数实例和所述第二函数实例用于配合运行租户的一项业务;资源调度平台获取所述第二函数实例的被调用信息,在确定第二函数实例的被调用信息满足释放条件,释放第二函数实例。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源调度方法及装置。
背景技术
随着云、大数据、容器等技术的成熟,无服务器(Serverless)架构应运而生。Serverless架构,允许自动扩展实例、按执行付费、将事件驱动的功能部署到任何云,与有服务器架构相比,Serverless最大的特点是按需使用服务,降低了维护应用程序的总成本,能够更快地构建更多逻辑,被广泛地应用于混合容器云中。
当前有服务器架构下的(微)服务的运行方式开始向serverless化发展。在现有的一种serverless架构改造的方案中,服务或微服务的程序代码运行在serverless架构中的函数实例中,由于serverless架构下的函数实例可按需创建,运行完成便会被销毁,该函数实例可实时或在被销毁前,将获取的某些数据(如从服务端获取的数据)写入存储设备(如磁盘或硬盘)进行持久化存储,后续当该函数实例被重新拉起或其他函数实例需要使用该数据时,可以直接从该存储设备中读取该数据,不需要函数实例频繁地重新获取数据。
该方案需要部署额外的存储设备,增加了资源和成本开销,且从存储设备读取数据的效率较低,系统性能无法保证。
发明内容
本申请提供一种资源调度方法及装置,用于在不增加额外的存储设备的基础上,实现serverless化改造,并提升系统性能。
第一方面,本申请实施例提供了一种资源调度方法,该方法可应用于服务提供系统,该服务提供系统包括资源调度平台、第一架构和第二架构,第一架构用于为该系统的租户提供无服务器(serverless)服务,第二架构与第一架构不同。在一种实现中,第一架构和第二架构可以是不同的云服务,如第一架构为提供服务计算的云服务,第二架构为提供虚拟机和/或容器等算力的云服务,资源调度平台能够跨越多个架构进行资源调度。
该方法可以由资源调度平台执行,在该方法中,资源调度平台根据租户发送(即来租户配置的)的第一配置信息在第一架构内运行第一函数实例;资源调度平台根据该租户发送的第二配置信息在第二架构内运行第二函数实例,第一函数实例和第二函数实例用于配合运行租户的一项业务,如第一函数实例加载该业务对应的第一程序代码,第二函数实例中加载该业务对应的第二程序代码。资源调度平台获取第二函数实例的被调用信息,在确定当第二函数实例的被调用信息满足释放条件时,释放第二函数实例。值得注意的是,在具体实现中,资源调度平台根据第一配置信息运行第一函数实例与根据第二配置信息运行第二函数实例这两个步骤之间没有严格的时序限定,可以是先运行第一函数实例再运行第二函数实例,或者,也可以是先运行第二函数实例再运行第一函数实例,或者同时运行第一函数实例和第二函数实例。
通过上述方法,资源调度平台根据第一配置信息在第一架构内运行第一函数实例,根据第二配置信息在第二架构内运行第二函数实例,第一函数实例和第二函数实例用于配合运行租户的一项业务,第一架构为serverless架构,实现该业务的serverless改造,使得租户的一项业务运行于多种架构中,第二架构与第一架构不同,保证第二函数实例不会被随意销毁,第二函数实例可保持有状态数据,降低重复向服务端或数据库获取数据的频次,从而减轻服务端或数据库的负担,并且在第二函数实例运行期间,由于有状态数据可缓存在第二函数实例本地,其他函数实例可调用第二函数实例来快速获取数据,从而提高系统整体性能。另外,资源调度平台获取第二函数实例的被调用信息,在第二函数实例的被调用信息满足释放条件时释放第二函数实例,第二程序代码不会长期占用第二函数实例的计算资源,减少资源浪费,提高资源利用率。
在一种可能的实施方式中,第一函数实例所运行程序代码为无状态程序代码,和/或第二函数实例所运行的程序代码为有状态程序代码。
在一种可能的实施方式中,第二函数实例的释放条件包括:当前时刻距离第二函数实例最后一次被调用的时间的时间间隔达到设定时长,和/或在一个时间段该第二函数实例被调用的频次低于预设阈值。
通过上述方法,控制第二函数实例不会被随意销毁,实现第二函数实例的延迟销毁。
在一种实现方式中,资源调度平台获取该租户输入的设定时长。
通过上述方法,提供租户配置第二函数实例的设定时长的灵活性,在第二函数实例距离上一次被调用的时间间隔未达到设定时长时,保证第二函数实例不会被随意销毁。
在一种可能的实施方式中,所述方法还包括:确定满足创建条件时,资源调度平台在第二架构内创建第二函数实例;其中,创建条件包括检测到第一函数实例被拉起,且第一函数实例为对第二函数实例存在依赖关系的函数实例,如第一函数实例可能会调用第二函数实例;或资源调度平台检测到第一函数实例调用第二函数实例。
通过上述方法,在第一函数实例调用第二函数实例时拉起第二函数实例,实现按需拉起。或者,在第一函数实例被拉起时,将第二函数实例拉起,从而对第二函数实例进行预热,以缩短对第二函数实例的调度时延,提高系统性能。
在一种可能的实施方式中,资源调度平台检测到第一函数实例调用第二函数实例,包括:资源调度平台获取到第一函数实例的调用请求,该调用请求包括待调用数据的标识;基于预设对应关系确定该待调用数据的标识对应于该第二函数实例的标识,该预设对应关系指示多组数据的标识和函数实例的标识之间的对应关系。
在一种可能的实施方式中,第二函数实例的标识为第二函数实例的镜像的标识;资源调度平台创建所述第二函数实例,包括:资源调度平台根据第二函数实例的标识获取第二函数实例的镜像,使用第二函数实例的镜像创建第二函数实例。
通过上述方法,基于第二函数实例的镜像可快速创建第二函数实例。
在一种可能的实施方式中,资源调度平台获取租户在资源调度平台配置的预设对应关系。
通过上述方法,提供租户配置该对应关系的灵活性。
第二方面,本申请实施例还提供了一种资源调度平台,该资源调度平台具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,资源调度平台的结构中包括应用包处理模块、进程处理模块。可选的,该资源调度平台还包括会话处理模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第三方面,本申请实施例还提供了一种计算设备,该计算设备具有实现上述第一方面的方法实例中资源调度平台的行为的功能,有益效果可以参见第一方面的描述此处不再赘述。计算设备的结构中包括处理器和存储器,处理器被配置为支持资源调度平台执行上述第一方面方法中相应的功能。存储器与处理器耦合,其保存通信装置必要的程序指令和数据。通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第四方面,本申请实施例还提供了一种计算设备集群,该计算设备集群具有实现上述第一方面的方法实例中资源调度平台的行为的功能,有益效果可以参见第一方面的描述此处不再赘述。计算设备集群包括至少一个计算设备,任一计算设备的结构中包括处理器和存储器,任一计算设备中的处理器被配置为支持资源调度平台执行上述第一方面以及第一方面的各个可能的实施方式中的部分或全部功能。存储器与处理器耦合,其保存通信装置必要的程序指令和数据。通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第五方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
第七方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
附图说明
图1为本申请实施例提供的一种可能的网络架构示意图;
图2为本申请实施例提供的serverless架构下的资源调度方法的流程示意图;
图3为本申请实施例提供的一种用户界面示意图;
图4为本申请实施例提供的另一种用户界面示意图;
图5为本申请实施例提供的一种资源调度平台的结构示意图;
图6为本申请实施例提供的一种计算设备的结构示意图;
图7为本申请实施例提供的一种计算设备集群的结构示意图;
图8为本申请实施例提供的另一种计算设备集群的结构示意图。
具体实施方式
为方便理解,首先对本申请实施例中的部分技术用语进行解释说明。
(1)身份验证信息(Token),可应用于服务端和客户端之间,为避免客户端频繁的去数据库查询客户端的用户名和密码,当客户端首次向服务端请求数据时,服务端生成一串字符串(即token),并将token返回给客户端,作为客户端下一次请求数据的令牌,这样以后客户端只需要携带该token向服务器请求数据,无需再次带上用户名和密码,从而减轻服务端的压力。
(2)实例,可指用于运行业务的软件程序或计算资源,还可以称为计算实例、计算模块、算法实例等,实例可包括虚拟机、容器等。
(3)虚拟机(Virtual Machine,VM),是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机(简称实体机)中能够完成的工作在虚拟机中都能够实现。在实体机中创建虚拟机时,需要将实体机的部分硬件资源(如CPU、内存、硬盘等)作为虚拟机的硬件资源。每个虚拟机都有独立的操作系统,可以像使用实体机一样对虚拟机进行操作。在实际应用中,一台物理主机可以通过虚拟化技术虚拟出多台虚拟机。虚拟机也可称为云服务器(Elastic Compute Service,ECS)、弹性实例(不同的云服务提供商有不同的叫法)。
(4)容器,是实现操作系统虚拟化的一种途径,可以让用户在资源受到隔离的进程中运行应用程序及其依赖关系。
(5)本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。
图1为一种网络系统100的架构示意图,该网络系统100可为用户提供用户态的服务,用户只需编写实现应用逻辑的程序代码,再将程序代码上传至网络系统100即可,而每个程序代码的具体执行则由网络系统100负责。其中,允许用户为程序代码配置对应的触发事件,在触发事件发生的情况下,网络系统100为程序代码分配计算资源,加载并运行程序代码;在不需要运行程序代码的情况下,又会收回计算资源。用户不需要关心计算资源层面的问题,使用户开发变得更加便捷,减轻用户的开发负担,给用户带来更好的体验。另外,本实施例的网络系统100具有较高的可用性,还可实时对分配给程序代码的计算资源进行弹性伸缩,能够在应用低峰期,使用较少的计算资源来支撑应用需求,又能够在预期或者非预期的应用高峰来临时,及时分配更多计算资源,保证应用顺畅运行。
本实施例的网络系统100可以应用于各种场景,例如物联网(Internet ofThings,IoT)、移动应用、音视频处理、语音识别、在线翻译等场景。例如,在IoT场景下,用户可以编写用于实时数据分类处理的程序代码,并将该程序代码上传至网络系统100中,由网络系统100在触发事件发生的情况下为该程序代码分配计算资源并运行该程序代码,以对外提供高效的实时数据分类服务,并且还可以根据实时数据分类需求弹性调整分配给该程序代码的计算资源。又例如,在音视频处理场景下,用户可以编写音视频转码、数据抽取、人脸识别等多种功能的程序代码,并将这些程序代码上传至网络系统100中,由网络系统100在触发事件发生的情况下为这些程序代码分配计算资源并运行这些程序代码,以对外提供音视频转码、数据抽取、人脸识别等服务,并可根据应用需求弹性调整分配给这些程序代码的计算资源,满足用户对实时性和并发能力的高要求。
为了实现上述功能,如图1所示,本申请实施例提供的网络系统100包括:资源调度平台10、多个计算节点20、多个计算节点30以及存储系统40。其中,资源调度平台10与多个计算节点20、多个计算节点30以及存储系统40之间通信连接,计算节点20与存储系统40之间也通信连接,计算节点30与存储系统40之间也通信连接。
其中,多个计算节点20采用第一架构部署,第一架构为无服务器(Serverless)架构。多个计算节点30采用第二架构,第二架构与第一架构不同,如第二架构可以是K8s架构、有服务器架构等,本申请对此不做限定。在一种示例中,第二架构与第一架构可以是不同的云服务,如第一架构可提供无服务计算的云服务,第二架构可提供虚拟机和/或容器等算力的云服务。本申请实施例提供一种演进/增强的Serverless架构,第二架构还可以是演进/增强的Serverless架构,该演进/增强的Serverless架构中的函数实例的管理方式与传统Serverless架构中的函数实例的管理方式不同,如两者的释放方式不同,下文会进行详细介绍,此处不做赘述。
资源调度平台10是网络系统100中的管控节点,主要负责网络系统100中的资源调度,能够跨越多个架构进行资源调度,如图1中,资源调度平台10可调度第一架构内的计算节点20运行函数实例,以及调度第二架构内计算节点30运行函数实例。资源调度平台10还可负责安全控制、系统监测和纠错等中至少一种管理。另外,资源调度平台10也可以作为与用户之间的交互接口,负责接收用户上传的程序代码以及相关信息。资源调度平台10的数量可以是一个或多个。资源调度平台10可以部署在一个或多个云计算数据中心中,或者,可以部署在一个或多个传统数据中心中;当然,资源调度平台10也可以部署在网络系统100中,例如资源调度平台10可独立于多个计算节点20单独部署,例如部署在网络系统100中的其它物理设备上,本实施例对此不做限定。
计算节点20是网络系统100中的资源节点,主要负责提供各种资源,如物理机、CPU、GPU等计算资源,内存和硬盘等存储资源,以及带宽等网络资源,也是资源调度平台10的调度对象。在本实施例中,计算节点20可以是各种具有一定计算能力的物理设备,例如可以是服务器、台式计算机、笔记本电脑等计算设备和/或存储设备等。相应地,存储系统40主要负责存储用户上传的程序代码,例如可以包括但不限于:对象存储服务(Object StorageService,OSS)、网络附属存储(Network Attached Storage,NAS)、数据仓库或各种类型的数据库等。
在本实施例中,资源调度平台10可以接收用户上传的程序代码,将该程序代码存储至存储系统40中,并在需要运行程序代码的情况下,对计算节点20进行资源调度,从计算节点20为程序代码分配宿主节点,并在宿主节点上实时创建或预先创建支持该程序代码运行的函数实例。其中,函数实例是指运行在计算节点20上相对隔离,且能够支持程序代码运行的运行环境,例如可以是容器、虚拟机或其它类似的运行环境。其中,在函数实例运行程序代码时,需要从存储系统40中下载程序代码。在有程序代码的基础上,函数实例就可以加载并运行程序代码了。
本申请中,业务逻辑包括有状态逻辑和无状态逻辑,实现有状态逻辑的程序代码称为有状态程序代码,实现无状态逻辑的程序代码称为无状态程序代码。比如,有状态逻辑为需要在实例本地保存有状态数据的逻辑,即运行有状态程序代码的函数实例中需要存放有状态数据,其中,有状态数据包括预设类型的数据,比如token、用户数据等。运行无状态程序代码的函数实例中可以存储有状态数据也可以不存储有状态数据。相应的,同一项业务的程序代码可被拆分为有状态程序代码和无状态程序代码,该拆分的动作可由用户完成,此时,用户上传的程序代码可包括有状态程序代码和无状态程序代码。或者,该拆分的动作可由设备如资源调度平台10完成。此处的一项业务可指具有一系列特定功能或任务的对象,例如可以是租户的一个应用程序或一项服务或微服务等,具体不做限定。
另外,资源调度平台10还负责存储和管理程序代码对应的触发事件,并监测触发事件是否发生。这里的触发事件可以是时间触发,也可以是事件触发,还可以是用户触发。关于时间触发可以是指当设定的时间或时间范围到达时,意味着需要启动程序代码;关于事件触发是指在设定的事件发生时,意味着需要启动程序代码;关于用户触发是指在接收到特定用户指令(如启动指令)时,意味着需要启动程序代码。
本申请中,无状态程序代码和有状态程序代码可对应不同的触发事件,进一步,属于同一类型的不同程序代码也可对应不同的触发事件,具体不做限定。如图1所示,资源调度平台10还可响应于第一程序代码(无状态程序代码)对应的触发事件,向多个计算节点20中的宿主节点21发送代码启动指令,以使宿主节点21运行该第一程序代码,其中,宿主节点21具有一定计算能力的基础设施,运行有支持程序代码运行的第一函数实例22的计算节点,其中,第一函数实例22可以是一个或多个,这些第一函数实例22可对外提供各种云计算服务。可选地,第一函数实例22的实现形态可以是虚拟机(VM)、容器(Docker)、函数计算服务(如functionGraph函数)或原生应用程序等,在此不做限定。
在本实施例中,资源调度平台10可以从多个计算节点20中选择宿主节点21,例如可以根据各计算节点20的负载情况、可用资源量、部署位置、资源类型等信息,从中选择宿主节点21。另外,关于宿主节点21上的第一函数实例22可以采用以下两种方式创建:一种是资源调度平台10在选择出宿主节点21之后,指示宿主节点21实时创建第一函数实例22;另一种是预先在多个计算节点20上创建对应的函数实例,在选择出宿主节点21之后,该宿主节点21上的函数实例即为第一函数实例22。宿主节点22和第二函数实例的创建方式可参见上述介绍,此处不再赘述。
又如,资源调度平台10还可响应于第二程序代码(有状态程序代码)对应的触发事件,向多个计算节点30中的宿主节点31发送代码启动指令,以使宿主节点31运行该第二程序代码。关于计算节点30以及如何选择宿主节点31的方式可分别参见前述计算节点20、如何选择宿主节点21的相关描述,在此不再赘述。
本申请提供了一种资源调度方法,在该方法中,将业务对应的无状态程序代码运行于第一架构(serverless)中,将业务对应的有状态程序代码运行于第二架构中,保证有状态程序代码不会被随意销毁,实现(微)服务向serverless架构改造的基础上,降低从服务端获取数据的频次,减轻服务端的压力。
如下结合图2,以本申请提供的资源调度方法应用于图1的网络系统100为例,对该方法进行详细介绍。下文中的第一函数实例可以是图1中任意一个第一函数实例22,第二函数实例可以是图1中的任意一个第二函数实例31。
图2为本申请实施例提供的资源调度方法的流程示意图,该方法包括:
步骤200,资源调度平台10根据来自租户的第一配置信息在第一架构内运行第一函数实例,第一函数实例中加载有第一程序代码。
第一配置信息指示由第一架构内的函数实例运行无状态程序代码,资源调度平台10在检测到第一程序代码的触发事件,且第一程序代码属于无状态程序代码时,启动第一架构内的第一函数实例运行第一程序代码。或,第一配置信息指示第一程序代码由第一架构内的函数实例运行,资源调度平台10在检测到第一程序代码的触发事件,启动第一架构内的第一函数实例运行第一程序代码。
步骤201,第一函数实例发送调用请求。
示例性的,该调用请求请求调用目标数据。第一函数实例为运行无状态程序代码的任意一个函数实例,如运行第一程序代码的函数实例,第一程序代码为无状态程序代码。应理解,虽然第一函数实例不需要在本地保存有状态数据,但也可以短暂缓存有状态数据,且其运行过程中,也可能会需要使用有状态数据(记为目标数据)。可选的,第一函数实例22首先在本地缓存中查询是否存储有目标数据,若本地未存储该目标数据,第一函数实例22生成用于请求获取该目标数据的调用请求。其中,该调用请求可包括目标数据的数据标识,数据标识用于唯一标识目标数据。
步骤202,资源调度平台10获取第一函数实例的调用请求。
资源调度平台10获取调用请求的方式有多种:在一种实现方式中,第一函数实例直接将该调用请求发送给资源调度平台10。在另一种实现方式中,第一函数实例可先将调度信息发送至消息队列进行排队,资源调度平台10从消息队列获取第一函数实例的调用请求。其中,消息队列可位于特定的计算设备或计算设备集群中,作为调用请求的中介与函数实例及资源调度平台10交互,如此,资源调度平台10只需要从消息队列获取调用请求即可,不需要对每个函数实例进行监听。
步骤203,资源调度平台10确定该调用请求对应于第二函数实例(记为目标第二函数实例),并更新该目标第二函数实例的被调用信息。
在一种实现方式中,资源调度平台10基于第一对应关系确定目标数据的数据标识对应的函数实例,此处假设为第二函数实例。
该第一对应关系指示多组数据标识和实例标识的对应关系。其中,一个实例标识用于唯一标识一个第二函数实例,一个或多个数据标识可对应于一个第二函数实例,一个第二函数实例可对应一个或多个数据标识。可以理解为,一个第二函数实例可负责(如获取和/或存储)一个或多个数据,相应的,在该第一对应关系中,该一个或多个数据中的每个数据的数据标识与该第二函数实例的实例标识相对应。参见表1,表1示例性列举了一种第一对应关系。
表1
应理解表1仅为示例,本申请并不限定第一对应关系的具体格式和内容。
在一种实现方式中,该第一对应关系可由用户(如业务管理人员)配置,如资源调度平台10可提供访问接口(如界面或API),用户可操作客户端远程接入访问接口,在登录资源调度平台10后,用户可进一步在资源调度平台10配置该第一对应关系。
如图3所示,图3为本申请实施例提供的资源调度平台10上的一种用户界面的示意图,用户可在该用户界面配置该第一对应关系,该用户界面包括该第一对应关系的数据标识项和实例标识项,用户可添加一个或多个子对应关系,并在每个子对应关系的数据标识项选择或输入数据标识,该数据标识可以是服务所涉及的有状态数据的类型,如token、产品信息、度量单位信息等。以及,在实例标识项输入或选择实例标识,实例标识也可以理解为一段程序代码的标识,指示函数实例固定运行的一段程序代码,例如,实例标识可以是函数实例的镜像的标识,如镜像的名称和版本号等。
在一种替代的方式中,用户在上传函数代码时,可上传实例的镜像,实例的镜像存储于镜像仓库中,该镜像仓位可位于存储系统40中。用户在配置第一对应关系时,可选择镜像仓库中锁存放的镜像的标识,可选的,用户界面还可以提供镜像的上传功能,供用户上传函数实例的镜像,和/或镜像的增量数据。当然,函数实例的镜像和/或增量数据也可以是通过其他方式上传,具体不做限定。参见表2为一种具体的第一对应关系的示例。
表2
资源调度平台10可基于该第一对应关系确定目标数据对应的第二函数实例,如假设目标数据的类型为token,基于表2确定token对应于第二函数实例A的镜像,即而确定目标数据对应于第二函数实例A。为便于描述,如下将目标数据对应的第二函数实例记为目标第二函数实例。
在确定目标第二函数实例之后,资源调度平台10更新目标第二函数实例的被调用信息,该被调用信息用于指示目标第二函数实例的被调用情况,如该被调用信息可包括目标第二函数实例被调用的时间,具体的,被调用信息可仅包括一个时间值,用于指示最近一次被调用的时间,每当有函数实例调用该目标第二函数实例时,资源调度平台基于该次调用的时间更新该时间值。或者,该被调用信息还可以包括一段历史时间内每一次被调用的时间。可选的,被调用信息还可包括目标第二函数实例在一段历史时间内的被调用频次、每次被调用时的调用对象,即发起调用目标第二函数实例的对象,如第一函数实例调用目标第二函数实例,则调用对比为第一函数实例,等等,具体不做限定。
步骤204,资源调度平台10判断目标第二函数实例是否存在,如果不存在,则执行步骤205;否则,执行步骤206。
若目标第二函数实例已存在,该目标第二函数实例可能是在第一函数实例运行前创建的,也可能是在第一函数实例运行后创建的,或者与第一函数实例同时创建的。其中,该目标第二函数实例的创建方式可参见下文步骤205的介绍,此处步骤重复说明。
值得注意的是,本申请中第二函数实例并非是一个一直都存在的函数实例,而是指固定运行同一段程序代码(如第二程序代码)的函数实例,也就是说,此处判断目标第二函数实例是否存在的含义是,判断是否有运行第二程序代码的函数实例存在。
步骤205,资源调度平台10根据来自租户的第二配置信息创建目标第二函数实例。
第二配置信息指示由第二架构内的函数实例运行有状态程序代码,资源调度平台10在检测到第二程序代码的触发事件(如第一函数实例调度该目标第二函数实例时),且第二程序代码属于无状态程序代码时,启动第二架构内的第二函数实例运行第二程序代码。或,第二配置信息指示第二程序代码由第二架构内的函数实例运行,资源调度平台10在检测到第二程序代码的触发事件,启动第二架构内的第二函数实例运行第一程序代码,该第二函数实例便为目标第二函数实例。
资源调度平台10在创建目标第二函数实例时,可根据从第一对应关系中获取目标第二函数实例的镜像的标识获取目标第二函数实例的镜像,并使用目标第二函数实例的镜像创建(或拉起)目标第二函数实例。此方式可应用于实例标识为函数实例的镜像的情况下,其中,第一对应关系也可以存储于存储系统40中或存储于其他设备中,如宿主节点23中,具体不做限定。在另一种实现中,资源调度平台10基于第一对应关系和待调用的数据的标识确定目标第二函数实例后,指示第二函数实例从存储系统40获取指定的程序代码(如第二程序代码),并触发该第二函数实例启动,从而完成创建或拉起该目标第二函数实例,可参见前文的相关介绍,此处不再赘述。
步骤206,目标第二函数实例获取该调用请求。
目标第二函数实例获取调用请求的方式有多种,如资源调度平台10将该调度信息发送给目标第二函数实例。又如目标第二函数实例从消息队列获取该调用请求。再如目标第二函数实例从第一函数实例获取该调用请求。
进一步,第二函数实例从消息队列获取调用请求的方式包括,第二函数实例主动获取调用请求,如第二函数实例向消息队列请求该调用请求。或者,第二函数实例被动获取该调用请求,例如,消息队列可对调用请求进行复制,得到调用请求的副本,消息队列可将调用请求和调用请求的副本分别发送给资源调度平台10和目标第二函数实例,此时,若目标第二函数实例不存在,则该调用请求发送失败。若目标第二函数实例存在,则目标第二函数实例接收到该调用请求,此时可称为被动获取。
类似的,第一函数实例也可以执行上述消息队列中的类似操作,如第一函数实例对调用请求进行复制,得到调用请求的副本,在步骤201中,第一函数实例可将调用请求和调用请求的副本分别发送给消息队列和目标第二函数实例,后续不再赘述。
步骤207,目标第二函数实例对该调用请求进行处理。
目标第二函数实例对该调用请求进行处理,处理过程可包括:基于调用请求中携带的目标数据的数据标识获取目标数据。其中,目标第二函数实例获取目标数据的方式有多种,如在步骤204确定目标第二函数实例存在的情况下,目标第二函数实例可能从目标第二函数实例的本地缓存中获取该目标数据,或者,在目标第二函数实例的本地缓存未查询到目标数据的情况下,向其他设备(如服务端或数据库)请求该目标数据,如目标数据为token,若目标第二函数实例本地未缓存有该token,则可向服务端获取该token,并将获取的token缓存在目标第二函数实例本地。又如,目标数据为用户数据,若目标第二函数实例本地未缓存有该用户数据,则可向数据库获取该用户数据,并将获取的用户数据缓存在目标第二函数实例本地。
值得注意的是,本申请中的第二函数实例并非天然具有有状态数据,而是在获取到有状态数据之后会将有状态数据缓存在实例本地。
步骤208,目标第二函数实例将调用请求的处理结果发送给第一函数实例。
在一种实现方式中,目标第二函数实例直接将调用请求所请求的目标数据发送给第一函数实例。在另一种实现方式中,目标第二函数实例先将目标数据发送至消息队列,再由第一函数实例从消息队列获取该目标数据。
需要说明的是,调用请求还可以是调用其他信息,并非限定在调用数据,相应的,对调用请求的处理方式也可以有多种,本申请实施例对此均不做限定。
步骤209,资源调度平台10获取目标第二函数实例的被调用信息,该被调用信息指示目标第二函数实例被调用的情况。
资源调度平台10可实时或定时(如周期性)获取目标第二函数实例的被调用信息。应注意,在定时获取被调用信息时,步骤209和步骤208之间可能间隔较长的时间,在这段时间内,目标第二函数实例还可能被多次调用(即步骤201至步骤208可能被重复执行了多次),其中,多次调用目标第二函数实例的对象可能是同一函数实例,也可能不是同一个函数实例,如可以说第一函数实例,也可以是其他第二函数实例,具体不做限定。
步骤210,资源调度平台10,判断目标第二函数实例的被调用信息是否满足释放条件,若满足,则执行步骤210;否则,退出流程。
释放条件可包括下列中一项中的一项或多项:
条件1:当前时刻距离目标第二函数实例上一次被调用的时间(即被调用信息指示目标第二函数实例最后一次被调用的时间)的时间间隔达到设定时长。
在一种实现方式中,资源调度平台10可提供另一种用户界面,图4为该用户界面的示意图,选的,用户可在该用户界面添加一个或多个第二函数实例(包括目标第二函数实例)的函数信息。如图4所示,用户可在个第二函数实例对应的释放时长配置项输入或选择时长值,该时长值即为该第二函数实例对应的设定时长。其中,不同第二函数实例的释放时长可以是不同的,用户可单独配置。或者,所有第二函数实例的释放时长还可以是相同的,用户输入或选择一个设定时长即可(图4未示出)。或者,目标第二函数实例对应的设定时长还可以不由用户配置,而是一个固定值,如10分钟或30分钟等,具体不做限定。
条件2:目标第二函数实例在一个时间段内被调用的频次达到设定频次。
条件3:预测结果指示目标第二函数实例在该时间段内不会被调用。预测结果指示目标第二函数实例在一个时间段(如当前时刻的下一个时间段)内是否会被调用,可以由资源调度平台10进行预测,也可以由其他设备进行预测,资源调度平台10获取其他设备的预测结果,另外,本申请对如何预测也不做具体限定。
步骤211,释放目标第二函数实例。
释放目标第二函数实例也可以理解为销毁目标第二函数实例,使得目标第二函数实例的计算资源可用于执行其他任务。
基于上述设计,资源调度平台10根据第一配置信息在第一架构内运行第一函数实例,根据第二配置信息在第二架构内运行第二函数实例,第一函数实例和第二函数实例用于配合运行租户的一项业务,第一架构为serverless架构,实现该业务的serverless改造,使得租户的一项业务运行于多种架构中,第二架构与第一架构不同,保证第二函数实例不会被随意销毁,第二函数实例可保持有状态数据,降低重复向服务端或数据库获取数据的频次,从而减轻服务端或数据库的负担,并且在第二函数实例运行期间,由于有状态数据可缓存在第二函数实例本地,其他函数实例可调用第二函数实例来快速获取数据,从而提高系统整体性能,相对于现有技术可达到一个数量级的性能提升。另外,资源调度平台获取第二函数实例的被调用信息,在第二函数实例的被调用信息满足释放条件时释放第二函数实例,第二程序代码不会长期占用第二函数实例的计算资源,减少资源浪费,提高资源利用率。
在本申请提供的一种可选的方式中,第二架构和第一架构可以融合为一种serverless架构,第二函数实例23可以被认为是该serverless架构中一种特殊的函数实例,除图2所示的方法流程中介绍的对第二函数实例23的释放方式之外,资源调度平台10可以管理第二函数实例23的创建方式,如上文中在第二函数实例23被调用时拉起该第二函数实例23,或者,在对第二函数实例具有依赖关系的函数实例被拉起时,同时拉起该第二函数实例,其中,函数实例之间的依赖关系可由用户配置,并存储于第二对应关系中,或者还可以包括距离第二函数实例最近一次被释放的时间的时间间隔达到设定时长时拉起第二函数实例,或者,预测第二函数实例在某一个时间段会被调用时,拉起第二函数实例,从而实现第二函数实例的提前预热,以缩短对第二函数实例的调度时延,提高系统性能。
基于与方法实施例同一发明构思,本申请实施例还提供了一种计算装置,该计算装置用于执行上述图2的方法实施例中云管理平台执行的方法。如图5所示,资源调度平台500包括获取模块501、处理模块502、调度模块503。具体地,在资源调度平台500中,各模块之间通过通信通路建立连接。
调用模块503,用于根据租户发送的第一配置信息在第一架构内运行第一函数实例,其中,第一函数实例中加载有第一程序代码,第一架构用于为租户提供无服务器serverless服务;具体可参见步骤200的描述,此处不再赘述。
调度模块503,还用于根据所述租户发送的第二配置信息在第二架构内运行第二函数实例,其中,所述第二函数实例中加载有第二程序代码,所述第一函数实例和所述第二函数实例用于配合运行所述租户的一项业务,所述第二架构与所述第一架构不同;具体可参见步骤205的描述,此处不再赘述。
获取模块501,用于获取第二函数实例的被调用信息,第二函数实例的被调用信息可包括第二函数实例被第一函数实例调用的情况,第一函数实例为serverless架构中部署的任意一个第一函数实例,至少一个第一函数实例用于运行一套完整程序代码中的第一类程序代码(如无状态程序代码),该至少一个第二函数实例还用于运行该完整程序代码中的第二类程序代码(如有状态程序代码);具体可参见步骤208的描述,此处不再赘述。
处理模块502,用于在确定第二函数实例的被调用信息满足释放条件时,释放第二函数实例。具体可参见步骤209至步骤210的描述,此处不再赘述。
在一种可能的实现方式中,第一函数实例所运行程序代码为无状态程序代码,和/或所述第二函数实例所运行的程序代码为有状态程序代码。
在一种可能的实现方式中,第二函数实例的释放条件包括下列中的一项或多项:当前时刻距离第二函数实例最后一次被调用的时间的时间间隔达到设定时长、该第二函数实例在一个时间段被调用的频次低于预设阈值、预测到第二函数实例在下一个时间段内不会被调用。
在一种可能的实现方式中,获取模块501,还用于获取租户在资源调度平台500输入的该设定时长。
在一种可能的实现方式中,处理模块502,还用于在确定满足创建条件时,在第二架构内创建第二函数实例;其中,该创建条件包括检测到第一函数实例被拉起,第一函数实例为对第二函数实例存在依赖关系的函数实例;或检测第一函数实例调用第二函数实例。
在一种可能的实现方式中,处理模块502检测到第一函数实例对第二函数实例存在调用需求具体用于:通过获取模块501获取到第一函数实例的调用请求,该调用请求包括待调用的数据的标识;基于第一对应关系确定待调用的数据的标识对应于第二函数实例的标识,该第一对应关系指示多组数据的标识和函数实例的标识之间的对应关系。
在一种可能的实现方式中,第二函数实例的实例标识为第二函数实例的镜像的标识;
处理模块502在创建第二函数实例时,具体用于:根据第二函数实例的镜像的标识,获取所述第二函数实例的镜像;根据第二函数实例的镜像创建第二函数实例。示例性的,接下来以资源调度平台500中的处理模块502为例,介绍处理模块502的实现方式。类似的,获取模块501的实现方式可以参考处理模块502的实现方式。
在一种可能的实现方式中,获取模块501还用于获取租户在资源调度平台配置的该预设对应关系。
当通过软件实现时,处理模块502可以是运行在计算机设备上的应用程序或代码块。其中,计算机设备可以是物理主机、虚拟机、容器等计算设备中的至少一种。进一步地,上述计算机设备可以是一台或者多台。例如,处理模块502可以是运行在多个主机/虚拟机/容器上的应用程序。需要说明的是,用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中。用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。其中,通常一个region可以包括多个AZ。
同样,用于运行该应用程序的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个region可以包括多个VPC,而一个VPC中可以包括多个AZ。
当通过硬件实现时,处理模块502中可以包括至少一个计算设备,如服务器等。或者,处理模块502也可以是利用专用集成电路(application-specific integratedcircuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
处理模块502包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。处理模块502包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。同样,处理模块502包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中,比如,第一接收模块和第二接收模块集成在一个模块中,或者第一接收模块和第二接收模块为同一个模块。类似的,第一确定模块和第二确定模块集成在一个模块中,或者第一确定模块和第二确定模块为同一个模块。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请还提供一种计算设备600。如图6所示,计算设备600包括:总线602、处理器604、存储器606和通信接口608。处理器604、存储器606和通信接口608之间通过总线602通信。计算设备600可以是服务器或终端设备。应理解,本申请不限定计算设备600中的处理器、存储器的个数。
总线602可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线602可包括在计算设备600各个部件(例如,存储器606、处理器604、通信接口608)之间传送信息的通路。
处理器604可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器606可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器604还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器606中存储有可执行的程序代码,处理器604执行该可执行的程序代码以分别实现前述获取模块501、处理模块502、调度模块503的功能,从而实现资源管理方法。也即,存储器606上存有资源调度平台500用于执行本申请提供的资源管理方法的指令。
通信接口608使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备600与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图7所示,该计算设备集群包括至少一个计算设备600。计算设备集群中的一个或多个计算设备600中的存储器606中可以存有相同的用于执行资源分配方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备600的存储器606中也可以分别存有用于执行资源分配方法的部分指令。换言之,一个或多个计算设备600的组合可以共同执行用于执行资源分配方法的指令。
需要说明的是,计算设备集群中的不同的计算设备600中的存储器606可以存储不同的指令,分别用于执行计算装置的部分功能。也即,不同的计算设备600中的存储器606存储的指令可以实现获取模块501、处理模块502、调度模块503中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图8示出了一种可能的实现方式。如图8所示,两个计算设备600A和600B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备600A中的存储器606中存有执行获取模块501的功能的指令。同时,计算设备600B中的存储器606中存有执行处理模块502的功能的指令。
应理解,图8中示出的计算设备600A的功能也可以由多个计算设备600完成。同样,计算设备600B的功能也可以由多个计算设备600完成。
本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图7和图8所述计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备600中的存储器606中可以存有相同的用于执行资源管理方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备600的存储器606中也可以分别存有用于执行资源管理方法的部分指令。换言之,一个或多个计算设备600的组合可以共同执行用于执行资源管理方法的指令。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行应用部署方法,或应用部署方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行应用部署方法,或指示计算设备执行应用部署方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (19)
1.一种资源调度方法,其特征在于,应用于包括资源调度平台、第一架构和第二架构的服务提供系统,所述第一架构用于为所述服务提供系统的租户提供无服务器serverless服务,所述第二架构与所述第一架构不同;所述方法包括:
所述资源调度平台根据所述租户发送的第一配置信息在所述第一架构内运行第一函数实例,其中,所述第一函数实例中加载有第一程序代码;
所述资源调度平台根据所述租户发送的第二配置信息在所述第二架构内运行第二函数实例,其中,所述第二函数实例中加载有第二程序代码,所述第一函数实例和所述第二函数实例用于配合运行所述租户的一项业务;
所述资源调度平台获取所述第二函数实例的被调用信息;
所述资源调度平台确定所述第二函数实例的被调用信息满足释放条件,释放所述第二函数实例。
2.如权利要求1所述的方法,其特征在于,所述第一函数实例所运行程序代码为无状态程序代码,和/或所述第二函数实例所运行的程序代码为有状态程序代码。
3.如权利要求1或2所述的方法,其特征在于,所述释放条件包括:
距离所述第二函数实例最后一次被调用的时间间隔达到设定时长,和/或所述第二函数实例在一段时间内被调用的频次低于预设阈值。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述资源调度平台获取所述租户输入的设定时长。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述资源调度平台确定满足创建条件,在所述第二架构内创建所述第二函数实例,其中,所述创建条件包括:所述资源调度平台检测到所述第一函数实例被创建,且所述第一函数实例为对所述第二函数实例存在依赖关系的函数实例,或所述资源调度平台检测到所述第一函数实例调用所述第二函数实例。
6.如权利要求5所述的方法,其特征在于,所述资源调度平台检测到所述第一函数实例调用所述第二函数实例,包括:
所述资源调度平台获取所述第一函数实例的调用请求,所述调用请求包括待调用数据的标识;
基于预设对应关系确定所述待调用数据的标识对应于所述第二函数实例的标识,所述预设对应关系指示多组数据的标识和函数实例的标识之间的对应关系。
7.如权利要求6所述的方法,其特征在于,所述第二函数实例的标识为所述第二函数实例的镜像的标识;
所述资源调度平台在所述第二架构内创建所述第二函数实例,包括:
根据所述第二函数实例的镜像的标识,获取所述第二函数实例的镜像;
根据所述第二函数实例的镜像创建所述第二函数实例。
8.如权利要求6或7所述的方法,其特征在于,所述方法还包括:
所述资源调度平台获取所述租户在所述资源调度平台配置的所述预设对应关系。
9.一种资源调度平台,其特征在于,所述资源调度平台包括:
调度模块,用于根据租户发送的第一配置信息在第一架构内运行第一函数实例,其中,所述第一函数实例中加载有第一程序代码,所述第一架构用于为所述租户提供无服务器serverless服务;
所述调度模块,还用于根据所述租户发送的第二配置信息在第二架构内运行第二函数实例,其中,所述第二函数实例中加载有第二程序代码,所述第一函数实例和所述第二函数实例用于配合运行所述租户的一项业务,所述第二架构与所述第一架构不同;
获取模块,用于获取第二函数实例的被调用信息;
处理模块,用于在确定所述第二函数实例的被调用信息满足释放条件时,释放所述第二函数实例。
10.如权利要求9所述的资源调度平台,其特征在于,第一函数实例所运行程序代码为无状态程序代码,和/或所述第二函数实例所运行的程序代码为有状态程序代码。
11.如权利要求9或10所述的资源调度平台,其特征在于,所述释放条件包括距离所述第二函数实例最后一次被调用的时间间隔达到设定时长,和/或所述第二函数实例在一段时间内被调用的频次低于预设阈值。
12.如权利要求11所述的资源调度平台,其特征在于,
所述获取模块,还用于获取租户输入所述设定时长。
13.如权利要求9-12任一项所述的资源调度平台,其特征在于,
所述处理模块,具体用于在确定满足创建条件时,创建所述第一函数实例;其中,所述创建条件包括:检测到所述第一函数实例被创建,且所述第一函数实例为对所述第二函数实例存在依赖关系的函数实例,或检测到所述第一函数实例调用所述第二函数实例。
14.如权利要求13所述的资源调度平台,其特征在于,所述处理模块检测到所述第一函数实例调用所述第二函数实例时,具体用于:通过所述获取模块获取到所述第一函数实例的调用请求,所述调用请求包括待调用数据的标识;基于预设对应关系确定所述待调用数据的标识对应于所述第二函数实例的标识,所述预设对应关系指示多组数据的标识和函数实例的标识之间的对应关系。
15.如权利要求14所述的资源调度平台,其特征在于,所述第二函数实例的标识为所述第二函数实例的镜像的标识;
所述处理模块在所述第二架构内创建所述第二函数实例时,具体用于:所述第二函数实例的镜像的标识,获取所述第二函数实例的镜像;根据所述第二函数实例的镜像创建所述第二函数实例。
16.如权利要求14或15所述的资源调度平台,其特征在于,
所述获取模块还用于获取租户在所述资源调度平台配置的所述预设对应关系。
17.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至8任一项所述的方法。
18.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至8任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211351970.7A CN117992174A (zh) | 2022-10-31 | 2022-10-31 | 一种资源调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211351970.7A CN117992174A (zh) | 2022-10-31 | 2022-10-31 | 一种资源调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117992174A true CN117992174A (zh) | 2024-05-07 |
Family
ID=90887878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211351970.7A Pending CN117992174A (zh) | 2022-10-31 | 2022-10-31 | 一种资源调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992174A (zh) |
-
2022
- 2022-10-31 CN CN202211351970.7A patent/CN117992174A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10528390B2 (en) | Idempotent task execution in on-demand network code execution systems | |
US10725826B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
US10445140B1 (en) | Serializing duration-limited task executions in an on demand code execution system | |
CN108737270B (zh) | 一种服务器集群的资源管理方法和装置 | |
US10275851B1 (en) | Checkpointing for GPU-as-a-service in cloud computing environment | |
CN110612705B (zh) | 一种无服务器架构下业务部署的方法和函数管理平台 | |
WO2020177564A1 (zh) | Vnf的生命周期管理方法及装置 | |
CN110383764B (zh) | 无服务器系统中使用历史数据处理事件的系统和方法 | |
US20190108079A1 (en) | Remote Procedure Call Method for Network Device and Network Device | |
US9038085B2 (en) | System, method and program product for cost-aware selection of stored virtual machine images for subsequent use | |
US8621081B2 (en) | Hypervisor controlled user device that enables available user device resources to be used for cloud computing | |
CN109375933B (zh) | 一种客户端升级的方法及设备 | |
US20160269479A1 (en) | Cloud virtual server scheduling method and apparatus | |
WO2019062722A1 (zh) | 基于微服务架构的报文处理方法、装置和bras | |
US9342369B2 (en) | System and method for increasing throughput of a PaaS system | |
CN110166507B (zh) | 多资源调度方法和装置 | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
CN116248414B (zh) | 基于虚拟化硬件实现密码加速的方法、装置及电子设备 | |
CN112130960A (zh) | 一种轻量化移动边缘计算节点及构建方法 | |
CN113162802A (zh) | 基于InfiniBand的通信方法、设备及存储介质 | |
CN113900774B (zh) | 云操作系统的虚拟机控制方法、装置以及存储介质 | |
US11144359B1 (en) | Managing sandbox reuse in an on-demand code execution system | |
US20230379268A1 (en) | Resource scheduling method and system, electronic device, computer readable storage medium | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN109905258B (zh) | PaaS的管理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |