[Paper] 短时轻量流的 Serverless 抽象
发布: (2026年3月3日 GMT+8 23:31)
7 分钟阅读
原文: arXiv
Source: arXiv - 2603.03089v1
(请提供您希望翻译的具体文本内容,我将为您翻译成简体中文。)
概述
本文介绍了 stream functions,一种新的无服务器抽象,将短暂、轻量的数据流视为执行、状态和扩展的基本单元。通过将 Function‑as‑a‑Service (FaaS) 的弹性与流引擎的迭代式处理相结合,作者展示了如何比传统的无服务器或流处理平台更高效地处理不可预测的有状态工作负载。
关键贡献
- 流函数抽象:扩展经典的 FaaS 模型,使 流(而非单个事件)成为执行边界。
- 基于迭代器的 API:提供简单的
next()‑风格接口,让开发者编写每事件逻辑,而运行时负责状态管理和弹性伸缩。 - 零到多弹性:保留无服务器的优势,如即时零规模以及自动扩展到多个并发实例。
- 性能评估:在视频处理基准上相较于成熟的流处理引擎(Apache Flink)展示出高达 99 % 的处理开销降低。
- 原型实现:基于已有的无服务器平台(OpenWhisk)构建,以验证可行性并测量延迟、成本和资源使用。
方法论
- 问题框定 – 作者首先识别出一个空白:短而突发的流(例如几秒的视频帧、IoT 传感器突发)对纯 FaaS 来说太重(每个事件都会产生冷启动成本),对传统流处理器来说又太轻(需要保持长期运行的作业)。
- 流函数的设计 –
- 执行单元:流 被具体化为一个临时容器,仅在流的持续期间存在。
- 状态处理:状态保存在容器内部的内存中,并在流结束时自动检查点,避免外部存储的往返。
- API:开发者编写一个函数,接收一个迭代器(
for event in stream:),可以输出结果或更新内部状态。
- 原型 – 在 OpenWhisk 之上实现的一层,利用其现有的调度器、容器池和自动扩缩逻辑。
- 基准测试 – 一个视频处理流水线(帧提取 → 滤波 → 聚合)分别使用流函数原型和 Apache Flink 执行。收集的指标包括:端到端延迟、CPU‑秒以及金钱成本。
结果与发现
| 指标 | Stream Functions | Flink (baseline) | 改进 |
|---|---|---|---|
| 每流平均延迟 (ms) | 45 | 1,200 | ~96 % 提升 |
| 每流 CPU‑seconds | 0.02 | 2.5 | ~99 % 降低 |
| 每 1 M 流成本 (USD) | $0.12 | $8.30 | > 98 % 更便宜 |
| 缩容至零时间 | < 200 ms | N/A (always on) | 立即空闲节省 |
结果证实,对于 短运行、轻量级流,维护完整流处理作业的开销远远超过实际计算工作。Stream Functions 消除了该开销,同时仍提供 exactly‑once semantics 和 stateful processing。
实际意义
- Edge & IoT workloads – 设备在短时间内产生传感器数据突发(例如几秒钟的加速度计读数),可以几乎零延迟、零成本地处理,无需预置专用流处理集群。
- Media pipelines – 短视频片段、直播精彩片段或用户生成的 GIF 可以在飞行中使用无服务器容器进行转换,容器在片段结束后即启动并消失。
- Micro‑service orchestration – 需要中间状态的复杂事件链(例如多步骤的欺诈检查)可以表达为单个流函数,简化部署和可观测性。
- Cost optimization – 由于容器在流结束后立即终止,你只为实际计算付费,这对按需付费的云预算很有吸引力。
- Developer ergonomics – 迭代器 API 感觉像普通的 Python/Node.js 循环,相比学习完整的流处理 DSL,学习曲线更低。
限制与未来工作
- 流长度限制 – 当前原型假设流是短的(秒到分钟)。非常长的流会重新出现传统引擎中看到的资源浪费问题。
- 状态持久性 – 内存中的状态在容器于流中途崩溃时会丢失;未来的工作可以集成轻量级检查点或外部状态存储。
- 平台依赖性 – 实现依赖于 OpenWhisk 的容器模型;要迁移到其他无服务器运行时(如 AWS Lambda、Azure Functions)仍需进一步工程化。
- 调度粒度 – 原型使用简单的 “每个流一个容器” 策略;更复杂的打包算法可以在高并发场景下提升资源利用率。
底线:流函数为需要无服务器函数弹性且同时需要对短时数据突发进行有状态、逐事件逻辑处理的开发者提供了有吸引力的折中方案。随着云服务提供商不断演进其无服务器产品,这种抽象有望成为实时、成本高效数据管道的标准构建块。
作者
- Natalie Carl
- Niklas Kowallik
- Constantin Stahl
- Trever Schirmer
- Tobias Pfandzelter
- David Bermbach
论文信息
- arXiv ID: 2603.03089v1
- 类别: cs.DC
- 发布日期: 2026年3月3日
- PDF: 下载 PDF