2020.12.28 外文翻译
2020-12-28 130
翻译 RaaS 论文
helper function 定义 : A helper function is a function that performs part of the computation of another functio
外文原文名 Result-as-a-Service (RaaS): Persistent Helper Functions in a Serverless Offering
中文译名 结果即服务(RaaS):无服务器产品中的持久化助手函数
外文原文版出处: Journal of Software Engineering and Applications Publisher: Scientific Research Publishing Vol.13 No.10(2020), Article ID:103674, 10 pages
[https://file.scirp.org/html/4-9302809_103674.htm]
[https://www.scirp.org/pdf/jsea_2020102615001491.pdf]
译文:
目录
|
------ 1.简介
------ 3.提出的方法
|
------ 3.1 RaaS:持久化助手提供的FaaS
------3.2 持久化助手函数的功能
------3.3 持久化助手里的建模加速
------ 6.结论与未来的工作
摘要
无服务器计算或功能即服务(FaaS)是用于云计算环境的执行模型,其中云提供商通过动态分配资源来执行一段代码(一个功能)。当某一个函数长时间未被执行或第一次执行时,一个新的容器就必须被创建,并且必须初始化执行环境,这将导致(系统)冷启动。冷启动会导致更高的延迟。因此我们为云环境提出了一种被称为“结果即服务”(RaaS)的新的计算和执行模型,该模型旨在降低计算成本和开销,同时实现了高可用性。在连续调用函数时,一个持久化函数可以通过预计算可能有不同参数的函数,然后在找到匹配的函数调用时分配结果来帮助实现连续调用。
关键字:
无服务器计算,函数即服务,Lambda函数
1.简介
无服务器计算或函数即服务(FaaS)是用于云计算环境的执行模型,其中云提供商通过动态分配资源来执行一段代码(一个功能)。在无服务器计算模型中,代码被构造为函数。这些函数由事件触发,例如对API网关的HTTP请求,写入数据库的记录,上传到云存储的新文件,插入消息队列中的新消息,监视警报以及计划事件。当事件触发函数时,云提供商将启动一个容器并在该容器内执行该函数。一些与无服务器计算有关的重要概念描述如下:
· Push 和 Pull 调用模型:无服务器产品中的函数由事件源调用,事件源可以是 Cloud 服务或发布事件的自定义应用程序。基于事件的调用有两种模式:push 和 pull。
· 并发执行:并发执行是指同时执行函数的执行次数。云提供商对并发执行设置了限制。
· 执行持续时间:云提供商设置了时间限制,在时间限制下必须函数执行必须完成。如果函数执行时间超过时间限制,则函数执行将被终止。
· 容器重用:云提供商通常使用容器来执行其无服务器产品中的函数。容器有助于将某一个函数的执行与其他函数隔离开。首次(或长时间后)调用函数时,将创建一个容器,初始化执行环境,并加载函数代码。在一定时间内对同一函数进行后续调用的时候,该容器可被重复使用。
· 冷热函数:长时间未执行或第一次执行某个函数时,必须创建一个新的容器,并且必须初始化运行环境。这称为冷启动。由于必须初始化一个新的容器,而冷启动会导致更高的延迟。云提供商可以在短时间内将容器重新用于相同功能的后续调用。在这种情况下,该功能被称为热启动,并且执行时间比冷启动少得多。
这项工作的主要贡献是:
1)在 FaaS 基础上提出了一种称为 Result-as-Service(RaaS)的新的云环境计算和执行模型,目的是为了实现高可用性的同时,降低计算成本和开销,
2)提出了一种通过引入“持久化助手”的库来优化 FaaS 产品的方法;
3)展现了一种可用于在无服务器产品中最大化性能的分析模型和算法;
4)给出了一个运用持久化助手的实现案例研究。
3.提出的方法
我们提出了一种通过引入持久化助手库来优化 FaaS 产品的方法,这些库与 FaaS 中的函数不同。持久化助手可以通过预读取数据和预计算逻辑来(像涡轮加速一样)提高执行速度。在连续调用函数之间,持久化函数可以通过预先计算不同可能参数的结果,然后在找到匹配的函数调用时分配结果,从而来帮助进行函数的连续调用。这使函数调用更快,也减少了负载,因为云提供商通过数百万个调用共享公共计算,这些调用可以共享公共预计算值。不同的第三方可以竞争提供不同的零售用户可以利用的辅助功能,从而创建一个持久化函数市场,非常类似于一个“应用商店” 。
RaaS 胜于 FaaS 的原因有两个。首先,所提出的定价模型与按需请求所期望的计算过程是分离的,当用户使用共享服务而不是具有相同目的的单个功能时,定价模型可能会低得多,从而该模型在扩展时节省了成本。其次,我们证明了在对期望值进行预计算后,往返延迟显着减少,从而根据要求实现了高可用性。这种新模型目的在于满足低延迟应用程序的需求,例如智能电表,智能城市,自动驾驶汽车,可穿戴设备等,以降低计算密集型任务的成本。
来自第三方和云提供商的持久化助手的应用商店可以帮助加速和优化在云上下文中无服务器应用程序的使用。复杂的标识,链接和生命周期许可模块允许对应用程序和持久华助手进行扩展,定价具有竞争力,并且还可以通过身份验证和加密来保护隐私。
3.1 RaaS:持久化助手提供的FaaS
在本节中,我们介绍了一种称为 Result-as-a-Service(RaaS)的用于云环境的新计算和执行模型。RaaS 是对 FaaS 的增强,因为它减少了计算成本和开销,同时通过使用持久华助手实现了高可用性。图1 显示了 RaaS 产品的体系结构。RaaS 体系结构中的组件如下:
· 负载均衡器:负载均衡器将事件/请求路由到服务器,服务器最终将调用在服务器上运行容器内执行的函数。如果某个服务器已经有某个正在运行(函数)的热容器,则请求将被路由到该服务器。
· RaaS 服务器:图2 显示了 RaaS 服务器的体系结构,该服务器在容器内执行功能并将响应返回给客户端。函数由事件源调用。基于事件的调用有两种模式:push 和 pull。服务器还处理 CRUD(创建,读取,更新和删除)操作以设置功能。服务器首次运行功能时,它将缓存该函数的映像并启动一个热容器。如果已经有容器在运行,则服务器会将函数调用路由到正在运行的容器。然后,将函数执行的响应发送回负载均衡器。服务器维护一个用于持久化助手的容器池,并且,这些容器独立于那些用于运行函数的容器。
· 打包功能和持久化助手:函数和持久化助手的源代码被打包为容器映像。容器注册表(或函数分配服务)维护着在 RaaS 产品中注册的所有功能的记录。同样,将维护 RaaS 产品中的持久性助手函数目录。
3.2 持久化助手函数的功能
· 有状态:持久化助手与现有 FaaS 产品的关键区别在于,持久化助手函数可以是有状态的,而函数是无状态的,任何状态信息都必须单独保存在状态数据库中。
· 计费和订阅模型:持久化助手函数可以有不同的计费和订阅模型。例如,可以独立地配置处理的请求或事件的数量,持续时间或时间段,使用的计算和内存资源的数量以及处理的数据量。提供持久化助手函数的第三方可以与提供无服务器产品的云提供商共享使用费。
· 连续训练:可以独立于调用(持久化助手)函数,进行连续训练和优化持久化助手的函数。
· 分发和管理:持久化助手函数可通过函数商店(如应用商店一样)使用。开发人员可以从函数商店中选择持久性助手函数,并在各种订阅,计费和许可模型中进行选择。持久化助手函数的每个实例都由唯一的ID标识,并且可以由一个或多个功能使用。为用户提供了一个仪表板,该仪表板显示了用户实例化的持久化助手函数的状态,其成本以及其他运行时费用和工作负载利用率。
· 缩放:持久化助手函数是可以弹性伸缩的。持久化助手函数管理器有一个前端负载均衡器。它产生新的助手实例,并通过生命周期方法来支持函数的运行。
· 执行:持久化助手可以在 GPU 或 ASIC 上执行,以加快执行速度。
· 共享:持久化助手函数可以在多个函数之间共享。
· 配置和自定义:可以配置或自定义持久化助手函数从而在不同功能中使用。
· 第三方库:持久性助手函数可以使用第三方库,也可以由用户开发。
3.3 持久化助手里的建模加速
无服务器产品中的功能表示为控制数据流图(CDFG),如图3所示。CDFG中有两种类型的节点:数据流节点和决策节点。数据流节点是具有单个入口点,单个出口点且没有条件的一段代码,而决策节点是具有至少一个条件的一段代码。节点可以持久化,利润值决定了持久化内存或数据库的好处。对于 CDFG 中的每个节点来说,实际执行时间(Ti')和持久版本(Ti)的执行时间是确定了的。每个节点的利润值就是它们的差(Ti' - Ti)。
6.结论与未来的工作
我们介绍了一种通过引入持久化助手函数来优化 FaaS 产品的方法,这类函数可以通过预取数据和预计算逻辑来提高执行速度。未来的工作将专注于扩展诸如 OpenFaaS 之类的开源无服务器产品以支持持久化助手函数,并创建一个仪表板以显示用户实例化的持久化助手函数的状态,成本以及其他运行时费用和工作负载利用率。