导读
ALIWARE
USENIX ATC (USENIX Annual Technical Conference) 学术会议是计算机系统领域的顶级会议,入选中国计算机协会(CCF)推荐 A 类国际会议列表;本次会议共投稿 341 篇论文,接收 64 篇,录用率 18.8%。
阿里云 Serverless 团队第一个提出在 FaaS 场景下的去中心化快速镜像分发技术,团队创作的论文被 USENIX ATC’21 录用。以下是论文核心内容解读,重点在缩短阿里云函数计算产品 Custom Container Runtime 的函数冷启动端到端延迟。
USENIX ATC 将于 7.14-7.16 在线上举办,论文信息见:
https://www.usenix.org/conference/atc21/presentation/wang-ao
摘要
ALIWARE
Serverless Computing (FaaS) 是一种新的云计算范式,它允许客户只关注自身的代码业务逻辑,系统底层的虚拟化、资源管理、弹性伸缩等都交给云系统服务商进行维护。Serverless Computing 上支持容器生态,解锁了多种业务场景,但是由于容器镜像复杂,体积较大,FaaS 的 workload 动态性高且难以预测等特性,诸多业界领先的产品和技术并不能很好的应用于 FaaS 平台之上,所以高效的容器分发技术在 FaaS 平台上面临着挑战。
在这篇论文中,我们设计并提出 FaaSNet。FaaSNet 是一个具有高伸缩性的轻量级系统中间件,它利用到镜像加速格式进行容器分发,目标作用场景是 FaaS 中突发流量下的大规模容器镜像启动(函数冷启动)。FaaSNet 的核心组件包含 Function Tree (FT),是一个去中心化的,自平衡的二叉树状拓扑结构,树状拓扑结构中的所有节点全部等价。
我们将 FaaSNet 集成在函数计算产品上,实验结果表明,在高并发下的请求量下,相比原生函数计算(Function Compute, 下称 FC),FaaSNet 可以为 FC 提供 13.4 倍的容器启动速度。并且对于由于突发请求量带来的端到端延迟不稳定时间,FaaSNet 相比 FC 少用 75.2% 的时间可以将端到端延迟恢复到正常水平。
论文介绍
ALIWARE
1
背景与挑战
FC 于 2020年9月支持自定义容器镜像(https://developer.aliyun.com/article/772788)功能,相继 AWS Lambda 在同年 12 月公布了 Lambda container image 支持,表明 FaaS 拥抱容器生态的大趋势。并且函数计算在 2021年2月上线了函数计算镜像加速(https://developer.aliyun.com/article/781992)功能。函数计算这两项功能解锁了更多的 FaaS 应用场景,允许用户无缝将自己的容器业务逻辑迁移到函数计算平台上,并且可以做到 GB 级别的镜像在秒级启动。
当函数计算后台遇到大规模请求导致过多的函数冷启动时,即使有镜像加速功能的加持,也会对 container registry 带宽带来巨大压力,多台机器同时对同一个 container registry 进行镜像数据的拉取,导致容器镜像服务带宽瓶颈或限流,使得拉取下载镜像数据时间变长(即使在镜像加速格式下)。较为直接的做法可以提高函数计算后台 Registry 的带宽能力,但是这个方法不能解决根本问题,同时还会带来额外的系统开销。
Workload 分析
我们首先对 FC 两大区域(北京和上海)的线上数据进行了分析: