Cross-Edge Orchestration of Serverless Functions With Probabilistic Caching

分享一篇发表于2024年,CCF A类,SCI 2区Transactions on Services Computing(TSC)的一篇关于无服务器函数容器缓存 的文章Cross-Edge Orchestration of Serverless Functions With Probabilistic Caching,于2023年10月4日投稿,2024年5月1日返修,2024年5月6日录用。

文章目录

Authors

Background

随着通信技术和物联网技术的发展,越来越多的IoT应用连接到网络,如智能工厂,在线游戏,增强现实和虚拟现实等。这些应用会在终端设备持续收集数据,为处理这些数据,边缘计算广为采用。

近期,无服务器计算在边缘计算中得到广泛关注,无服务器使IoT应用运行在轻量的容器中,在服务结束后容器销毁,释放资源,大大提升了资源效率和响应时间。

Motivation

如图1,当用户请求无服务器函数时,在数据源(Edge Node 1)服务用户请求可能会导致很大的时延,这是因为创建容器会经历冷启动过程。然而,由于节点2已经缓存了容器,我们可以让节点2服务用户请求以避免冷启动时延,但需要以更大的传输时延为代价。

图1

与传统的云数据中心不同,其具有同构的算力和存储,在分布式的边缘节点支持无服务器函数可能会无法完全发挥其潜力。

在跨多个地理分布的边缘节点上部署各种无服务器函数,以完全发挥无服务器容器的非常具有以下挑战:

  1. 现有工作忽略了边缘计算的异构网络拓扑,比如,用户可能离缓存了容器的节点远,因此在调度容器时如何综合考虑数据源和容器以优化传输时延比较困难。

  2. 与似乎有无穷算力资源的云计算不同,边缘设备很容易到达容量,且内存容量昂贵。频繁创建和销毁容器很容易造成系统花销,因为创建容器需要下载代码并在服务请求前创建运行环境。因此,在没有函数调用统计信息的前提下优化容器编排具有挑战性。尽管缓存函数可以解决这一问题,但缓存函数需要花销。无服务器计算中,用户只需按实际使用的计算量付费,因此需要服务提供者及无服务器平台承担缓存的花销,即缓存函数会降低服务提供者的长期收益。

因此,平衡容器切换(创建新容器)、通信及缓存成本对边云系统的有效性至关重要,同时,这一权衡(trade-off)尚未被明确研究

System Model & Problem

系统模型

边缘服务提供者在地理分布的边缘节点 V = { 1 , 2 , . . , V } \mathcal V = \{1,2,..,V\} V={1,2,..,V}上部署无服务器计算服务,每个节点具有一定的硬件资源(如,内存),表示为 U v t U_v^t Uvt,用 E = { 1 , 2 , . . , E } \mathcal E = \{1,2,..,E\} E={1,2,..,E}表示边缘节点之间的连接,将用户的请求表示为 R = { 1 , 2 , . . , R } \mathcal R = \{1,2,..,R\} R={1,2,..,R}。

系统设计

图2为文章pCache的架构,其基于Knative,Kubernetes和Kourier工具构建。系统整体流程为:

用户首先将请求发送Ingress gateway,然后请求被发至Scheduler,Scheduler根据算法1算法2决策,Scheduler中也存储了缓存信息(包含了运行但没有服务任何请求的容器),依据缓存的容器和到来的请求进行决策,决策结果通过Kubernetes的API服务器发送给Knative的端点。API服务器在有需要时创建容器,与此同时,放置决策也被发送至Ingress gateway,Load balancer则将函数分配到函数pod上,最终,函数pod处理请求流并将结果返回给用户。当完成请求后,Scheduler基于算法2决策是否终止容器。
图2

问题描述

文章考虑创建容器的成本、节点之间的通信成本(正比于通信时延)以及缓存(运行容器)的成本,并最小化这三者的加权和。通过将该优化问题规约到一般指派问题(Generalized Assignment Problem,GAP),证明文章的问题为NP难的。

Method

算法1 -- 请求分布

输入 :用户请求、计算节点,计算节点间的通信成本,每个计算节点缓存的容器,每个计算节点的内存容量
输出 :每个请求分配到哪个计算节点
流程

  1. 当请求到达节点v时,首先看节点v缓存的容器能否处理,如果能处理,则全部分配到节点v处理;否则转2
  2. 对所有节点v'依据v和v'的通信成本升序排序,对剩下的无法通过v缓存的容器处理的请求,如果节点v的切换成本高于将请求发送到v'的成本,则将请求发送到v'处理;
  3. 2结束后,如果请求没有被服务完,则调用算法2,在节点v上创建新容器。

算法2 -- 概率函数缓存

输入 :节点v
输出 :容器列表
流程

  1. 如果缓存的容器容量大于内存,则依据下列公式计算容器n的概率,并依据概率选择一个容器并销毁
  2. 创建一个新容器

Evaluation

文章采用了仿真和Knative真实部署两种评估方式,所有的实验重复10次并使用平均值作为结果。这里只提一下一些关键的数据集和评估指标,具体结果可阅读原文。

应用名称 内存大小(MB)
Web 服务器 55
文件处理 158
Supermarket Checkout 332
图像识别 92
  • Baseline: LRU,FC(Fixed Caching)
  • 性能指标:平均成、系统成本、冷启动频率

想知道更多请看原文:https://ieeexplore.ieee.org/abstract/document/10528903,欢迎通过留言等方式讨论,一起进步!

相关推荐
海天鹰19 小时前
Edge卸载应用
edge
阿里云云原生1 天前
Function AI 工作流发布:以 AI 重塑企业流程自动化
云原生·serverless
Serverless社区2 天前
亚太唯一!阿里云Serverless计算产品进入Forrester领导者象限
阿里云·云原生·serverless·函数计算
lemoncat84 天前
Edge浏览器地址栏默认搜索引擎设置指南
前端·搜索引擎·edge
AWS官方合作商5 天前
基于AWS无服务器架构的区块链API集成:零基础设施运维实践
架构·serverless·web3·区块链·aws
江梦寻10 天前
最新Chrome与Selenium完美兼容指南(含驱动下载与配置)
前端·chrome·selenium·测试工具·edge·edge浏览器
DayDayUpWhyan11 天前
nuclio
serverless·nuclio·nuctl·cvat