资源调用方法、设备、系统及存储介质转让专利

申请号 : CN202010526842.6

文献号 : CN113301080B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜万储静辉倪俊佳谭贺贺杨苏博张金红

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本申请实施例提供一种资源调用方法、设备、系统及存储介质。在本申请实施例中,在云应用侧增设代理节点,代理节点和计算节点之间通过计算节点将其协议端口反向映射为代理节点的协议端口,建立通信连接。这样,代理节点可基于代理节点的协议端口与计算节点的协议端口之间的映射关系,调用计算节点作为云应用的计算资源,无需要求计算节点和云应用属于同一云厂商,实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。

权利要求 :

1.一种云应用系统,包括:云应用节点、代理节点和至少一个计算节点;所述云应用节点与所述代理节点位于广域网环境中,所述至少一个计算节点位于局域网环境中;

所述云应用节点用于提供应用服务;所述代理节点和所述至少一个计算节点通过所述至少一个计算节点将其协议端口反向映射为所述代理节点的协议端口,建立通信连接;

所述至少一个计算节点还用于向所述代理节点发起网络连接请求;所述网络连接请求包括所述至少一个计算节点的第一协议端口以及所述代理节点的第二协议端口;

所述代理节点还用于:根据所述至少一个计算节点的第一协议端口以及所述代理节点的第二协议端口,建立所述代理节点的协议端口与计算节点的协议端口之间的映射关系;

基于所述代理节点的协议端口与计算节点的协议端口之间的映射关系,建立所述代理节点与所述至少一个计算节点之间的通信连接;

所述代理节点维护有代理节点的协议端口与计算节点的协议端口之间的映射关系;

所述代理节点,用于基于所述代理节点的协议端口与计算节点的协议端口之间的映射关系,调用所述至少一个计算节点作为所述云应用节点的计算资源。

2.根据权利要求1所述的系统,所述代理节点的协议端口为注册端口,所述至少一个计算节点的协议端口为周知端口。

3.根据权利要求1所述的系统,所述云应用节点用于获取访问请求;所述访问请求包括用户标识;根据所述用户标识,确定所述用户标识对应的注册用户预先注册的目标协议端口;将所述访问请求提供给所述代理节点的目标协议端口;

所述代理节点,具体用于:根据所述代理节点的协议端口与计算节点的协议端口之间的映射关系以及所述目标协议端口的标识,从所述至少一个计算节点中确定目标计算节点;将所述访问请求提供给所述目标计算节点,以供所述目标计算节点对所述访问请求进行处理。

4.根据权利要求3所述的系统,还包括:存储节点;所述目标计算节点在对所述访问请求进行处理时,具体用于:将所述存储节点挂载于所述代理节点之上;

根据所述访问请求,访问所述存储节点。

5.根据权利要求4所述的系统,所述存储节点为网络附属存储节点。

6.根据权利要求4所述的系统,所述云应用节点用于提供集成开发环境,以供用户通过浏览器使用所述集成开发环境。

7.根据权利要求1‑6任一项所述的系统,所述云应用节点是基于函数即服务平台实现。

8.根据权利要求1‑6任一项所述的系统,所述至少一个计算节点为容器实例。

9.一种资源调用方法,适用于服务节点,所述服务节点和计算节点之间的通信连接是通过所述计算节点将其协议端口反向映射为所述服务节点的协议端口建立的,所述服务节点位于广域网环境中,所述计算节点位于局域网环境中;

所述方法包括:

获取访问请求;基于所述服务节点的协议端口与计算节点的协议端口之间的映射关系,调用所述计算节点对所述访问请求进行处理;

在基于所述服务节点的协议端口与计算节点的协议端口之间的映射关系,调用所述计算节点对所述访问请求进行处理之前,还包括:接收所述计算节点发起的网络连接请求;所述网络连接请求包括所述计算节点的第一协议端口以及所述服务节点的第二协议端口;

根据所述计算节点的第一协议端口以及所述服务节点的第二协议端口,建立所述服务节点的协议端口与计算节点的协议端口之间的映射关系;

基于所述服务节点的协议端口与计算节点的协议端口之间的映射关系,建立所述服务节点与所述计算节点之间的通信连接。

10.根据权利要求9所述的方法,在所述服务节点的协议端口与计算节点的协议端口之间的映射关系中,所述服务节点的协议端口为注册端口,所述计算节点的协议端口为周知端口。

11.根据权利要求9所述的方法,所述访问请求包含用户标识;所述计算节点为至少一个;所述基于所述服务节点的协议端口与计算节点的协议端口之间的映射关系,调用所述计算节点对所述访问请求进行处理,包括:根据所述用户标识,确定所述用户标识对应的注册用户预先注册的目标协议端口;

根据所述服务节点的协议端口与计算节点的协议端口之间的映射关系以及所述目标协议端口的标识,从所述至少一个计算节点中确定目标计算节点;

调用所述目标计算节点对所述访问请求进行处理。

12.根据权利要求11所述的方法,所述调用所述目标计算节点对所述访问请求进行处理,包括:调用所述目标计算节点将存储节点挂载于所述服务节点之上;

并调用所述目标计算节点根据所述访问请求,访问所述存储节点。

13.根据权利要求12所述的方法,所述访问请求为写请求;所述写请求包括待写入数据;所述调用所述目标计算节点根据所述访问请求,访问所述存储节点,包括:调用所述目标计算节点根据所述待写入数据的大小,在所述存储节点中申请目标存储空间;以及,调用所述目标计算节点将所述待写入数据写入所述目标存储空间;所述目标存储空间的容量大于或等于所述待写入数据的大小。

14.根据权利要求12所述的方法,所述访问请求为读请求;所述读请求包括待读取数据在所述存储节点中的目标存储地址;所述调用所述目标计算节点根据所述访问请求,访问所述存储节点,包括:调用所述目标计算节点从所述目标存储地址指向的存储空间中读取所述待读取数据;

并输出所述待读取数据。

15.根据权利要求12所述的方法,所述访问请求为查询请求;所述查询请求包含查询条件;所述调用所述目标计算节点根据所述访问请求,访问所述存储节点,包括:调用所述目标计算节点在所述存储节点中查找符合所述查询条件的目标数据;并输出所述目标数据。

16.根据权利要求12所述的方法,所述服务节点用于提供集成开发环境,以供用户通过浏览器使用所述集成开发环境。

17.根据权利要求16所述的方法,还包括:

提供编辑界面;所述编辑界面包括至少一个功能组件;

响应于针对所述至少一个功能组件的选择操作,调用所述目标计算节点根据被选择的目标功能组件的标识,编译所述目标功能组件对应的代码;

调用所述目标计算节点将所述目标功能组件对应的代码写入所述存储节点。

18.根据权利要求17所述的方法,在调用所述目标计算节点将所述目标功能组件对应的代码写入所述存储节点之前,还包括:在所述编辑界面展示所述目标功能组件对应的代码,以供注册用户对所述功能组件对应的代码进行查看和/或修改。

19.根据权利要求18所述的方法,所述调用所述目标计算节点将所述目标功能组件对应的代码写入所述存储节点,包括:响应于保存操作,将所述目标功能组件对应的代码作为待写入代码;

调用所述目标计算节点将所述目标功能组件对应的代码写入所述存储节点。

20.根据权利要求18所述的方法,所述在所述编辑界面展示所述目标功能组件对应的代码,包括:调用所述目标计算节点对所述目标功能组件对应的代码进行语言注释;

将带有语言注释的代码作为所述目标功能组件对应的代码,并在所述编辑界面展示目标功能组件对应的代码。

21.一种服务端设备,所述服务端设备包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;

所述处理器耦合至所述存储器与所述通信组件,用于执行所述计算机程序以用于执行权利要求9‑20任一项所述方法中的步骤;

所述服务端设备和计算节点之间的通信连接是通过所述计算节点将其协议端口反向映射为所述服务端设备的协议端口建立的;所述服务端设备位于广域网环境中,所述计算节点位于局域网环境中。

22.一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求9‑20任一项所述方法中的步骤。

说明书 :

资源调用方法、设备、系统及存储介质

技术领域

[0001] 本申请涉及云计算技术领域,尤其涉及一种资源调用方法、设备、系统及存储介质。

背景技术

[0002] 近年来,云计算发展迅猛,数据上云逐渐成为主流趋势,应用上云也应运而生。云应用依托云服务器和浏览器,为用户提供相关服务。例如,WebIDE云开发平台可依托云服务器和浏览器,为用户提供集成开发环境,供用户进行程序开发等。
[0003] 在现有技术中,云应用依托多种计算资源,计算资源与云应用之间紧耦合,限制了云应用的使用灵活性。

发明内容

[0004] 本申请的多个方面提供一种资源调用方法、设备、系统及存储介质,用以将云应用与计算资源解耦,进而提高云应用的使用灵活性。
[0005] 本申请实施例提供一种云应用系统,包括:云应用节点、代理节点和至少一个计算节点;所述云应用节点用于提供应用服务;所述代理节点和所述至少一个计算节点通过所述至少一个计算节点将其协议端口反向映射为所述代理节点的协议端口,建立通信连接;所述代理节点的端口为用户预先注册的协议端口;
[0006] 所述代理节点维护有代理节点的协议端口与计算节点的协议端口之间的映射关系;
[0007] 所述代理节点,用于基于所述代理节点的协议端口与计算节点的协议端口之间的映射关系,调用所述至少一个计算节点作为所述云应用节点的计算资源。
[0008] 本申请实施例还提供一种资源调用方法,适用于服务节点,所述服务节点和计算节点之间的通信连接是通过所述计算节点将其协议端口反向映射为所述服务节点的协议端口建立的,所述方法包括:
[0009] 获取访问请求;基于所述服务节点的协议端口与计算节点的协议端口之间的映射关系,调用所述计算节点对所述访问请求进行处理。
[0010] 本申请实施例还提供一种服务端设备,所述服务端设备包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
[0011] 所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述资源调用方法中的步骤;
[0012] 所述服务端设备和计算节点之间的通信连接是通过所述计算节点将其协议端口反向映射为所述服务端设备的协议端口建立的。
[0013] 本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述资源调用方法中的步骤。
[0014] 在本申请实施例中,在云应用侧增设代理节点,代理节点和计算节点之间通过计算节点将其协议端口反向映射为代理节点的协议端口,建立通信连接。这样,代理节点可基于代理节点的协议端口与计算节点的协议端口之间的映射关系,调用计算节点作为云应用的计算资源,无需要求计算节点和云应用属于同一云厂商,实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。

附图说明

[0015] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0016] 图1a和图1b为现有云应用系统的结构示意图;
[0017] 图1c、图1d和图1e为本申请实施例提供的云应用系统的结构示意图;
[0018] 图2为本申请实施例提供的资源调用方法的流程示意图;
[0019] 图3为本申请实施例提供的服务端设备的结构示意图。

具体实施方式

[0020] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0021] 针对现有计算资源与云应用紧耦合导致云应用使用灵活性较差的技术问题,在本申请一些实施例中,在云应用侧增设代理节点,代理节点和计算节点之间通过计算节点将其协议端口反向映射为代理节点的协议端口,建立通信连接。这样,代理节点可基于代理节点的协议端口与计算节点的协议端口之间的映射关系,调用计算节点作为云应用的计算资源,无需要求计算节点和云应用属于同一云厂商,实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。
[0022] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0023] 应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
[0024] 在实际应用中,WebIDE平台从用户的视角来看,需要提供两种核心能力:编辑能力和运行能力。其中,编辑能力需要后端服务为前端服务提供针对工作空间文件进行增、读、更新以及删除(Create、read、Update and Delete,CRUD)的应用程序编程接口(Application Programming Interface,API)。其中,后端服务提供计算资源。前端服务需要实现针对单个文件提供代码的编辑能力。运行能力为用户提供了运行程序和调试程序的能力。
[0025] 由于用户可以写入文件系统和执行任意程序,出于安全性的考虑,需要对文件系统、程序运行空间以及网络环境进行隔离。现有技术中,采用高安全性的虚拟机隔离,或者采用低成本的容器隔离。如图1a和图1b所示,容器和VM作为计算资源虽然在安全性上有差异,但是都解决了资源隔离的问题。但是在现有技术中,容器或VM等计算资源需要属于云应用服务的同一账户,即前端服务需要和后端计算资源属于同一账户。例如,云应用服务的前端服务节点与后端计算节点均属于同一云开发商等。这种后端计算资源与前端应用服务的紧耦合,限制了云应用的使用灵活性。
[0026] 另一方面,不同用户对计算资源规模和计算资源安全性的需求不同,但是,同一云开发商提供的计算资源,无论是容器还是虚拟机,计算资源规模和安全性比较单一,也就无法满足不同用户对计算资源的需求,进一步限制了云应用的使用灵活性。
[0027] 为了解决上述问题,本申请实施例提供一种新的云应用系统架构。下面对本申请实施例提供的云应用系统进行示例性说明。
[0028] 图1c为本申请实施例提供的云应用系统的结构示意图。如图1c所示,该云应用系统包括:云应用节点11、代理节点12和至少一个计算节点13。
[0029] 在本实施例中,云应用节点11、代理节点12以及计算节点13的数量均可以是1个或多个。在本申请各实施例中,多个是指2个或2个以上。云应用节点11、代理节点12以及计算节点13可以是为用户提供应用服务的软件模块、应用程序、服务或一台实体设备。多个云应用节点11可以部署在不同的物理机上,也可以部署在不同容器、容器组或虚拟机(Virtual Machine,VM)中。当然,这些容器、容器组或虚拟机可以部署在同一物理机上,也可以部署在多个不同的物理机上。当然,多个代理节点12也可以部署在不同的物理机上,也可以部署在不同的容器、容器组或虚拟机中。这些容器或虚拟机可以部署在同一物理机上,也可以部署在多台不同的物理机上。同理,多个计算节点13也可以部署在不同的物理机上,也可以部署在不同的容器、容器组或虚拟机中。这些容器、容器组或虚拟机可以部署在同一物理机上,也可以部署在多台不同的物理机上。
[0030] 可选地,云应用节点11、代理节点12以及计算节点13可以部署在不同的物理机上,也可以部署在不同的容器、容器组或虚拟机中。这些容器、容器组或虚拟机可以部署在同一物理机上,也可以部署在多台不同的物理机上。相应地,计算节点13可实现为容器实例、容器组实例或虚拟机实例等。
[0031] 其中,物理机可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,物理机也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
[0032] 在云应用节点11和计算节点13部署于不同的物理机中的情况下,云应用节点11与计算节点13可位于同一网络中。例如,云应用节点11与计算节点13位于同一局域网中,或者云应用节点11和计算节点13均位于广域网(公网)中。当然,云应用节点11与计算节点13也可位于不同的网络中。例如,计算节点13位于局域网中,云应用节点11位于广域网(公网)中;或者,云应用节点11与计算节点13位于不同的局域网中。其中,局域网可以为虚拟私有云(Virtual Private Cloud,VPC)网络。
[0033] 在本申请实施例中,若计算节点13与云应用节点11部署于同一网络中,云应用节点11可通过计算节点13的私有IP地址调用计算节点13。但是,若云应用节点11与计算节点13位于不同的网络中,云应用节点11将无法调用位于其它网络中的计算节点13。
[0034] 为了解决上述问题,在本实施例中,在云应用节点11所处的网络中增设代理节点12。这样,云应用节点11与代理节点12位于同一网络中。例如,云应用节点11与代理节点12位于同一局域网中,或者云应用节点11和代理节点12均位于广域网(公网)中。在代理节点
12与云应用节点11部署于不同的物理机中时,云应用节点11与代理节点12之间可以是无线或有线连接。例如,云应用节点11与代理节点12之间可采用网线或通信光纤连接。或者,云应用节点11与代理节点12之间可以通过移动网络通信连接,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD‑SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、
5G、WiMax等中的任意一种。可选地,云应用节点11与代理节点12之间也可以通过蓝牙、WiFi、红外线等方式通信连接。
[0035] 在本实施例中,云应用节点11用于提供应用服务。不同的应用场景中,云应用节点11提供的应用服务不同。在一些实施例中,云应用节点11可提供集成开发环境(Integrated Development Environment,IDE)。进一步,云应用节点11可实现为基于浏览器的集成开发环境,即WebIDE。对于WebIDE,用户只需要浏览器就可以编写代码,并在WebIDE提供的终端环境中运行代码,开启云端开发模式。相应地,云应用节点11可提供代码编辑服务。
[0036] 在本实施例中,代理节点12可将其协议端口暴露给计算节点13。至少一个计算节点13可属于同一用户,也可属于不同的用户。用户可登陆云应用节点11,预先注册代理节点12的协议端口。对于云应用节点11,可接收注册请求,该注册请求包含用户标识。其中,用户标识可为唯一标识一个注册用户的信息,例如,用户标识可以为注册账号或用户名等,但不限于此。进一步,云应用节点11为该注册请求对应的注册用户配置代理节点12的协议端口。
为了区别不同的注册用户,可以为不同的注册用户配置不同的协议端口。相应地,云应用节点11可维护代理节点12的协议端口和用户标识之间的对应关系。基于该对应关系,云应用节点11可确定各注册用户对应的代理节点12的协议端口。
[0037] 对于协议端口来说,端口0‑1023为周知端口;端口1024‑65535为注册端口。用户预先注册的代理节点12的协议端口为注册端口,即为端口1024‑65535中的一个或多个。代理节点12可将用户预先注册的协议端口暴露给隶属于该用户的计算节点13。在代理节点12位于广域网(公网)中,计算节点13位于局域网(内网)的情况下,计算节点13可访问代理节点12,但是代理节点12无法访问计算节点13。
[0038] 基于此,计算节点13可将自身的协议端口反向映射为代理节点12的协议端口,这样代理节点12便可将从其协议端口接收的数据提供给计算节点13对应的端口。其中,计算节点13将自身的协议端口反向映射为代理节点12的协议端口的具体实施方式为:计算节点13可向代理节点12发起网络连接请求;该网络连接请求包括计算节点13的第一协议端口以及代理节点12的第二协议端口。可选地,如图1c所示,计算节点13可向代理节点12的22端口发送网络连接请求。其中,代理节点12的22端口可提供远程登录服务。对于网络连接请求,代理节点12的第二协议端口为计算节点13所属的用户预先注册代理节点12的协议端口。计算节点13的第一协议端口可为周知端口。例如,计算节点13的第一协议端口可为80端口等。
[0039] 相应地,代理节点13可根据计算节点13的第一协议端口以及代理节点12的第二协议端口,建立代理节点的协议端口与计算节点的协议端口之间的映射关系;并基于该映射关系,建立代理节点12与计算节点13之间的通信连接,从而形成代理节点12与计算节点13之间的通信隧道。这样,代理节点12便可将从其第二协议端口接收的数据提供给计算节点13的第一协议端口。
[0040] 在本申请实施例中,不限定代理节点12与计算节点13之间遵循的隧道协议。可选地,隧道协议可以为TCP协议、SSH协议或者VPN协议等等,但不限于此。下面以隧道协议为SSH协议为例,对代理节点12与计算节点13建立通信连接的方式进行具体说明。
[0041] 进一步,在代理节点12与计算节点13之间遵循的隧道协议为SSH协议的情况下,计算节点13向代理节点12发起的网络连接请求遵循SSH协议。代理节点12将其协议端口暴露给计算节点13。可选地,如图1c所示,代理节点12可将协议端口通过应用程序均衡负载(Application Load Balance,ALB)节点14暴露给计算节点13。这样,计算节点13便可通过TCP协议访问到代理节点12的协议端口。
[0042] 进一步,计算节点13运行R参数指令:HostA$ssh‑R PortA:localhost:PortB HostB。在R参数指令中,HostA是指计算节点13的主机名,PostA为计算节点13的第一协议端口的端口号;HostB是指代理节点12的主机名,PortB为代理节点12的第二协议端口的端口号。计算节点13成功运行R参数指令之后,可向代理节点13发送上述网络连接请求;该网络连接请求用于指示代理节点12监听其第二协议端口。相应地,代理节点12响应于该网络连接请求,在其/etc/ssh/sshd_config文件中,添加:GatewayPorts yes。至此,计算节点13将其第一协议端口映射为代理节点12的第二协议端口,建立了代理节点12与计算节点13之间的SSH隧道。该SSH隧道为单向隧道,也就是说,在SSH隧道建立之后,代理节点12可将其从第二协议端口接收到的数据提供给计算节点13,但是计算节点13不能主动向代理节点12请求数据。
[0043] 对于代理节点12来说,可建立代理节点12的第二协议端口与计算节点13的第一协议端口之间的映射关系。代理节点12还可监听其第二协议端口,并在监听到第二协议端口接收到的数据的情况下,基于代理节点12的第二协议端口与计算节点13的第一协议端口之间的映射关系,将接收到的数据转发给计算节点13。
[0044] 在本申请实施例中,由于计算节点13为对云应用节点11提供的应用服务提供计算资源的,因此,计算节点13的协议端口为周知端口,即端口0‑1023中的一个或多个。例如,如图1c所示,在一些实施例中,云应用节点11接收到的访问请求为http请求,则计算节点13的协议端口为80端口。相应地,计算节点13可将其80端口反向映射为代理节点12中的某个注册端口,图1c中仅以计算节点13将其80端口反向映射为代理节点的8001端口为例进行图示,并不构成限定。
[0045] 可选地,如图1c所示,计算节点13可包括连接单元13a和代理核13b。在本实施例中,代理核13b为计算节点13的真正的计算资源。连接单元13a用于将代理核13b的协议端口反向映射为代理节点12的协议端口。值得说明的是,在上述或下述实施例中,计算节点13的协议端口可为代理核13b的协议端口。关于连接单元13a将代理核13b的协议端口反向映射为代理节点12的协议端口的具体实施方式,可参见上述计算节点13将其协议端口反向映射为代理节点12的协议端口的相关内容,在此不再赘述。
[0046] 相应地,代理节点13可根据计算节点13的第一协议端口以及代理节点12的第二协议端口,建立代理节点的协议端口与计算节点的协议端口之间的映射关系;并基于该映射关系,建立代理节点12与计算节点13之间的通信连接,从而形成代理节点12与计算节点13之间的通信隧道。这样,代理节点12便可将从其第二协议端口接收的数据提供给计算节点13的第一协议端口。
[0047] 基于上述分析,在本申请实施例中,代理节点12维护有代理节点的协议端口与计算节点的协议端口之间的映射关系;并可基于该映射关系,调用至少一个计算节点13作为云应用节点11的计算资源。
[0048] 本实施例提供的云应用系统,在云应用侧增设代理节点,代理节点和计算节点之间通过计算节点将其协议端口反向映射为代理节点的协议端口,建立通信连接。这样,代理节点可基于代理节点的协议端口与计算节点的协议端口之间的映射关系,调用计算节点作为云应用的计算资源,无需要求计算节点和云应用属于同一云厂商,实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。
[0049] 另一方面,本申请实施例提供的云应用系统可由用户自己提供计算资源,云应用系统解决云应用节点和计算资源(计算节点)的网络链路问题,无需关心每个计算节点之间采用何种隔离技术,甚至无需关心计算节点之间是否隔离。如图1d所示,用户提供的计算资源可以为弹性云服务器(Elastic Compute Service,ECS)、弹性容器实例(Elastic Container Instance,ECI)、容器或者虚拟机,甚至可以为个人电脑(PC)等终端设备。也就是说,计算节点与云应用服务可以属于不同的账户,甚至可以属于不同的云开发商,从而实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。图1d中的前端节点可实现为图1c中的云应用节点11和代理节点12。
[0050] 在本申请实施例中,代理节点12可在接收到访问请求的情况下,调用至少一个计算节点13作为云应用服务11的计算资源,并将访问请求提供给至少一个计算节点13对访问请求进行处理。由于不同注册用户的计算节点是相互隔离的,不同注册用户的计算节点不同。对于访问请求来说,访问请求可包含注册用户的用户标识。相应地,云应用节点11获取访问请求,并从访问请求中解析出用户标识。进一步,云应用节点11可根据所述用户标识以及上述代理节点的协议端口与用户标识之间的对应关系,确定用户标识对应的注册用户预先注册的目标协议端口;将访问请求提供给代理节点12的目标协议端口。
[0051] 相应地,代理节点12从目标协议端口获取访问请求,即代理节点12监听到目标协议端口获取访问请求。进一步,代理节点12可根据代理节点的协议端口与计算节点的协议端口之间的映射关系以及目标协议端口的标识,从至少一个计算节点13中确定目标计算节点;将访问请求提供给目标计算节点,以供目标计算节点对访问请求进行处理。其中,目标计算节点的数量可以为一个或多个。多个是指2个或2个以上。
[0052] 其中,访问请求的目的不同,目标计算节点对访问请求进行处理的方式不同。在一些实施例中,访问请求需要对存储资源进行访问。相应地,如图1e所示,该云应用系统还可包括:存储节点15。其中,存储节点15的数量可以为1个或多个。多个存储节点15可以部署在不同的物理机上,也可以部署在不同容器、容器组或虚拟机中。当然,这些容器、容器组或虚拟机可以部署在同一物理机上,也可以部署在多个不同的物理机上。存储节点15可以实现为不同形式的存储节点。例如,存储节点15可以为网络附属存储(NAS)节点或对象存储服务(OSS)节点等。图1e中仅以存储节点15为NAS节点为例进行图示。
[0053] 在本实施例中,目标计算节点在对访问请求进行处理时,可将存储节点15挂载于代理节点12之上;并根据访问请求,访问存储节点。其中,存储节点15的实现技术不同,目标计算节点将存储节点15挂载于代理节点12之上的实现方式不同。下面以存储节点15为基于NAS技术实现的NAS节点和基于OSS技术实现的OSS节点为例,进行示例性说明。
[0054] 可选地,如图1e所示,若存储节点15为NAS节点,则访问请求可遵循网络文件系统(NetworkFileSystem,NFS协议)。这样,目标计算节点便可通过远程过程调用(Remote Procedure Call,RPC)来访问NAS节点,即通过使用NFS协议,目标计算节点可以像访问本地数据一样访问存储节点中的数据,从而实现存储节点15作为代理节点12的存储介质挂载在代理节点12上。对于NAS节点存储数据的情况来说,NAS节点可以单独部署和运行,无需与计算节点无需耦合在一起,提高了云应用平台的灵活性、稳定性和安全性。
[0055] 可选地,若存储节点15为OSS节点,则存储节点15可具有与平台无关的API接口,则目标计算节点可通过调用OSS节点的API接口实现对OSS节点的访问,从而实现存储节点15作为代理节点12的存储介质挂载在代理节点12上。
[0056] 可选地,目标计算节点将存储节点15挂载于代理节点12之上,并对代理节点12进行内存映射,即将存储节点15存储的数据映射到代理节点12的进程的虚拟地址空间,建立虚拟地址空间与存储节点15存储的数据之间的对应关系。这样,代理节点12便可直接访问存储节点15,不需要代理节点12的中央处理器(CPU)进行协助,进而有助于提高代理节点12对存储节点15的访问效率。
[0057] 在一些实施例中,访问请求为写请求;该写请求包括待写入数据。相应地,目标计算节点在根据访问请求访问存储节点时,具体用于:根据待写入数据的大小,在存储节点15中申请目标存储空间;并将待写入数据写入目标存储空间。其中,目标存储空间的容量大于或等于待写入数据的大小。
[0058] 在另一些实施例中,访问请求为读请求;该读请求包括待读取数据在存储节点15中的目标存储地址。相应地,目标计算节点在根据访问请求访问存储节点时,具体用于:从目标存储地址指向的存储空间中读取待读取数据;并将待读取数据提供给代理节点12。相应地,代理节点12将待读取数据提供给云应用节点11,以供云应用节点11输出待读取数据。
[0059] 在又一些实施例中,访问请求为查询请求;查询请求包含查询条件。相应地,目标计算节点在根据访问请求访问存储节点时,具体用于:在存储节点中查找符合查询条件的目标数据;并将目标数据提供给代理节点12。相应地,代理节点12将目标数据提供给云应用节点11,以供云应用节点11输出目标数据。
[0060] 对于上述对访问请求进行处理的目标计算节点可以为1个或多个。计算节点13可以弹性云服务器(Elastic Compute Service,ECS)、弹性容器实例(Elastic Container Instance,ECI)、容器或者虚拟机,甚至可以为个人电脑(PC)等终端设备。对于ECS、个人电脑等单机或者集群部署方案,这类部署存在巨大的机器运维成本,同时存在无法灵活的分配资源、自由扩缩容的能力,这样必然会在访问流量低谷时造成一定的资源浪费。基于此,优选地,计算节点13实现为ECI,可实现计算资源无服务器(Serverless)化。对于云应用的用户来说,无需关心底层机器的分配和管理,从而减少整个平台的维护成本,有助于提高根据访问流量自动扩容或缩容的能力。在访问流量低谷时,可对ECI进行缩容,从而有助于节约计算资源。
[0061] 下面以计算节点13为ECI为例,对代理节点12如何调用计算节点13作为云应用节点11的计算资源的实施方式,进行示例性说明。在不同的应用场景中,云应用节点11提供的云应用服务不同。图1e中仅以云应用节点11提供WebIDE服务为例进行图示,但不限于此。
[0062] 在本申请实施例中,计算节点13可实现为ECI。其中,ECI可提供多种计算服务。例如,如图1e所示,本实施例提供的容器可包括:(1)链接服务容器,该容器可建立云应用节点11与计算节点13之间的链接,即建立云应用系统的前后端链接;(2)核心服务容器,该容器可提供增加数据、读写数据、更新数据以及删除数据等核心服务;(3)编译服务容器,该容器可将用户在编辑界面上选择的功能组件编译为对应的代码;(4)终端服务容器,该容器可维护注册用户的终端信息等;(5)语言服务容器,该容器可为编译服务容器编译出的代码进行语言注释;(6)内存映射容器,该容器可将存储节点挂载于代理节点之上,并对代理节点与存储节点进行内存映射。
[0063] 如图1e所示,云应用节点11可提供WebIDE服务。在图1e中,云应用节点11和代理节点12实现为WebIDE云服务。相应地,云应用节点11可提供编辑界面。对于WebIDE的注册用户来说,注册用户只需要浏览器便可登录云应用节点11。相应地,云应用节点11可向注册用户提供编辑界面。该编辑界面包括功能组件,用户可通过选择功能组件,进行代码开发。
[0064] 对于云应用节点11可响应于针对功能组件的选择操作,根据被选择的功能组件的标识,生成第一访问请求。第一访问请求包含用户标识和被选择的功能组件的标识。进一步,云应用节点11可根据用户标识,从代理节点12的协议端口中确定与所述用户标识对应的目标协议端口。进一步,代理节点12根据目标协议端口的标识以及代理节点的协议端口与计算节点的协议端口之间的对应关系,确定目标计算节点。此处,目标计算节点包括上述编译容器。进一步,代理节点12将第一访问请求提供给目标计算节点(编译容器)。目标计算节点(编译容器)将功能组件编译为该功能组件对应的代码。
[0065] 可选地,目标计算节点(编译容器)将功能组件编译为该功能组件对应的代码时,可根据被选择的功能组件的标识,从预设的存储空间中读取该功能组件的标识对应的代码,作为被选择的功能组件对应的代码。这样,将可视化的功能组件与源码进行互通,可实现可视化拖拽编辑和源码编辑,充分发挥可视化编辑和代码编辑的优势,有助于提高开发效率。其中,功能组件对应的代码可存储于存储节点15中,也可存储于云应用服务对应的其它存储空间。
[0066] 上述内存映射容器在接收到第一访问请求的情况下,可将存储节点15挂载于代理节点12之上,并对代理节点12和存储节点15进行内存映射。
[0067] 进一步,目标计算节点(上述核心服务容器)还可将功能组件对应的代码保存于存储节点15中。可选地,编辑界面还可包括保存组件,注册用户可触发该保存组件,保存功能组件对应的代码。相应地,对于云应用节点11可响应于保存操作,将功能组件对应的代码作为待写入代码;根据待写入代码,生成第二访问请求;第二访问请求包含待写入代码以及用户标识。进一步,云应用节点11可根据用户标识,从代理节点12的协议端口中确定与所述用户标识对应的目标协议端口。进一步,代理节点12根据目标协议端口的标识以及代理节点的协议端口与计算节点的协议端口之间的对应关系,确定目标计算节点。此处,目标计算节点包括上述核心服务容器。
[0068] 对于核心服务容器,可根据待写入代码的大小,为待写入代码在存储节点15中申请目标存储空间,其中,目标存储空间的容量大于或等于待写入代码的大小。进一步,核心服务容器可将待写入代码写入目标存储空间。
[0069] 可选地,云应用节点11还可提供代码编辑功能。相应地,云应用节点11在将功能组件对应的代码作为待写入代码之前,还可在编辑界面展示功能组件对应的代码,以供注册用户对功能组件对应的代码进行查看和/或修改。
[0070] 在上述编译服务容器将功能组件对应的代码提供给云应用节点11之前,上述语音服务容器还可对功能组件对应的代码进行语言注释;并将带有语言注释的代码作为功能组件对应的代码,提供给云应用节点11。此处目标计算节点包括上述语言服务容器。相应地,云应用节点11在编辑界面上展示功能组件对应的代码,即展示带有语言注释的代码,这样方便注册用户对功能组件对应的代码进行阅读和理解。
[0071] 进一步,在注册用户对功能组件对应的代码进行查看和/或修改后,可触发上述保存组件,保存功能组件对应的代码。相应地,对于云应用节点11可响应于保存操作,将功能组件对应的代码作为待写入代码;根据待写入代码,生成第二访问请求;第二访问请求包含待写入代码以及用户标识。对于云应用节点11、代理节点12以及核心服务容器对第二访问请求进行处理的具体实施方式,可参见上述相关内容,在此不再赘述。
[0072] 进一步,当用户要发布开发的软件时,可触发编辑界面上的发布控件。云应用节点11响应于发布控件的触发操作,生成发布请求。该发布请求包含用户标识和待发布软件的标识。进一步,云应用节点11将发布请求提供给代理节点12的目标协议端口。代理节点12在监听到目标协议端口接收到发布请求之后,根据代理节点的协议端口与计算节点之间的协议端口之间的映射关系以及目标协议端口的标识,确定目标计算节点。该目标计算节点包括核心服务容器。进一步,代理节点12将发布请求提供给目标计算节点。目标计算节点根据待发布软件的标识,从存储节点15中读取待发布软件对应的代码文件,并将该代码文件推送到Gitlab仓库。进一步,WebIDE云服务可访问Def平台,并创建内容分发网络(Content Delivery Network,CDN),并利用CDN网络将待发布软件对应的代码文件发布于用户端的浏览器。
[0073] 可选地,如图1e所示,计算节点13与Gitlab仓库以及Def平台之间可采用高速专线网络连接。图1e中的EPaaS网关是指部署于PaaS平台的网关节点,可实现为图1c中的代理节点12。
[0074] 值得说明的是,上述云应用节点11和代理节点12的控制逻辑可基于函数即服务(Functions as a Service,FaaS)来实现。云应用节点11和代理节点12对于计算节点13和存储节点15的管理,采用函数计算(Function Compute,FC)作为支撑平台。由于上述云应用节点11和代理节点12的控制逻辑是基于FaaS平台进行开发,因此开发时只需要提供控制逻辑,并通过FaaS平台属fun工具将实现控制逻辑的代码部署到FaaS平台即可,可免去后续的访问流量峰谷资源扩缩、运维等操作。在本申请实施例中,控制逻辑主要包括:(1)ECI容器的创建、销毁、重启等调度控制;(2)通过上述内存映射容器对存储节点15进行管控等。可选地,控制逻辑可通过上述内存映射容器将存储节点挂载于代理节点12之上,并对代理节点12和存储节点15进行内存映射,以及在对存储节点15访问结束之后,将存储节点15从代理节点12上卸载下来。
[0075] 上述云应用节点11和代理节点12的控制逻辑基于FaaS平台完成无服务器(Serverless化),这样,对于云应用平台的用户来说,整个云应用平台实现了无运维化。同时,借助FaaS平台以及ECI的扩缩机制提高了云应用平台的可用性,有助于降低整体的维护成本。
[0076] 除了上述实施例提供的云应用系统之外,本申请实施例还提供资源调用方法,下面对本申请实施例提供的资源调用方法进行示例性说明。
[0077] 图2为本申请实施例提供的资源调用方法的流程示意图。如图2所示,该方法包括:
[0078] 201、获取访问请求。
[0079] 202、基于服务节点的协议端口与计算节点的协议端口之间的映射关系,调用计算节点对所述访问请求进行处理。
[0080] 在本实施例中,服务节点和计算节点之间的通信连接,是通过计算节点将其协议端口反向映射为服务节点的协议端口建立的。本实施例中的服务节点的执行逻辑,为上述云应用系统中的云应用节点和代理节点的执行逻辑的集合。关于云应用节点、代理节点以及计算节点的实现形态可参见上述云应用系统实施例中的相关内容,在此不再赘述。
[0081] 在本实施例中,在服务节点和计算节点部署于不同的物理机中的情况下,服务节点与计算节点可位于同一网络中。当前服务节点与计算节点也可位于不同的网络中。例如,计算节点位于局域网中,服务节点位于广域网(公网)中;或者,服务节点与计算节点位于不同的局域网中。其中,局域网可以为虚拟私有云(Virtual Private Cloud,VPC)网络。
[0082] 在本申请实施例中,若计算节点与服务节点部署于同一网络中,服务节点可通过计算节点的私有IP地址调用计算节点。但是,若服务节点与计算节点位于不同的网络中,服务节点将无法调用位于其它网络中的计算节点。
[0083] 为了解决上述问题,服务节点可将其协议端口暴露给计算节点。计算节点的数量为至少一个。这至少一个计算节点可属于同一用户,也可属于不同的用户。用户可登陆云应用节点,预先注册代理节点的协议端口。对于服务节点,可接收注册请求,该注册请求包含用户标识。其中,用户标识可为唯一标识一个注册用户的信息,例如,用户标识可以为注册账号或用户名等,但不限于此。进一步,服务节点为该注册请求对应的注册用户配置代理节点的协议端口。为了区别不同的注册用户,可以为不同的注册用户配置不同的协议端口。相应地,服务节点可维护其协议端口和用户标识之间的对应关系。基于该对应关系,服务节点可确定各注册用户对应的协议端口。
[0084] 对于协议端口来说,端口0‑1023为周知端口;端口1024‑65535为注册端口。用户预先注册的服务节点的协议端口为注册端口,即为端口1024‑65535中的一个或多个。服务节点可将用户预先注册的协议端口暴露给隶属于该用户的计算节点。在服务节点位于广域网(公网)中,计算节点位于局域网(内网)的情况下,计算节点可访问服务节点,但是服务节点无法访问计算节点。
[0085] 基于此,计算节点可将自身的协议端口反向映射为代理节点的协议端口,这样代理节点便可将从其协议端口接收的数据提供给计算节点对应的端口。其中,计算节点将自身的协议端口反向映射为服务节点的协议端口的具体实施方式为:计算节点可向服务节点发起网络连接请求;该网络连接请求包括计算节点的第一协议端口以及代理节点的第二协议端口。对于网络连接请求,服务节点的第二协议端口为计算节点所属的用户预先注册的协议端口。计算节点的第一协议端口可为周知端口。例如,计算节点的第一协议端口可为80端口等。
[0086] 相应地,服务节点可根据计算节点的第一协议端口以及服务节点的第二协议端口,建立服务节点的协议端口与计算节点的协议端口之间的映射关系;并基于该映射关系,建立服务节点与计算节点之间的通信连接,从而形成服务节点与计算节点之间的通信隧道。这样,服务节点便可将从其第二协议端口接收的数据提供给计算节点的第一协议端口。
[0087] 在本申请实施例中,不限定服务节点与计算节点之间遵循的隧道协议。可选地,隧道协议可以为TCP协议、SSH协议或者VPN协议等等,但不限于此。关于服务节点与计算节点建立通信连接的具体实施方式,可参见上述云应用系统实施例的相关内容,在此不再赘述。
[0088] 对于服务节点来说,可建立代理节点的第二协议端口与计算节点的第一协议端口之间的映射关系。服务节点还可监听其第二协议端口,并在监听到第二协议端口接收到的数据的情况下,基于代理节点的第二协议端口与计算节点的第一协议端口之间的映射关系,将接收到的数据转发给计算节点。
[0089] 在本申请实施例中,由于计算节点为对服务节点提供的应用服务提供计算资源的,因此,计算节点的协议端口为周知端口,即端口0‑1023中的一个或多个。例如,计算节点的协议端口为80端口。相应地,计算节点可将其80端口反向映射为服务节点的某个注册端口。
[0090] 进一步,服务节点可根据计算节点的第一协议端口以及服务节点的第二协议端口,建立服务节点的协议端口与计算节点的协议端口之间的映射关系;并基于该映射关系,建立服务节点与计算节点之间的通信连接,从而形成服务节点与计算节点之间的通信隧道。这样,服务节点便可将从其第二协议端口接收的数据提供给计算节点的第一协议端口。
[0091] 基于上述分析,在本申请实施例中,服务节点维护有服务节点的协议端口与计算节点的协议端口之间的映射关系;并可基于该映射关系,调用至少一个计算节点作为计算资源对获取的访问请求进行处理。
[0092] 在本实施例中,服务节点和计算节点之间通过计算节点将其协议端口反向映射为服务节点的协议端口,建立通信连接。这样,服务节点可基于服务节点的协议端口与计算节点的协议端口之间的映射关系,调用计算节点作为云应用的计算资源,无需要求计算节点和云应用属于同一云厂商,实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。
[0093] 另一方面,计算节点可由用户自己提供,云应用系统解决云应用节点和计算资源(计算节点)的网络链路问题,无需关心每个计算节点之间采用何种隔离技术,甚至无需关心计算节点之间是否隔离。用户提供的计算资源可以为弹性云服务器(Elastic Compute Service,ECS)、弹性容器实例(Elastic Container Instance,ECI)、容器或者虚拟机,甚至可以为个人电脑(PC)等终端设备。也就是说,计算节点与云应用服务可以属于不同的账户,甚至可以属于不同的云开发商,从而实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。
[0094] 在本申请实施例中,服务节点可在接收到访问请求的情况下,调用至少一个计算节点作为云应用的计算资源,并调用至少一个计算节点对访问请求进行处理。由于不同注册用户的计算节点是相互隔离的,不同注册用户的计算节点不同。对于访问请求来说,访问请求可包含注册用户的用户标识。相应地,服务节点可获取访问请求,并从访问请求中解析出用户标识。进一步,服务节点可根据所述用户标识以及上述代理节点的协议端口与用户标识之间的对应关系,确定用户标识对应的注册用户预先注册的目标协议端口;并根据服务节点的协议端口与计算节点的协议端口之间的映射关系以及目标协议端口的标识,从至少一个计算节点中确定目标计算节点;调用目标计算节点对访问请求进行处理。可选地,服务节点可将访问请求提供给目标计算节点,以供目标计算节点对访问请求进行处理。其中,目标计算节点的数量可以为一个或多个。多个是指2个或2个以上。
[0095] 其中,访问请求的目的不同,目标计算节点对访问请求进行处理的方式不同。在一些实施例中,访问请求需要对存储资源进行访问。相应地,该云应用系统还可包括:存储节点。其中,存储节点的数量可以为1个或多个。关于存储节点的实现形式,可参见上述系统实施例的相关内容,在此不再赘述。存储节点可以实现为不同形式的存储节点。例如,存储节点可以为网络附属存储(NAS)节点或对象存储服务(OSS)节点等。
[0096] 在本实施例中,服务节点在调用目标计算节点在对访问请求进行处理时,可调用目标计算节点将存储节点挂载于服务节点之上;并调用目标计算节点根据访问请求访问存储节点。其中,存储节点的实现技术不同,目标计算节点将存储节点挂载于代理节点之上的实现方式不同,具体描述可参见上述系统实施例的相关内容,在此不再赘述。
[0097] 可选地,目标计算节点将存储节点挂载于服务节点12之上,并对服务节点进行内存映射,即将存储节点存储的数据映射到服务节点1的进程的虚拟地址空间,建立虚拟地址空间与存储节点15存储的数据之间的对应关系。这样,服务节点便可直接访问存储节点,不需要服务节点的中央处理器(CPU)进行协助,进而有助于提高服务节点对存储节点的访问效率。
[0098] 在一些实施例中,访问请求为写请求;该写请求包括待写入数据。相应地,服务节点调用目标计算节点在根据访问请求访问存储节点的一种实施方式为:调用目标计算节点根据待写入数据的大小在存储节点中申请目标存储空间;并调用目标计算节点将待写入数据写入目标存储空间。其中,目标存储空间的容量大于或等于待写入数据的大小。
[0099] 在另一些实施例中,访问请求为读请求;该读请求包括待读取数据在存储节点中的目标存储地址。相应地,服务节点调用目标计算节点在根据访问请求访问存储节点的另一种实施方式为:调用目标计算节点从目标存储地址指向的存储空间中读取待读取数据;并输出待读取数据。
[0100] 在又一些实施例中,访问请求为查询请求;查询请求包含查询条件。相应地,服务节点在调用目标计算节点在根据访问请求访问存储节点的又一种实施方式为:调用目标计算节点在存储节点中查找符合查询条件的目标数据;并输出目标数据。
[0101] 对于上述对访问请求进行处理的目标计算节点可以为1个或多个。计算节点可以弹性云服务器(Elastic Compute Service,ECS)、弹性容器实例(Elastic Container Instance,ECI)、容器或者虚拟机,甚至可以为个人电脑(PC)等终端设备。对于ECS、个人电脑等单机或者集群部署方案,这类部署存在巨大的机器运维成本,同时存在无法灵活的分配资源、自由扩缩容的能力,这样必然会在访问流量低谷时造成一定的资源浪费。基于此,优选地,计算节点实现为ECI,可实现计算资源无服务器(Serverless)化。对于云应用的用户来说,无需关心底层机器的分配和管理,从而减少整个平台的维护成本,有助于提高根据访问流量自动扩容或缩容的能力。在访问流量低谷时,可对ECI进行缩容,从而有助于节约计算资源。
[0102] 在不同的应用场景中,服务节点提供的云应用服务不同。下面以服务节点提供WebIDE服务为例,对服务节点如何调用计算节点作为服务节点的计算资源的实施方式,进行示例性说明。
[0103] 服务节点可提供WebIDE服务。相应地,服务节点可提供编辑界面。对于WebIDE的注册用户来说,注册用户只需要浏览器便可登录服务节点。相应地,服务节点可向注册用户提供编辑界面。该编辑界面包括功能组件,用户可通过选择功能组件,进行代码开发。
[0104] 对于服务节点可响应于针对功能组件的选择操作,调用目标计算节点根据被选择的目标功能组件的标识,编译目标功能组件对应的代码;并调用目标计算节点将目标功能组件对应的代码写入存储节点。
[0105] 此处,目标计算节点包括上述编译容器和上述核心服务容器。可选地,目标计算节点(编译容器)在将功能组件编译为该功能组件对应的代码时,可根据被选择的功能组件的标识,从预设的存储空间中读取该功能组件的标识对应的代码,作为被选择的功能组件对应的代码。其中,功能组件对应的代码可存储于存储节点中,也可存储于云应用服务对应的其它存储空间。
[0106] 可选地,在调用目标计算节点将所述目标功能组件对应的代码写入所述存储节点之前,服务节点还可在编辑界面展示目标功能组件对应的代码,以供注册用户对功能组件对应的代码进行查看和/或修改。
[0107] 可选地,编辑界面还可包括保存组件,注册用户可触发该保存组件,保存功能组件对应的代码。相应地,对于服务节点可响应于保存操作,将功能组件对应的代码作为待写入代码;调用目标计算节点将所述目标功能组件对应的代码写入所述存储节点。
[0108] 对于核心服务容器,可根据待写入代码的大小,为待写入代码在存储节点中申请目标存储空间,其中,目标存储空间的容量大于或等于待写入代码的大小。进一步,核心服务容器可将待写入代码写入目标存储空间。
[0109] 可选地,在编辑界面展示所述目标功能组件对应的代码的一种可选实施方式为:调用目标计算节点对所述目标功能组件对应的代码进行语言注释;将带有语言注释的代码作为目标功能组件对应的代码,并在编辑界面展示目标功能组件对应的代码。这样方便注册用户对功能组件对应的代码进行阅读和理解。
[0110] 值得说明的是,上述服务节点的控制逻辑可基于函数即服务(Functions as a Service,FaaS)来实现。服务节点对于计算节点和存储节点的管理,采用函数计算(Function Compute,FC)作为支撑平台。由于上述服务节点的控制逻辑是基于FaaS平台进行开发,因此开发时只需要提供控制逻辑,并通过FaaS平台属fun工具将实现控制逻辑的代码部署到FaaS平台即可,可免去后续的访问流量峰谷资源扩缩、运维等操作。在本申请实施例中,控制逻辑主要包括:(1)ECI容器的创建、销毁、重启等调度控制;(2)通过上述内存映射容器对存储节点15进行管控等。可选地,控制逻辑可通过上述内存映射容器将存储节点挂载于服务节点之上,并对服务节点和存储节点15进行内存映射,以及在对存储节点访问结束之后,将存储节点从服务节点1上卸载下来。
[0111] 上述服务节点的控制逻辑基于FaaS平台完成无服务器(Serverless化),这样,对于云应用平台的用户来说,整个云应用平台实现了无运维化。同时,借助FaaS平台以及ECI的扩缩机制提高了云应用平台的可用性,有助于降低整体的维护成本。
[0112] 需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201和202的执行主体可以为设备A;又比如,步骤201的执行主体可以为设备A,步骤202的执行主体可以为设备B;等等。
[0113] 另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
[0114] 相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述资源调用方法中的步骤。
[0115] 图3为本申请实施例提供的服务端设备的结构示意图。如图3所示,该服务端设备包括:存储器40a、处理器40b和通信组件40c。其中,存储器40a存储有计算机程序以及服务端设备的协议端口与计算节点的协议端口之间的映射关系。服务设备和计算节点之间的通信连接是通过计算节点将其协议端口反向映射为服务端设备的协议端口建立的。
[0116] 在本实施例中,处理器40b耦合至存储器40a与通信组件40c,用于执行计算机程序以用于:通过通信组件40c获取访问请求;基于服务端设备的协议端口与计算节点的协议端口之间的映射关系,调用计算节点对访问请求进行处理。
[0117] 可选地,服务端设备与计算节点位于不同的网络中。
[0118] 可选地,在服务端设备的协议端口与计算节点的协议端口之间的映射关系中,服务端设备的协议端口为注册端口,计算节点的协议端口为周知端口。
[0119] 在一些实施例中,访问请求包含用户标识;计算节点为至少一个。处理器40b在调用计算节点对访问请求进行处理时,具体用于:根据用户标识,确定用户标识对应的注册用户预先注册的目标协议端口;根据服务端设备的协议端口与计算节点的协议端口之间的映射关系以及目标协议端口的标识,从至少一个计算节点中确定目标计算节点;以及,调用目标计算节点对访问请求进行处理。
[0120] 进一步,处理器40b在调用目标计算节点对访问请求进行处理时,具体用于:调用目标计算节点将存储节点挂载于服务端设备之上;并调用目标计算节点根据访问请求,访问存储节点。
[0121] 在一些实施例中,访问请求为写请求;写请求包括待写入数据。处理器40b在调用目标计算节点根据访问请求访问存储节点时,具体用于:调用目标计算节点根据待写入数据的大小,在存储节点中申请目标存储空间;以及,调用目标计算节点将待写入数据写入目标存储空间;目标存储空间的容量大于或等于待写入数据的大小。
[0122] 在另一些实施例中,访问请求为读请求;读请求包括待读取数据在存储节点中的目标存储地址。处理器40b在调用目标计算节点根据访问请求访问存储节点时,具体用于:调用目标计算节点从目标存储地址指向的存储空间中读取待读取数据;并输出待读取数据。
[0123] 在又一些实施例中,访问请求为查询请求;查询请求包含查询条件。处理器40b在调用目标计算节点根据访问请求访问存储节点时,具体用于:调用目标计算节点在存储节点中查找符合查询条件的目标数据;并输出目标数据。
[0124] 在本申请实施例中,服务端设备用于提供集成开发环境,以供用户通过浏览器使用集成开发环境。
[0125] 可选地,处理器40b还用于:提供编辑界面;编辑界面包括至少一个功能组件;响应于针对至少一个功能组件的选择操作,调用目标计算节点根据被选择的目标功能组件的标识,编译目标功能组件对应的代码;以及,调用目标计算节点将目标功能组件对应的代码写入存储节点。
[0126] 可选地,处理器40b还用于:在调用目标计算节点将目标功能组件对应的代码写入存储节点之前,在编辑界面展示目标功能组件对应的代码,以供注册用户对功能组件对应的代码进行查看和/或修改。
[0127] 相应地,处理器40b在调用目标计算节点将目标功能组件对应的代码写入存储节点时,具体用于:响应于保存操作,将目标功能组件对应的代码作为待写入代码;调用目标计算节点将目标功能组件对应的代码写入存储节点。
[0128] 可选地,处理器40b在编辑界面展示目标功能组件对应的代码时,具体用于:调用目标计算节点对目标功能组件对应的代码进行语言注释;将带有语言注释的代码作为目标功能组件对应的代码,并在编辑界面展示目标功能组件对应的代码。
[0129] 在本申请实施例中,处理器40b还用于:通过通信组件40c接收计算节点发起的网络连接请求;网络连接请求包括、计算节点的第一协议端口以及服务端设备的第二协议端口;根据计算节点的第一协议端口以及代理节点的第二协议端口,建立代理节点的协议端口与计算节点的协议端口之间的映射关系;并基于代理节点的协议端口与计算节点的协议端口之间的映射关系,建立代理节点与计算节点之间的通信连接。
[0130] 在一些可选实施方式中,如图3所示,服务端设备还可以包括:电源组件40d等组件。图3中仅示意性给出部分组件,并不意味着服务端设备必须包含图3所示全部组件,也不意味着服务端设备只能包括图3所示组件。
[0131] 在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0132] 在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field‑Programmable Gate Array,FPGA)、可编程阵列逻辑器件(Programmable Array Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip SOC)等等,但不限于此。
[0133] 在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
[0134] 在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
[0135] 本实施例提供的服务端设备与计算节点之间通过计算节点将其协议端口反向映射为服务端设备的协议端口,建立通信连接。这样,服务端设备可基于服务端设备的协议端口与计算节点的协议端口之间的映射关系,调用计算节点作为云应用的计算资源,无需要求计算节点和云应用属于同一云厂商,实现了云应用与计算节点的解耦,进而有助于提高云应用使用的灵活性。
[0136] 需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0137] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0138] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0139] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0140] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0141] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0142] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0143] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0144] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0145] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。