CN116010968A - 基于边车模式的FaaS分布式计算系统、方法及存储介质 - Google Patents
基于边车模式的FaaS分布式计算系统、方法及存储介质 Download PDFInfo
- Publication number
- CN116010968A CN116010968A CN202211706528.1A CN202211706528A CN116010968A CN 116010968 A CN116010968 A CN 116010968A CN 202211706528 A CN202211706528 A CN 202211706528A CN 116010968 A CN116010968 A CN 116010968A
- Authority
- CN
- China
- Prior art keywords
- function
- service
- computing node
- faas
- car mode
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及信息技术领域,具体涉及一种基于边车模式的FaaS分布式计算系统、方法及存储介质,所述系统包括函数网关、中间件服务层和计算节点,业务函数访问接口接收业务函数调用请求,中间件服务层为函数网关及计算节点提供数据库服务、缓存服务、消息队列服务和文件存储服务,数据库服务包括业务函数查询服务,函数网关接收业务函数调用请求后,通过边车模式调用中间件服务层的业务函数查询服务获得业务函数信息,函数网关将业务函数信息提交计算节点执行,计算节点执行业务函数信息时,通过边车模式调用中间件服务层,计算节点将业务函数执行结果反馈给函数网关。本发明的有益技术效果包括:兼顾易用性、性能、安全性和完备性。
Description
技术领域
本发明涉及信息技术领域,具体涉及一种基于边车模式的FaaS分布式计算系统、方法及存储介质。
背景技术
FaaS是一种新型的云计算服务提供方式,开发者不需要关注软硬件基础架构,仅需编写函数逻辑单元即可完成业务开发。当前FaaS系统常见的实现方案中,流程自顶向下需要提供如下功能模块:一、函数网关,通过HTTP、AMQP等协议对外暴露函数触发入口;二、函数调度,解析进入函数网关的请求,启动函数执行环境,注入函数代码块;三、函数执行,提供函数执行的运行时环境和网络、存储等系统资源,编译解释执行函数返回结果;四、资源调度,提供函数执行单元的扩容和缩容能力。
上述流程模块都是构建FaaS系统不可或缺的组成部分,其中易用性、性能、安全性、完备性成为FaaS平台的重要衡量指标,当前FaaS平台都会有偏向性攻克这几个指标的一部分。常见的如重点实现安全性和完备性,采用一个函数对应一个项目并且对应一个执行容器的方案,这种方案牺牲了易用性和性能。为了实现一个函数需要维护一个项目,开发完成后再编译构建生成容器镜像,执行函数时需要调度镜像、启动容器再执行函数,导致非常高的冷启动延迟。因此需要研究能兼顾易用性、性能、安全性和完备性的FaaS分布式计算技术。
发明内容
本发明所要解决的技术问题:目前缺乏兼顾易用性、性能、安全性和完备性的FaaS分布式计算技术的问题。提出了一种基于边车模式的FaaS分布式计算系统、方法及存储介质,能够实现兼顾易用性、性能、安全性和完备性的FaaS分布式计算。
为解决上述技术问题,本发明采用如下技术方案:基于边车模式的FaaS分布式计算系统,包括函数网关、中间件服务层和至少一个计算节点,
所述函数网关提供业务函数访问接口,所述业务函数访问接口接收业务函数调用请求并返回业务函数结果,
所述中间件服务层为所述函数网关及计算节点提供数据库服务、缓存服务、消息队列服务和文件存储服务,所述数据库服务包括业务函数查询服务,
所述函数网关接收业务函数调用请求后,通过边车模式调用所述中间件服务层的业务函数查询服务获得业务函数信息,所述函数网关将所述业务函数信息提交所述计算节点执行,所述计算节点执行所述业务函数信息时,通过边车模式调用所述中间件服务层,所述计算节点将业务函数执行结果反馈给所述函数网关。
作为优选,所述业务函数调用请求包括业务函数名和参数数据,所述函数网关通过所述业务函数名及业务函数查询服务获得对应的业务函数体,将所述业务函数体及参数数据作为业务函数信息,将所述业务函数信息提交所述计算节点。
作为优选,所述计算节点运行至少一个虚拟机,所述虚拟机通过边车模式与所述中间件服务层连接。
作为优选,所述计算节点运行多个虚拟机,多个所述虚拟机支持不同的函数语言,所述计算节点接收到所述业务函数信息后,将所述业务函数信息提交相应函数语言的虚拟机。
作为优选,所述中间件服务层还提供监控服务和日志服务,所述监控服务用于监控虚拟机的执行效率,所述日志服务用于记录所述计算节点以及所述计算节点运行的虚拟机的日志。
作为优选,所述中间件服务层具有功能服务自发现模块,所述虚拟机运行有功能服务,所述功能服务自发现模块通过边车模式劫持所述虚拟机进站消息和出站消息,根据所述进站消息、出站消息及功能服务调用消息模板,发现虚拟机提供的功能服务,所述中间件服务层还提供功能服务调用服务,所述功能服务调用服务为其他虚拟机提供功能服务调用接口。
基于边车模式的FaaS分布式计算方法,由如前述的基于边车模式的FaaS分布式计算系统执行,包括以下步骤:
暴露业务函数访问接口,接收业务函数调用请求并返回业务函数结果;
通过边车模式提供中间件服务,所述中间件服务包括数据库服务、缓存服务、消息队列服务和文件存储服务,所述数据库服务包括业务函数查询服务;
所述函数访问接口根据业务函数调用请求,通过所述业务函数查询服务获得业务函数信息;
建立计算节点,所述计算节点接收所述业务函数信息,所述计算节点通过边车模式调用中间件服务完成业务函数信息的执行;
所述计算节点将业务函数信息的执行结果反馈给所述业务函数访问接口。
作为优选,所述计算节点完成业务函数信息的执行的方法包括:
所述计算节点建立至少一个虚拟机;
所述计算节点将业务函数信息发送给所述虚拟机;
所述虚拟机通过边车模式调用中间件服务完成业务函数信息的执行。
作为优选,所述计算节点建立多个虚拟机,多个所述虚拟机支持不同的函数语言,所述计算节点接收到所述业务函数信息后,将所述业务函数信息提交相应函数语言的虚拟机。
一种计算机系统,所述计算机系统包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述的基于边车模式的FaaS分布式计算方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被分布式计算机系统执行时实现如前述的基于边车模式的FaaS分布式计算方法。
本发明的有益技术效果包括:兼顾易用性、性能、安全性和完备性,开发者仅需在线编写函数逻辑代码块,无需下载项目模板、管理复杂依赖即可完成微服务开发,简单易用;解释执行函数逻辑代码块即可完成业务需求,无需下载镜像、启动容器、启动项目、初始化等冗长流程,冷启动延时低;一个计算节点容器可以处理多个函数,资源利用率高;撤销计算节点的本地资源访问权限,不可信函数代码在计算节点执行也无安全风险,同时数据库、缓存、消息等微服务中间件操作统一到分布式运行时,通过安全策略控制不同用户之间的数据访问权限,即可保证系统整体安全性高。
本发明的其他特点和优点将会在下面的具体实施方式、附图中详细的揭露。
附图说明
下面结合附图对本发明做进一步的说明:
图1为本发明实施例FaaS分布式计算系统结构示意图。
图2为本发明实施例FaaS分布式计算方法流程示意图。
图3为本发明实施例计算节点完成业务函数信息执行方法流程示意图。
图4为本发明实施例计算机系统结构示意图。
其中:10、函数网关,20、中间件服务层,30、计算节点,40、计算机系统,41、存储器,42、计算机程序,43、处理器。
具体实施方式
下面结合本发明实施例的附图对本发明实施例的技术方案进行解释和说明,但下述实施例仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其他实施例,都属于本发明的保护范围。
在下文描述中,出现诸如术语“内”、“外”、“上”、“下”、“左”、“右”等指示方位或者位置关系仅是为了方便描述实施例和简化描述,而不是指示或暗示所指的装置或者元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
介绍本实施例技术方案前,对本实施例应用场景作介绍。
FaaS:Function as a service,函数即服务,服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护通常与开发和启动应用程序相关的基础架构的复杂性。按照此模型构建应用程序是实现函数即服务体系结构的一种方式,通常在构建微服务应用程序时使用。
当前FaaS系统常见的实现方案中,流程自顶向下需要提供如下功能模块:函数网关10,通过HTTP、AMQP等协议对外暴露函数触发入口;函数调度,解析进入函数网关10的请求,启动函数执行环境,注入函数代码块;函数执行,提供函数执行的运行时环境和网络、存储等系统资源,编译解释执行函数返回结果;资源调度,提供函数执行单元的扩容和缩容能力。
上述流程模块都是构建FaaS系统不可或缺的组成部分,其中易用性、性能、安全性、完备性成为FaaS平台的重要衡量指标,当前多数FaaS平台都会有偏向性攻克这几个指标的一部分。
为了兼顾易用性、性能、安全性和完备性,本实施例提供了一种基于边车模式的FaaS分布式计算系统,请参阅附图1,包括函数网关10、中间件服务层20和至少一个计算节点30,
函数网关10提供业务函数访问接口,业务函数访问接口接收业务函数调用请求并返回业务函数结果,
中间件服务层20为函数网关10及计算节点30提供数据库服务、缓存服务、消息队列服务和文件存储服务,数据库服务包括业务函数查询服务,
函数网关10接收业务函数调用请求后,通过边车模式调用中间件服务层20的业务函数查询服务获得业务函数信息,函数网关10将业务函数信息提交计算节点30执行,计算节点30执行业务函数信息时,通过边车模式调用中间件服务层20,计算节点30将业务函数执行结果反馈给函数网关10。
业务函数调用请求包括业务函数名和参数数据,函数网关10通过业务函数名及业务函数查询服务获得对应的业务函数体,将业务函数体及参数数据作为业务函数信息,将业务函数信息提交计算节点30。
计算节点30运行至少一个虚拟机,虚拟机通过边车模式与中间件服务层20连接。
计算节点30运行多个虚拟机,多个虚拟机支持不同的函数语言,计算节点30接收到业务函数信息后,将业务函数信息提交相应函数语言的虚拟机。
中间件服务层20还提供监控服务和日志服务,监控服务用于监控虚拟机的执行效率,日志服务用于记录计算节点30以及计算节点30运行的虚拟机的日志。
中间件服务层20具有功能服务自发现模块,虚拟机运行有功能服务,功能服务自发现模块通过边车模式劫持虚拟机进站消息和出站消息,根据进站消息、出站消息及功能服务调用消息模板,发现虚拟机提供的功能服务,中间件服务层20还提供功能服务调用服务,功能服务调用服务为其他虚拟机提供功能服务调用接口。
另一方面,本实施例提供了一种基于边车模式的FaaS分布式计算方法,由如前述的基于边车模式的FaaS分布式计算系统执行,请参阅附图2,包括以下步骤:
步骤A01)暴露业务函数访问接口,接收业务函数调用请求并返回业务函数结果;
步骤A02)通过边车模式提供中间件服务,中间件服务包括数据库服务、缓存服务、消息队列服务和文件存储服务,数据库服务包括业务函数查询服务;
步骤A03)函数访问接口根据业务函数调用请求,通过业务函数查询服务获得业务函数信息;
步骤A04)建立计算节点30,计算节点30接收业务函数信息,计算节点30通过边车模式调用中间件服务完成业务函数信息的执行;
步骤A05)计算节点30将业务函数信息的执行结果反馈给业务函数访问接口。
本实施例兼顾易用性、性能、安全性和完备性,开发者仅需在线编写函数逻辑代码块,无需下载项目模板、管理复杂依赖即可完成微服务开发,简单易用;解释执行函数逻辑代码块即可完成业务需求,无需下载镜像、启动容器、启动项目、初始化等冗长流程,冷启动延时低;一个计算节点30容器可以处理多个函数,资源利用率高;撤销计算节点30的本地资源访问权限,不可信函数代码在计算节点30执行也无安全风险,同时数据库、缓存、消息等微服务中间件操作统一到分布式运行时,通过安全策略控制不同用户之间的数据访问权限,即可保证系统整体安全性高。
请参阅附图3,计算节点30完成业务函数信息的执行的方法包括:
步骤B01)计算节点30建立至少一个虚拟机;
步骤B02)计算节点30将业务函数信息发送给虚拟机;
步骤B03)虚拟机通过边车模式调用中间件服务完成业务函数信息的执行。
计算节点30建立多个虚拟机,多个虚拟机支持不同的函数语言,计算节点30接收到业务函数信息后,将业务函数信息提交相应函数语言的虚拟机。
另一方面,本申请实施例提供了一种计算机系统,请参阅附图4,计算机系统40包括存储器41、处理器43以及存储在存储器41中并可在处理器43上运行的计算机程序42,计算机程序42被处理器43执行时实现如前述的基于边车模式的FaaS分布式计算方法。
计算机系统可以是一个通用计算机系统或一个专用计算机系统。在具体实现中,计算机系统可以是包括有多个服务器的服务器集群,如可以是包括有多个节点的区块链系统。本领域技术人员可以理解,图4仅仅是计算机系统的举例,并不构成对计算机系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器43可以是中央处理单元(Central Processing Unit,CPU),处理器43还可以是其他通用处理器43、数字信号处理器43(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器43可以是微处理器43或者也可以是任何常规的处理器43。
存储器41在一些实施例中可以是计算机系统的内部存储单元,比如计算机系统的硬盘或内存。存储器41在另一些实施例中也可以是计算机系统的外部存储设备,比如计算机系统上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器41还可以既包括计算机系统的内部存储单元也包括外部存储设备。存储器41用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等。存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
另一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序42,计算机程序42被处理器43执行时实现如前述的基于边车模式的FaaS分布式计算方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,熟悉该本领域的技术人员应该明白本发明包括但不限于附图和上面具体实施方式中描述的内容。任何不偏离本发明的功能和结构原理的修改都将包括在权利要求书的范围中。
Claims (11)
1.基于边车模式的FaaS分布式计算系统,其特征在于,
包括函数网关、中间件服务层和至少一个计算节点,
所述函数网关提供业务函数访问接口,所述业务函数访问接口接收业务函数调用请求并返回业务函数结果,
所述中间件服务层为所述函数网关及计算节点提供数据库服务、缓存服务、消息队列服务和文件存储服务,所述数据库服务包括业务函数查询服务,
所述函数网关接收业务函数调用请求后,通过边车模式调用所述中间件服务层的业务函数查询服务获得业务函数信息,所述函数网关将所述业务函数信息提交所述计算节点执行,所述计算节点执行所述业务函数信息时,通过边车模式调用所述中间件服务层,所述计算节点将业务函数执行结果反馈给所述函数网关。
2.根据权利要求1所述的基于边车模式的FaaS分布式计算系统,其特征在于,
所述业务函数调用请求包括业务函数名和参数数据,所述函数网关通过所述业务函数名及业务函数查询服务获得对应的业务函数体,将所述业务函数体及参数数据作为业务函数信息,将所述业务函数信息提交所述计算节点。
3.根据权利要求1或2所述的基于边车模式的FaaS分布式计算系统,其特征在于,
所述计算节点运行至少一个虚拟机,所述虚拟机通过边车模式与所述中间件服务层连接。
4.根据权利要求3所述的基于边车模式的FaaS分布式计算系统,其特征在于,
所述计算节点运行多个虚拟机,多个所述虚拟机支持不同的函数语言,所述计算节点接收到所述业务函数信息后,将所述业务函数信息提交相应函数语言的虚拟机。
5.根据权利要求1或2所述的基于边车模式的FaaS分布式计算系统,其特征在于,
所述中间件服务层还提供监控服务和日志服务,所述监控服务用于监控虚拟机的执行效率,所述日志服务用于记录所述计算节点以及所述计算节点运行的虚拟机的日志。
6.根据权利要求3所述的基于边车模式的FaaS分布式计算系统,其特征在于,
所述中间件服务层具有功能服务自发现模块,所述虚拟机运行有功能服务,所述功能服务自发现模块通过边车模式劫持所述虚拟机进站消息和出站消息,根据所述进站消息、出站消息及功能服务调用消息模板,发现虚拟机提供的功能服务,所述中间件服务层还提供功能服务调用服务,所述功能服务调用服务为其他虚拟机提供功能服务调用接口。
7.基于边车模式的FaaS分布式计算方法,由如权利要求1至6任一项所述的基于边车模式的FaaS分布式计算系统执行,其特征在于,
包括以下步骤:
暴露业务函数访问接口,接收业务函数调用请求并返回业务函数结果;
通过边车模式提供中间件服务,所述中间件服务包括数据库服务、缓存服务、消息队列服务和文件存储服务,所述数据库服务包括业务函数查询服务;
所述函数访问接口根据业务函数调用请求,通过所述业务函数查询服务获得业务函数信息;
建立计算节点,所述计算节点接收所述业务函数信息,所述计算节点通过边车模式调用中间件服务完成业务函数信息的执行;
所述计算节点将业务函数信息的执行结果反馈给所述业务函数访问接口。
8.根据权利要求7所述的基于边车模式的FaaS分布式计算方法,其特征在于,
所述计算节点完成业务函数信息的执行的方法包括:
所述计算节点建立至少一个虚拟机;
所述计算节点将业务函数信息发送给所述虚拟机;
所述虚拟机通过边车模式调用中间件服务完成业务函数信息的执行。
9.根据权利要求8所述的基于边车模式的FaaS分布式计算方法,其特征在于,
所述计算节点建立多个虚拟机,多个所述虚拟机支持不同的函数语言,所述计算节点接收到所述业务函数信息后,将所述业务函数信息提交相应函数语言的虚拟机。
10.一种计算机系统,其特征在于,所述计算机系统包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求7至9任一项所述的基于边车模式的FaaS分布式计算方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被分布式计算机系统执行时实现如权利要求7至9任一项所述的基于边车模式的FaaS分布式计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706528.1A CN116010968A (zh) | 2022-12-29 | 2022-12-29 | 基于边车模式的FaaS分布式计算系统、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706528.1A CN116010968A (zh) | 2022-12-29 | 2022-12-29 | 基于边车模式的FaaS分布式计算系统、方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010968A true CN116010968A (zh) | 2023-04-25 |
Family
ID=86033087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211706528.1A Pending CN116010968A (zh) | 2022-12-29 | 2022-12-29 | 基于边车模式的FaaS分布式计算系统、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010968A (zh) |
-
2022
- 2022-12-29 CN CN202211706528.1A patent/CN116010968A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN110377369B (zh) | 一种运行小程序的方法、设备和计算机存储介质 | |
WO2021088641A1 (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
US9910881B1 (en) | Maintaining versions of control plane data for a network-based service control plane | |
JP2014528116A (ja) | ポータブルコンピューティングデバイスにおける分散リソース管理 | |
US11948021B2 (en) | Method for inter-core communication, processor, inter-core communication system and computer readable storage medium | |
CN112835632B (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN112073448A (zh) | 一种双系统终端的服务隔离方法和装置 | |
CN113641410A (zh) | 一种基于Netty的高性能网关系统的处理方法及系统 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
US9128886B2 (en) | Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium | |
CN110213250B (zh) | 数据处理方法及终端设备 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN111147571A (zh) | 分布式任务调度方法、装置、系统、存储介质及电子设备 | |
US20140344832A1 (en) | Automated framework for tracking and maintaining kernel symbol list types | |
CN111581576A (zh) | 基于微服务的开发处理方法、装置及存储介质 | |
CN116010968A (zh) | 基于边车模式的FaaS分布式计算系统、方法及存储介质 | |
US10348814B1 (en) | Efficient storage reclamation for system components managing storage | |
CN107632893B (zh) | 消息队列处理方法及装置 | |
CN113360558B (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN115774700A (zh) | 文件共享方法、装置、计算机设备及存储介质 | |
CN112130900B (zh) | 一种bmc的用户信息管理方法、系统、设备以及介质 | |
CN114327404A (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 |