CN113282377B - 无服务器架构下的代码加载方法、设备、***及存储介质 - Google Patents
无服务器架构下的代码加载方法、设备、***及存储介质 Download PDFInfo
- Publication number
- CN113282377B CN113282377B CN202110833871.1A CN202110833871A CN113282377B CN 113282377 B CN113282377 B CN 113282377B CN 202110833871 A CN202110833871 A CN 202110833871A CN 113282377 B CN113282377 B CN 113282377B
- Authority
- CN
- China
- Prior art keywords
- code
- data
- function instance
- data part
- metadata
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 72
- 230000008569 process Effects 0.000 claims abstract description 49
- 239000012634 fragment Substances 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 289
- 230000015654 memory Effects 0.000 claims description 84
- 238000004590 computer program Methods 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 9
- 230000000875 corresponding effect Effects 0.000 description 62
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000005291 magnetic effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种无服务器架构下的代码加载方法、设备、***及存储介质。在本申请实施例中,在Serverless架构中,将用户上传的函数代码转换成元数据与数据部分相分离的代码格式进行存储,这样,在函数代码对应的触发事件发生的情况下,可以基于存储***中的元数据生成支持函数代码运行的函数实例所需的目录视图,进一步,在函数实例运行过程中,可基于该目录视图针对数据部分进行按需下载,为函数实例提供运行所需的数据片段,由于无需一次性下载全部函数代码,而是可以做到按需下载,有助于节省下载时间,提升函数代码的加载和启动效率。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种无服务器架构下的代码加载方法、设备、***及存储介质。
背景技术
随着云、大数据、容器等技术的成熟,无服务器(Serverless)架构应运而生。在Serverless架构与云计算结合的模式下,用户只需要专注于应用逻辑的代码实现,而服务器等基础设施的部署、维护以及计算资源的弹性扩缩容等均由Serverless平台负责。
在Serverless架构下,用户实现代码之后,将代码压缩后上传至对象存储服务(Object Storage Service,OSS)***;Serverless平台响应于用户请求或触发事件,从OSS***中下载代码压缩包到宿主机节点;宿主机节点将代码压缩包解压缩至指定文件目录,并调用内核态挂载命令将指定文件目录挂载到宿主机节点上的指定容器,由指定容器运行指定文件目录中的代码,以启动用户应用。
在现有Serverless架构实现中,代码加载过程是应用启动的最后一环,代码压缩包的下载和解压缩过程是比较耗时的操作,导致应用启动效率较慢,甚至成为了应用冷启动的瓶颈。
发明内容
本申请的多个方面提供一种无服务器架构下的代码加载方法、设备、***及存储介质,用以按需下载所需数据,提高代码加载效率。
本申请实施例提供一种无服务器Serverless网络***,包括:主控节点、多个计算节点以及存储***;所述主控节点,用于将用户上传的函数代码转换成预设类型的代码包,并上传至所述存储***中,所述代码包包含元数据和数据部分;以及响应于所述函数代码对应的触发事件,向所述多个计算节点中的宿主节点发送代码启动指令,所述宿主节点是运行有支持所述函数代码运行的目标函数实例的计算节点;所述宿主节点,用于在接收到所述代码启动指令的情况下,基于所述存储***中的元数据,生成所述数据部分对应的目录视图,并在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段。
本申请实施例还提供一种无服务器Serverless架构下的代码加载方法,包括:将用户上传的函数代码转换成预设类型的代码包,并上传至存储***中,所述代码包包含元数据和数据部分;响应于所述函数代码对应的触发事件,基于所述存储***中的元数据,生成支持所述函数代码运行的目标函数实例运行所需的所述数据部分对应的目录视图;以及在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段。
本申请实施例还提供一种节点设备,可作为无服务器网络***中的主控节点实现,所述节点设备包括:存储器和处理器;所述存储器用于存储计算机程序;所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于:将用户上传的函数代码转换成预设类型的代码包,并上传至所述存储***中,所述代码包包含元数据和数据部分;以及响应于所述函数代码对应的触发事件,向所述无服务器网络***中多个计算节点中的宿主节点发送代码启动指令,以使所述宿主节点基于所述存储***中的元数据生成目标函数实例运行所需的所述数据部分对应的目录视图,并在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载;其中,所述宿主节点是运行有支持所述函数代码运行的目标函数实例的计算节点。
本申请实施例还提供一种节点设备,可作为无服务器网络***中的宿主节点实现,所述节点设备包括:存储器和处理器;所述存储器用于存储计算机程序;所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于:接收主控节点响应于函数代码对应的触发事件发送的代码启动指令,所述函数代码被转换成预设类型的代码包并上传至所述存储***中,所述代码包包含元数据和数据部分;基于所述存储***中的元数据,生成目标函数实例运行所需的所述数据部分对应的目录视图,并在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段,所述目标函数实例是运行于所述节点设备上的支持所述函数代码运行的函数实例。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现本申请实施例方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时,致使所述处理器实现本申请实施例方法中的步骤。
在本申请实施例中,在Serverless架构中,将用户上传的函数代码转换成元数据与数据部分相分离的代码格式进行存储,这样,在函数代码对应的触发事件发生的情况下,可以基于存储***中的元数据生成支持函数代码运行的函数实例所需的目录视图,进一步,在函数实例运行过程中,可基于该目录视图针对数据部分进行按需下载,为函数实例提供运行所需的数据片段,由于无需一次性下载全部函数代码,而是可以做到按需下载,有助于节省下载时间,提升函数代码的加载和启动效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种Serverless网络***的结构示意图;
图1b为本申请实施例提供的一种Serverless网络***中各节点的内部结构示意图;
图1c为本申请实施例提供的另一种Serverless网络***中各节点的内部结构示意图;
图1d为本申请实施例提供的又一种Serverless网络***中各节点的内部结构示意图;
图2为本申请实施例提供的一种Serverless架构下的代码加载方法的流程示意图;
图3为本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种网络***100,该网络***100采用Serverless架构,故可称为Serverless网络***。该网络***100可为用户提供用户态的服务,用户只需编写实现应用逻辑的函数代码,再将函数代码打包上传至网络***100即可,而每个函数代码的具体执行则由网络***100负责。其中,允许用户为函数代码配置对应的触发事件,在触发事件发生的情况下,网络***100为函数代码分配计算资源,加载并运行函数代码;在不需要运行函数代码的情况下,又会收回计算资源。用户不需要关心计算资源层面的问题,使用户开发变得更加便捷,减轻用户的开发负担,给用户带来更好的体验。另外,本实施例的网络***100具有较高的可用性,还可实时对分配给函数代码的计算资源进行弹性伸缩,能够在应用低峰期,使用较少的计算资源来支撑应用需求,又能够在预期或者非预期的应用高峰来临时,及时分配更多计算资源,保证应用顺畅运行。
本实施例的网络***100可以应用于各种场景,例如物联网(Internet ofThings,IoT)、移动应用、音视频处理、语音识别、在线翻译等场景。例如,在IoT场景下,用户可以编写用于实时数据分类处理的函数代码,并将该函数代码上传至网络***100中,由网络***100在触发事件发生的情况下为该函数代码分配计算资源并运行该函数代码,以对外提供高效的实时数据分类服务,并且还可以根据实时数据分类需求弹性调整分配给该函数代码的计算资源。又例如,在音视频处理场景下,用户可以编写音视频转码、数据抽取、人脸识别等多种功能的函数代码,并将这些函数代码上传至网络***100中,由网络***100在触发事件发生的情况下为这些函数代码分配计算资源并运行这些函数代码,以对外提供音视频转码、数据抽取、人脸识别等服务,并可根据应用需求弹性调整分配给这些函数代码的计算资源,满足用户对实时性和并发能力的高要求。
为了实现上述功能,如图1a所示,本申请实施例提供的网络***100包括:主控节点10、多个计算节点20以及存储***30。其中,主控节点10与多个计算节点20以及存储***30之间通信连接,计算节点20与存储***30之间也通信连接。
主控节点10是网络***100中的管控节点,主要负责网络***100中的资源调度、安全控制、***监测和纠错等中至少一种管理。另外,主控节点10也可以作为与用户之间的交互接口,负责接收用户上传的函数代码以及相关信息。主控节点10的数量可以是一个或多个。主控节点10可以部署在一个或多个云计算数据中心中,或者,可以部署在一个或多个传统数据中心中;当然,主控节点10也可以部署在网络***100中,例如主控节点10可独立于多个计算节点20单独部署,例如部署在网络***100中的其它物理设备上,本实施例对此不做限定。
计算节点20是网络***100中的资源节点,主要负责提供各种资源,如物理机、CPU、GPU等计算资源,内存和硬盘等存储资源,以及带宽等网络资源,也是主控节点10的调度对象。在本实施例中,计算节点20可以是各种具有一定计算能力的物理设备,例如可以是服务器、机柜、CPU、GPU、核心网设备、基站、边缘网关、家庭网关、计算设备和/或存储设备等。相应地,存储***30主要负责存储用户上传的函数代码,例如可以包括但不限于:对象存储服务(Object Storage Service,OSS)、网络附属存储(Network Attached Storage,NAS)、数据仓库或各种类型的数据库等。
在本实施例中,主控节点10可以接收用户上传的函数代码,将该函数代码存储至存储***30中,并在需要运行函数代码的情况下,对计算节点20进行资源调度,从计算节点20为函数代码分配宿主节点,并在宿主节点上实时创建或预先创建支持该函数代码运行的函数实例。其中,函数实例是指运行在计算节点20上相对隔离,且能够支持函数代码运行的运行环境,例如可以是容器、虚拟机或其它类似的运行环境。其中,在函数实例运行函数代码时,需要从存储***30中下载函数代码,进一步,如果函数代码被压缩了,还需要对函数代码进行解压缩。在有函数代码的基础上,函数实例就可以加载并运行函数代码了。
其中,下载和解压缩操作是比较耗时的,为了提高函数代码的加载效率,在本实施例中,主控节点10在接收到用户上传的函数代码之后,并不是直接将用户上传的函数代码上传至存储***30,而是将用户上传的函数代码转换成预设类型的代码包,并上传至存储***30中。在本申请实施例中,预设类型是指支持按需访问的用户态文件格式,该格式的代码包中包含元数据和数据部分,通过元数据可以获知数据部分的目录视图,该目录视图体现了数据的存储结构,基于目录视图可支持对数据部分进行按需下载。可选地,用户态文件格式可以是rafs(Registry Acceleration File System)文件***支持的文件格式,该文件格式包括元数据(meta)和blob文件,元数据(meta)用于存储blob文件的目录结构,该blob文件用于存储数据部分,其中,blob文件是指可以存储图片数据或大文本数据的二进制文件。例如,若用户上传的函数代码为zip格式,则主控节点10可将zip格式的函数代码转换成rafs格式的代码包,该代码包中包括元数据和blob文件,当需要访问blob文件中的数据时,可从元数据(meta)获得blob文件的目录结构,进而根据该目录结构按需下载blob文件中的数据。
另外,主控节点10还负责存储和管理函数代码对应的触发事件,并监测触发事件是否发生。这里的触发事件可以是时间触发,也可以是事件触发,还可以是用户触发。关于时间触发是指当设定的时间或时间范围到达时,意味着需要启动函数代码;关于事件触发是指在设定的事件发生时,意味着需要启动函数代码;关于用户触发是指在接收到特定用户指令(如启动指令)时,意味着需要启动函数代码。如图1a所示,主控节点10还可响应于函数代码对应的触发事件,向多个计算节点20中的宿主节点21发送代码启动指令,以使宿主节点21运行该函数代码。其中,宿主节点21具有一定计算能力的基础设施,运行有支持函数代码运行的目标函数实例22的计算节点,其中,目标函数实例22可以是一个或多个,这些目标函数实例22可对外提供各种云计算服务。可选地,目标函数实例22的实现形态可以是虚拟机(VM)、容器(Docker)、函数计算服务或原生应用程序等,在此不做限定。
在本实施例中,主控节点10可以从多个计算节点20中选择宿主节点21,例如可以根据各计算节点20的负载情况、可用资源量、部署位置、资源类型等信息,从中选择宿主节点21。另外,关于宿主节点21上的目标函数实例22可以采用以下两种方式创建:一种是主控节点10在选择出宿主节点21之后,指示宿主节点21实时创建目标函数实例22;另一种是预先在多个计算节点20上创建对应的函数实例,在选择出宿主节点21之后,该宿主节点21上的函数实例即为目标函数实例22。
在本实施例中,宿主节点21,用于接收主控节点10发送的代码启动指令,并在接收到代码启动指令的情况下,基于存储***30中代码包中的元数据,生成代码包中数据部分对应的目录视图,并在目标函数实例22运行过程中,基于目录视图对存储***30中代码包中的数据部分进行按需下载,以向目标函数实例22提供当前运行所需的数据片段。其中,数据片段是指目标函数实例22当前运行所需的部分数据。可选地,如图1a所示,宿主节点21还包括内存24,宿主节点21可以从存储***30中下载元数据至本地内存24中,以便基于所下载的元数据生成数据部分对应的目录视图;或者,在存储***30可以被挂载在宿主节点21上作为其本地存储的情况下,宿主节点21也可以直接访问存储***30中的元数据,以便基于存储***30中的元数据生成数据部分对应的目录视图。可选地,在存储***30包括NAS***的情况下,宿主节点21可以在启动时或者按需挂载NAS***,并直接访问NAS***中的元数据,而不用将元数据下载至本地内存中。
进一步,在生成目录视图的情况下,如图1a所示,宿主节点21还可以响应目录视图上的数据访问操作,以及根据目录视图上的数据访问操作,从存储***30中下载数据部分中与该数据访问操作对应的数据片段至内存24中,以供目标函数实例22运行该数据片段,为用户提供对应的服务。具体地,宿主节点21可以将该目录视图呈现给用户,例如宿主节点21带有显示屏幕,通过该显示屏幕显示目录视图;或者,宿主节点21可以采用远程桌面的方式将目录视图呈现到用户使用的终端设备上;基于此,用户可以对目录视图发出各种访问操作,例如点击、双击、选择等,用户的数据访问操作可被宿主节点21感知;宿主节点21基于该数据访问操作,确定需要访问的数据片段,并从存储***30中下载该数据片段至内存中,以供目标函数实例22运行该数据片段,为用户提供对应的服务。
在本申请实施例中,网络***100可将用户上传的函数代码转换成元数据与数据部分相分离的代码格式进行存储,这样,在函数代码对应的触发事件发生的情况下,可以基于存储***30中的元数据生成支持函数代码运行的函数实例所需的目录视图。进一步,在函数实例运行过程中,可基于该目录视图针对数据部分进行按需下载,为函数实例提供运行所需的数据片段,由于无需一次性下载全部函数代码,而是可以做到按需下载,有助于节省下载时间,提升函数代码的加载和启动效率。
在本申请实施例中,并未对主控节点10、宿主节点21和存储***30的内部结构进行限定,下面实施例给出主控节点10、宿主节点21和存储***30的实现结构,并结合附图对网络***100的工作原理进行说明。
在一可选实施例中,在图1b所示网络***100中,主控节点10包括应用程序接口(Application Programming Interface,API)服务模块、转换模块和管控模块。其中,API服务模块可向用户提供访问网络***100所需的各种API接口,转换模块主要负责将函数代码转换为预设类型的代码包。具体地,用户可将函数代码通过API服务模块提供的API接口上传至主控节点10,并由转换模块将函数代码转换成预设类型的代码包,进而存储至存储***30中。当然,用户可以对函数代码进行更新,并通过API服务模块提供的API接口将更新后的函数代码上传至主控节点10,由转换模块将更新后的函数代码转换成预设类型的新代码包,并利用新代码包替换存储***30中已有的旧代码包,完成函数代码的更新。
在一可选实施例中,用户上传函数代码之前,可以对函数代码进行压缩,以减少数据传输量。基于此,主控节点10中的转换模块在将用户上传的函数代码转换为预设类型的代码包时,具体可以对用户上传的函数代码进行解压缩,并按照预设类型将解压缩后的函数代码转换成元数据和数据部分;进一步,为了节省数据下载量,转换模块还可对数据部分进行压缩,之后根据元数据和压缩后的数据部分生成对应的代码包,并上传至所述存储***30中。
在函数代码被存储至存储***30的情况下,管控模块一方面用于感知函数代码对应的触发事件,并向宿主节点21下发代码启动指令。另一方面,在下发代码启动指令之前,管控模块还需要确定宿主节点21。可选地,管控模块可根据各计算节点20的负载情况、可用资源量、部署位置、资源类型等信息,从多个计算节点20中选择宿主节点21,在确定宿主节点21的情况下,管控模块可向宿主节点21下发代码启动指令。例如,假设函数代码运行需要3核CPU,52G内存,则管控模块可以根据所维护的各计算节点20的可用资源信息,从中选择可提供3核CPU和52G内存的计算节点作为宿主节点21。在宿主节点21上部署有可运行函数代码的目标函数实例,该目标函数实例可以是预先部署在宿主节点21上的,也可以是在选定宿主节点21之后实时部署的。
在一可选实施例中,如图1a所示,存储***30包括NAS***,该NAS***中存储有代码包,该代码包包括函数代码对应的元数据和数据部分。NAS ***是一种网络存储***,具有读取方便、效率高等优势,宿主节点21可以挂载该NAS***。在本实施例中,并不限定宿主节点21挂载NAS***的方式,可选地,宿主节点21可以在启动时默认挂载NAS***,或者,主控节点10在代码启动指令中包含指向NAS***的第一地址信息,在该情况下,宿主节点21根据第一地址信息挂载NAS***。其中,在宿主节点21接收到启动指令的情况下,可优先判断本地磁盘中是否存在要启动的函数代码;如果本地磁盘不存在,则从NAS***中读取元数据,并根据元数据生成目录视图,进而基于目录视图从NAS***中按需加载目标函数实例22运行所需的数据片段,提高函数启动效率。
进一步可选地,考虑到NAS***是网络存储***,在数据下载过程中面临网络、带宽、***状态等一系列不确定的风险,因此,为了保证数据下载以及后续加载数据的稳定性,如图1b所示,本实施例的存储***30还包括OSS***。OSS是一种大容量块存储***,具有稳定可靠、高并发等优势。基于此,宿主节点21在按需从NAS***中下载所需数据片段的过程中,还可以在后台将OSS***中的代码包全量下载至宿主节点21的本地磁盘26中,实现函数代码的同步运行和下载,节省加载时间,保证函数启动的效率。进一步可选地,在将OSS***中的代码包全量下载至本地磁盘之后,还可以将数据加载地址从指向NAS***的第一地址信息修改为指向本地磁盘的第二地址信息,实现加载地址的热切换,这样在后续数据加载过程中可以根据目录视图上的数据访问操作从本地磁盘中继续按需加载数据部分中尚未被加载至目标函数实例22对应的内存空间中的剩余数据。这样,不仅可以减少对NAS的依赖,减少稳定性风险,提升数据加载的稳定系和安全性,通过从宿主节点21本地加载数据,还能提升数据加载的效率。
在一可选实施例中,如图1b所示,宿主节点21除了包含目标函数实例22、内存24和本地磁盘26之外,还包括管控***23和用户态文件***25。其中,管控***23用于接收主控节点10下发的各种指令,以及根据主控节点10下发的指令控制宿主节点21上的用户态文件***25和/或目标函数实例等模块执行对应的动作。例如,管控***23可接收主控节点10中管控模块下发的启动指令,根据该启动指令调用用户态文件***25,由该用户态文件***25在函数代码启动过程中执行从NAS***中下载元数据并按需下载数据部分,以及在后台从OSS***全量下载代码包等操作,为目标函数实例运行函数代码提供数据基础。
具体地,用户态文件***25可在管控***23的调用下,从NAS***中下载元数据到目标函数实例对应的内存24中,以供目标函数实例基于内存中的元数据生成数据部分对应的目录视图。进一步,在目标函数实例运行过程中,用户态文件***25还可在响应到目录视图上的数据访问操作的情况下,从NAS***中下载与该数据访问操作对应的数据片段至内存24中,以供目标函数实例运行该数据片段,为用户提供对应的服务。进一步可选地,如果代码包中的数据部分是经过压缩的,在基于目录视图按需下载到目标函数实例22当前运行所需的数据片段之后,还可以对数据片段进行解压缩,将解压缩后的数据片段存储至内存24中,以供目标函数实例22运行解压缩后的数据片段,向用户提供对应的服务。
在一可选实施例中,如图1b所示,目标函数实例22可以为多个,在多个目标函数实例22使用相同函数代码的情况下,宿主节点21可为多个目标函数实例22分配共享内存,即上述内存24可被多个目标函数实例22共享,则每个目标函数实例22对应的内存空间具体为共享内存。其中,多个目标函数实例22可分别加载并运行共享内存24中的数据片段。
在上述实例中,并没有限定采用何种技术实现无服务器架构中的目标函数实例,采用何种技术实现目标函数实例,可根据具体需求确定,在此并不做限定。需要说明的是,目标函数实例的实现方式不同,则用户态文件***25的实现也会有所不同。如图1c所示,在一可选实施例中,目标函数实例可以实现为运行在宿主节点21上的普通容器,相应地,在宿主节点21上还需要运行用户态文件***25,具体可由宿主节点21的操作***启动用户态进程,由用户态进程运行该用户态文件***25;基于此,管控***23在接收到代码启动指令的情况下,可通知宿主节点21的操作***,由操作***启动与用户态文件***25对应的用户态进程,并由用户态进程执行上述生成目录视图以及按需下载数据部分等相关操作。如图1d所示,在另一可选实施例中,宿主节点21上运行有安全容器,其中,安全容器相当于是用户的VM,该安全容器包括虚拟机监视器(Virtual Machine Monitor,VMM)和运行于VMM之上的普通容器,则目标函数实例为运行于VMM之上的普通容器;在该情况下,用户态文件***25可运行在安全容器中,具体可由安全容器中的内核态进程运行该用户态文件***25;基于此,管控***23在接收到代码启动指令的情况下,可通知VMM启动与用户态文件***25对应的内核态进程,并由内核态进程执行上述生成目录视图以及按需下载数据部分等相关操作。
基于上述实施例,在无服务器(Serverless)网路***中,可将用户上传的函数代码转换成预设类型的代码包,该代码包包含元数据和数据部分。在存储时,将元数据和数据部分相分离的存储至NAS***中,在响应到用户对函数代码的触发事件的情况下,可基于NAS***中的元数据生成支持函数代码运行的函数实例所需的目录视图;进而根据用户的访问操作按需从NAS***中加载数据部分中的数据片段,以在函数实例运行数据部分时,向用户提供对应的服务。由于无需一次性下载全部函数代码,而是可以做到按需下载,有助于节省下载时间,提升函数代码的加载和启动效率。并且,网路***还可将转换后的代码包存储至OSS***中,在函数实例运行数据部分的过程中,同步下载OSS中的代码包到宿主节点磁盘中,并在代码包下载结束后将从NAS加载切换为从宿主节点磁盘加,通过这种方式,不仅可以提升数据加载的稳定性,还有助于提升加载效率。
本申请实施例还提供一种无服务器Serverless架构下的代码加载方法,如图2所示,该方法包括:
S2a、将用户上传的函数代码转换成预设类型的代码包,并上传至存储***中,代码包包含元数据和数据部分;
S2b、响应于函数代码对应的触发事件,基于存储***中的元数据,生成支持函数代码运行的目标函数实例运行所需的数据部分对应的目录视图;
S2c、在目标函数实例运行过程中,基于目录视图对存储***中的数据部分进行按需下载,以向目标函数实例提供当前运行所需的数据片段。
在本实施例中,可以将用户上传的函数代码转换成预设类型的代码包,该代码包包括函数代码对应的元数据和数据部分,元数据可体现数据部分的目录结构。
可选地,用户在上传函数代码之前,可以对函数代码进行压缩。在本实施例中,并不限定用户对函数代码进行压缩所采用的压缩方式,例如可以是但不限于:RAR压缩方式或ZIP压缩方式。基于此,在将用户上传的函数代码转换为预设类型的代码包时,可对用户上传的函数代码进行解压缩,并按照预设类型将解压缩后的函数代码转换成元数据和数据部分,之后对数据部分进行压缩,最终根据元数据和压缩后的数据部分生成代码包。
相应地,在基于目录视图对存储***中的数据部分进行按需下载时,可基于目录视图按需下载目标函数实例当前运行所需的数据片段,并对数据片段进行解压缩,以及将解压缩后的数据片段存储至目标函数实例对应的内存空间中,以供目标函数实例运行解压缩后的数据片段,向用户提供 对应的服务。
在一可选实施例中,存储***可以包括NAS***,在该NAS***中存储有代码包。基于此,响应于函数代码对应的触发事件,基于存储***中的元数据,生成支持函数代码运行的数据部分对应的目录视图,包括:响应函数代码对应的触发事件,挂载NAS***,并从NAS***中下载元数据至目标函数实例对应的内存空间中,以供目标函数实例基于元数据生成目录视图。相应地,在目标函数实例运行过程中,基于目录视图对存储***中的数据部分进行按需下载,以向目标函数实例提供当前运行所需的数据片段,包括:在目标函数实例运行过程中,根据目录视图上的数据访问操作,从NAS***中下载数据部分中与数据访问操作对应的数据片段至目标函数实例对应的内存空间中,以供目标函数实例运行数据片段,最终向用户提供对应的服务。
进一步可选地,存储***还可以包括OSS***,OSS***中存储有函数代码对应的代码包。基于此,该方法还包括:在按需从NAS***中下载数据部分中与数据访问操作对应的数据片段至内存空间的过程中,从OSS***全量下载代码包至本地磁盘。进一步,在成功将代码包全量下载到本地磁盘之后,还可以将数据加载地址从指向NAS***的第一地址信息修改为指向本地磁盘的第二地址信息,以及在后续数据加载过程中根据目录视图上的数据访问操作从本地磁盘中继续按需加载数据部分中尚未被加载至目标函数实例对应的内存空间中的剩余数据,以提升数据加载的稳定向和效率。
在本实施例中,可以将用户上传的函数代码转换成元数据与数据部分相分离的代码格式进行存储,这样,在函数代码对应的触发事件发生的情况下,可以基于存储***中的元数据生成支持函数代码运行的函数实例所需的目录视图。进一步,在函数实例运行过程中,可基于该目录视图针对数据部分进行按需下载,为函数实例提供运行所需的数据片段,由于无需一次性下载全部函数代码,而是可以做到按需下载,有助于节省下载时间,提升函数代码的加载和启动效率。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤S2a-S2c的执行主体可以为设备A;又比如,步骤S2a的执行主体可以为设备A,步骤S2b和S2c的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S2a、S2b等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”、“第二”是不同的类型。
基于上述,本申请可选实施例还提供一种节点设备,可作为无服务器网络***中的主控节点实现。图3为本申请实施例的节点设备的结构示意图,如图3所示,节点设备包括:处理器31以及存储有计算机程序的存储器32;其中,处理器31和存储器32可以是一个或多个。
存储器32,主要用于存储计算机程序,这些计算机程序可被处理器31执行,致使处理器31控制节点设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器32还可被配置为存储其它各种数据以支持在节点设备上的操作。这些数据的示例包括用于在节点设备上操作的任何应用程序或方法的指令。
存储器32,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,并不限定处理器31的实现形态,例如可以是但不限于CPU、GPU或MCU等。处理器31可以看作是节点设备的控制***,可用于执行存储器32中存储的计算机程序,以控制节点设备实现相应功能、完成相应动作或任务。值得说明的是,根据节点设备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器32中存储的计算机程序也会有所不同,而处理器31执行不同计算机程序可控制节点设备实现不同的功能、完成不同的动作或任务。
在本实施例中,图3中仅示意性给出部分组件,并不意味着节点设备只包括图3所示组件,针对不同的应用需求,节点设备还可以包括其他组件,例如,如图3所示,节点设备还可以包括电源组件33和通信组件34等。关于节点设备可包含的组件,具体可视节点设备的产品形态而定,在此不做限定。
在本申请实施例中,当处理器31执行存储器32中的计算机程序时,以用于:将用户上传的函数代码转换成预设类型的代码包,并上传至存储***中,代码包包含元数据和数据部分;以及响应于函数代码对应的触发事件,向无服务器网络***中多个计算节点中的宿主节点发送代码启动指令,以使宿主节点基于存储***中的元数据生成目标函数实例运行所需的数据部分对应的目录视图,并在目标函数实例运行过程中,基于目录视图对存储***中的数据部分进行按需下载;其中,宿主节点是运行有支持函数代码运行的目标函数实例的计算节点。
在一可选实施例中,处理器31在将用户上传的函数代码转换成预设类型的代码包,并上传至存储***中时,具体用于:对用户上传的函数代码进行解压缩,按照预设类型将解压缩后的函数代码转换成元数据和数据部分,对数据部分进行压缩,根据元数据和压缩后的数据部分生成代码包,并上传至存储***中。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由节点设备台执行的各步骤。
本申请另一可选实施例还提供一种节点设备,可作为无服务器网络***中的宿主节点实现。其结构与图3所示节点设备相似,具体可参见图3所示的结构示意图。在本实施例中,节点设备包括:处理器以及存储有计算机程序的存储器;其中,处理器和存储器可以是一个或多个。
在本实施例中,针对不同的应用需求,节点设备还可以包括其他组件,例如,节点设备还可以包括电源组件和通信组件等。关于节点设备可包含的组件,具体可视节点设备的产品形态而定,在此不做限定。
在本申请实施例中,当处理器执行存储器中的计算机程序时,以用于:接收主控节点响应于函数代码对应的触发事件发送的代码启动指令,函数代码被转换成预设类型的代码包并上传至存储***中,代码包包含元数据和数据部分;基于存储***中的元数据,生成目标函数实例运行所需的数据部分对应的目录视图,并在目标函数实例运行过程中,基于目录视图对存储***中的数据部分进行按需下载,以向目标函数实例提供当前运行所需的数据片段,目标函数实例是运行于本实施例提供的节点设备上且支持所述函数代码运行的函数实例。
在一可选实施例中,存储***还包括OSS***,处理器还用于:从OSS***下载代码包至本地磁盘,将数据加载地址从指向NAS***的第一地址信息修改为指向本地磁盘的第二地址信息,并根据目录视图上的数据访问操作从本地磁盘中继续按需加载数据部分中尚未被加载至目标函数实例对应的内存空间中的剩余数据。
在一可选实施例中,目标函数实例为多个,处理器还用于:为多个目标函数实例分配共享内存,目标函数实例对应的内存空间为共享内存。
在一可选实施例中,处理器还用于:在基于目录视图按需下载到目标函数实例当前运行所需的数据片段之后,对数据片段进行解压缩,将解压缩后的数据片段存储至目标函数实例对应的内存空间中,以供目标函数实例运行解压缩后的数据片段。
在一可选实施例中,目标函数实例为运行在节点设备上的普通容器,处理器在接收到代码启动指令的情况下,用于:启动与用户态文件***对应的用户态进程,由用户态进程执行上述生成目录视图以及按需下载的操作;或者节点设备上运行有安全容器,安全容器包括VMM和运行于VMM之上的普通容器,目标函数实例为普通容器;处理器在接收到代码启动指令的情况下,用于:控制VMM启动与用户态文件***对应的内核态进程,由内核态进程执行上述生成目录视图以及按需下载的操作。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时,致使处理器能够实现上述方法实施例中的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中的各步骤。
上述实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种无服务器Serverless网络***,其特征在于,包括:主控节点、多个计算节点以及存储***;
所述主控节点,用于将用户上传的函数代码转换成预设类型的代码包,并上传至所述存储***中,所述代码包包含元数据和数据部分,所述元数据用于存储所述数据部分的目录视图,所述目录视图体现所述数据部分的存储结构;以及响应于所述函数代码对应的触发事件,向所述多个计算节点中的宿主节点发送代码启动指令,所述宿主节点是运行有支持所述函数代码运行的目标函数实例的计算节点;
所述宿主节点,用于在接收到所述代码启动指令的情况下,基于所述存储***中的元数据,生成所述数据部分对应的目录视图,并在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段。
2.根据权利要求1所述的网络***,其特征在于,所述存储***包括NAS***;
所述宿主节点具体用于:挂载所述NAS***,从所述NAS***中下载所述元数据至所述目标函数实例对应的内存空间中,以供所述目标函数实例生成所述目录视图;以及根据所述目录视图上的数据访问操作,从所述NAS***中下载所述数据部分中与所述数据访问操作对应的数据片段至所述内存空间中,以供所述目标函数实例运行所述数据片段。
3.根据权利要求2所述的网络***,其特征在于,所述存储***还包括OSS***;
所述宿主节点还用于:从所述OSS***下载所述代码包至本地磁盘,将数据加载地址从指向NAS***的第一地址信息修改为指向本地磁盘的第二地址信息,并根据所述目录视图上的数据访问操作从本地磁盘中继续按需加载所述数据部分中尚未被加载至所述目标函数实例对应的内存空间中的剩余数据。
4.根据权利要求2所述的网络***,其特征在于,所述目标函数实例为多个,所述宿主节点还用于:为所述多个目标函数实例分配共享内存,所述目标函数实例对应的内存空间为所述共享内存。
5.根据权利要求1-4任一项所述的网络***,其特征在于,所述主控节点具体用于:对用户上传的函数代码进行解压缩,按照预设类型将解压缩后的函数代码转换成元数据和数据部分,对所述数据部分进行压缩,根据所述元数据和压缩后的数据部分生成所述代码包,并上传至所述存储***中;
所述宿主节点还用于:在基于所述目录视图按需下载到所述目标函数实例当前运行所需的数据片段之后,对所述数据片段进行解压缩,将解压缩后的数据片段存储至所述目标函数实例对应的内存空间中,以供所述目标函数实例运行解压缩后的数据片段。
6.根据权利要求1-4任一项所述的网络***,其特征在于,所述目标函数实例为运行在所述宿主节点上的普通容器,所述宿主节点具体用于:在接收到所述代码启动指令的情况下,启动与用户态文件***对应的用户态进程,由所述用户态进程执行上述生成目录视图以及按需下载的操作;
或者
所述宿主节点上运行有安全容器,所述安全容器包括VMM和运行于VMM之上的普通容器,所述目标函数实例为所述普通容器;所述宿主节点具体用于:在接收到所述代码启动指令的情况下,控制所述VMM启动与用户态文件***对应的内核态进程,由所述内核态进程执行上述生成目录视图以及按需下载的操作。
7.一种无服务器Serverless架构下的代码加载方法,其特征在于,包括:
将用户上传的函数代码转换成预设类型的代码包,并上传至存储***中,所述代码包包含元数据和数据部分,所述元数据用于存储所述数据部分的目录视图,所述目录视图体现所述数据部分的存储结构;
响应于所述函数代码对应的触发事件,基于所述存储***中的元数据,生成支持所述函数代码运行的目标函数实例运行所需的所述数据部分对应的目录视图;以及
在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段。
8.根据权利要求7所述的方法,其特征在于,将用户上传的函数代码转换成预设类型的代码包,包括:对用户上传的函数代码进行解压缩,按照预设类型将解压缩后的函数代码转换成元数据和数据部分;对所述数据部分进行压缩,根据所述元数据和压缩后的数据部分生成所述代码包;
相应地,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段,包括:基于所述目录视图按需下载所述目标函数实例当前运行所需的数据片段,对所述数据片段进行解压缩,将解压缩后的数据片段存储至所述目标函数实例对应的内存空间中,以供所述目标函数实例运行解压缩后的数据片段。
9.根据权利要求7所述的方法,其特征在于,所述存储***包括:NAS***;
响应于所述函数代码对应的触发事件,基于所述存储***中的元数据,生成支持所述函数代码运行的数据部分对应的目录视图,包括:挂载所述NAS***,从所述NAS***中下载所述元数据至所述目标函数实例对应的内存空间中,以供所述目标函数实例生成所述目录视图;
相应地,在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段,包括:根据所述目录视图上的数据访问操作,从所述NAS***中下载所述数据部分中与所述数据访问操作对应的数据片段至所述内存空间中,以供所述目标函数实例运行所述数据片段。
10.根据权利要求9所述的方法,其特征在于,所述存储***还包括OSS***;所述方法还包括:
从所述OSS***下载所述代码包至本地磁盘,并将数据加载地址从指向NAS***的第一地址信息修改为指向本地磁盘的第二地址信息;
根据所述目录视图上的数据访问操作从本地磁盘中继续按需加载所述数据部分中尚未被加载至所述目标函数实例对应的内存空间中的剩余数据。
11.一种节点设备,可作为无服务器网络***中的主控节点实现,其特征在于,所述节点设备包括:存储器和处理器;所述存储器用于存储计算机程序;所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于:
将用户上传的函数代码转换成预设类型的代码包,并上传至存储***中,所述代码包包含元数据和数据部分,所述元数据用于存储所述数据部分的目录视图,所述目录视图体现所述数据部分的存储结构;以及响应于所述函数代码对应的触发事件,向所述无服务器网络***中多个计算节点中的宿主节点发送代码启动指令,以使所述宿主节点基于所述存储***中的元数据生成目标函数实例运行所需的所述数据部分对应的目录视图,并在所述目标函数实例运行过程中基于所述目录视图对所述存储***中的数据部分进行按需下载;其中,所述宿主节点是运行有支持所述函数代码运行的目标函数实例的计算节点。
12.一种节点设备,可作为无服务器网络***中的宿主节点实现,其特征在于,所述节点设备包括:存储器和处理器;所述存储器用于存储计算机程序;所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于:
接收主控节点响应于函数代码对应的触发事件发送的代码启动指令,所述函数代码被转换成预设类型的代码包并上传至存储***中,所述代码包包含元数据和数据部分,所述元数据用于存储所述数据部分的目录视图,所述目录视图体现所述数据部分的存储结构;
基于所述存储***中的元数据,生成目标函数实例运行所需的所述数据部分对应的目录视图,并在所述目标函数实例运行过程中,基于所述目录视图对所述存储***中的数据部分进行按需下载,以向所述目标函数实例提供当前运行所需的数据片段,所述目标函数实例是运行于所述节点设备上且支持所述函数代码运行的函数实例。
13.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求7-10任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833871.1A CN113282377B (zh) | 2021-07-23 | 2021-07-23 | 无服务器架构下的代码加载方法、设备、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110833871.1A CN113282377B (zh) | 2021-07-23 | 2021-07-23 | 无服务器架构下的代码加载方法、设备、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282377A CN113282377A (zh) | 2021-08-20 |
CN113282377B true CN113282377B (zh) | 2022-01-04 |
Family
ID=77287046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110833871.1A Active CN113282377B (zh) | 2021-07-23 | 2021-07-23 | 无服务器架构下的代码加载方法、设备、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282377B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791865A (zh) * | 2021-09-08 | 2021-12-14 | 山石网科通信技术股份有限公司 | 容器安全的处理方法及装置、存储介质和处理器 |
CN114598706B (zh) * | 2022-03-08 | 2023-05-16 | 中南大学 | 基于Serverless函数的存储***弹性伸缩方法 |
CN116932241A (zh) * | 2022-04-08 | 2023-10-24 | 华为云计算技术有限公司 | 一种服务启动方法及相关装置 |
CN116048735B (zh) * | 2023-03-23 | 2023-08-29 | 阿里云计算有限公司 | 信息处理方法以及对象共享方法 |
CN117112075B (zh) * | 2023-06-19 | 2024-02-20 | 领悦数字信息技术有限公司 | 将定时任务应用自动转换成无服务器函数的方法和*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058950A (zh) * | 2019-04-17 | 2019-07-26 | 上海沄界信息科技有限公司 | 基于无服务器架构的分布式云计算方法及设备 |
US20200241999A1 (en) * | 2020-03-25 | 2020-07-30 | Intel Corporation | Performance monitoring for short-lived functions |
CN112214293A (zh) * | 2017-11-08 | 2021-01-12 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN112445550A (zh) * | 2020-12-08 | 2021-03-05 | 中国科学院深圳先进技术研究院 | 一种预处理函数的无服务器计算方法及其*** |
CN112753019A (zh) * | 2018-09-27 | 2021-05-04 | 亚马逊技术有限公司 | 按需代码执行***中执行环境的有效状态维持 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491191A (zh) * | 2018-03-29 | 2018-09-04 | 安徽航天信息有限公司 | 一种无服务器FaaS架构税务大数据*** |
CN108845878A (zh) * | 2018-05-08 | 2018-11-20 | 南京理工大学 | 基于无服务器计算的大数据处理方法及装置 |
-
2021
- 2021-07-23 CN CN202110833871.1A patent/CN113282377B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214293A (zh) * | 2017-11-08 | 2021-01-12 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN112753019A (zh) * | 2018-09-27 | 2021-05-04 | 亚马逊技术有限公司 | 按需代码执行***中执行环境的有效状态维持 |
CN110058950A (zh) * | 2019-04-17 | 2019-07-26 | 上海沄界信息科技有限公司 | 基于无服务器架构的分布式云计算方法及设备 |
US20200241999A1 (en) * | 2020-03-25 | 2020-07-30 | Intel Corporation | Performance monitoring for short-lived functions |
CN112445550A (zh) * | 2020-12-08 | 2021-03-05 | 中国科学院深圳先进技术研究院 | 一种预处理函数的无服务器计算方法及其*** |
Non-Patent Citations (1)
Title |
---|
云计算应用服务开发环境: 从代码逻辑到数据流图;刘云浩等;《中国科学: 信息科学》;20190903(第9 期);第1-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113282377A (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113282377B (zh) | 无服务器架构下的代码加载方法、设备、***及存储介质 | |
US11556366B2 (en) | Container login method, apparatus, and storage medium | |
CN110413346B (zh) | 一种参数更新方法及装置 | |
CN113726846B (zh) | 边缘云***、资源调度方法、设备及存储介质 | |
CN116170317A (zh) | 网络***、服务提供与资源调度方法、设备及存储介质 | |
CN102571940B (zh) | 应用程序远程安装***、方法、智能终端、应用服务器 | |
CN113296903A (zh) | 边缘云***、边缘管控方法、管控节点及存储介质 | |
CN117411765A (zh) | 网络***、管控方法、设备及存储介质 | |
US10628070B2 (en) | Selecting and compressing target files to obtain additional free data storage space to perform an operation in a virtual machine | |
CN113301102A (zh) | 资源调度方法、设备、边缘云网络、程序产品及存储介质 | |
CN113296882A (zh) | 容器编排方法、设备、***及存储介质 | |
CN113382032B (zh) | 云节点变更、网络扩展、服务提供方法、设备及介质 | |
CN107092507A (zh) | 应用程序的换肤方法、装置及*** | |
CN111026406A (zh) | 应用运行方法、设备和计算机可读存储介质 | |
CN114489690A (zh) | 一种分布式***部署方法、装置、电子设备及存储介质 | |
CN104092754A (zh) | 文件存储***和文件存储方法 | |
CN113300866B (zh) | 节点能力管控方法、设备、***及存储介质 | |
WO2023193433A1 (zh) | 一种服务启动方法及相关装置 | |
US11709749B1 (en) | Diagnostic data collection for kubernetes | |
CN111651172B (zh) | 一种基于容器化iso的自动化生成方法及*** | |
CN111597021B (zh) | 一种实现应用程序运行的方法、装置、***及相关设备 | |
CN114816789A (zh) | 基于云应用的文件处理方法、电子设备和存储介质 | |
CN113434244B (zh) | 实例创建和数据处理方法、设备、***及存储介质 | |
CN114721728A (zh) | 基于云应用的处理方法、电子设备和存储介质 | |
CN113553194A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |