ServerlessAI AgentVirtualizationSystem Design

从 Serverless 到 Agent:Cube 系统的一些设计思考

Cube Sandbox··原文链接
收录于 2026/5/28 09:27:12

Serverless 三大核心挑战

2019 年 Berkeley 发表"Cloud Programming Simplified: A Berkeley View on Serverless Computing",将 Serverless 带入大家视野。Serverless 带来了三大核心挑战:

  1. 资源粒度小:不同于传统虚拟机提供了一个机器的资源抽象,Serverless 提供了一个应用乃至一个函数的资源抽象
  2. 极速冷启动:Serverless 提供了资源按需申请、按量付费的模式,需要按需申请、及时响应
  3. 海量并发:按需申请、用完即毁的模式意味着每次请求对应后台一次真实的资源创建,并发量是传统虚拟机的千倍以上

传统云计算 IaaS 为虚拟机负载而设计,无论是资源粒度、冷启动速度还是并发能力都远低于 Serverless 的要求。

Cube 核心设计

1. 分布式调度 + 单机装箱

调度由中心的分布式调度和每个节点的本地装箱两部分构成,两部分都可以线性平扩展整个系统的并发能力。

分布式调度前提

  • Cube 的资源层每个节点足够大(大配置裸金属或虚拟机)
  • 结合 Cube 本身的轻量化高密设计(单节点超过 1K 的沙箱密度)
  • Serverless 负载的生命周期普遍不长,单节点上的 Sandbox 始终处于动态变化的状态

2. 资源池化 + 单机闭环

单机装箱是节点内本地闭环的操作,所有沙箱需要的资源提前准备池化,沙箱的生产就是从各种资源池中取出资源进行拼装的过程,加速了沙箱的启动速度,减少了节点内不同沙箱并发生产的路径碰撞。

3. 前后端解耦

沙箱内部系统完全无状态,所有的状态保存在虚拟化后端,大幅简化沙箱批量克隆的技术设计。

4. 快照恢复 + lazy load

所有沙箱都是基于模板恢复的创建,沙箱内部的系统无状态大大简化了这里的工作。Cube 沙箱的生产过程中,沙箱本身的恢复和后端配置的刷新可以并发进行,百毫秒内就可以端到端完成一个可服务沙箱的交付

lazy load 机制:所有快照没有 touch 的沙箱内存都是按需建立 EPT 映射,将所有该做的事情延迟到真正需要的时候再做。

5. 资源复用 + 按需申请

所有只读存储整个节点只存储一份是 Cube 系统的设计目标,通过沙箱内外打通的方式,沙箱内部的存储实际都由外部统一提供。

内存共享:基于同一个内存快照文件克隆的沙箱,采用 mmap 方式共享内存快照,天然会共享内存中未修改的部分,单沙箱因此至少可以节省 30M+ 的内存消耗。

磁盘共享:基于同一个磁盘快照文件克隆的沙箱,采用 reflink 的方式共享同一个磁盘文件,真正的磁盘块在真实写入发生时才会真实分配。

整个节点层面会节省 10% 以上的内存,存储空间消耗直接减少 90% 以上。

6. 全栈锁优化

很多小细节的优化,聚沙成塔,最终为 Cube 系统的单机超高并发及高并发下的时延稳定性打下了很好的基石。

7. 原生安全

沙箱内部是不可信任域,完全交给用户使用。所有和内部敏感系统的交互以及资源的准备都在沙箱外部完成,内部和外部通过硬件虚拟化的方式进行隔离。

通信机制:Cube 基于 ivshmem 自研了高性能的内外通信通道,用于沙箱内外的协作。

网络隔离

  • 所有沙箱的被动请求必须经过 CubeProxy
  • 所有沙箱的主动外访必须经过 CubeGW
  • 所有沙箱的网络 IO 都必须经过节点上的 CubeVS

8. 复用虚拟机资源

Cube 使用了 KVM 虚拟化技术来保证安全隔离能力,但嵌套虚拟化存在性能损耗过大的问题。Cube 基于社区的 PVM 方案进行了改良和优化,PVM 基于 PV 技术提供完整的 linux 内核虚拟化方案,不依赖硬件虚拟化。

性能指标

基于以上设计,最终打造了一个具备高密、高弹性、高并发能力的虚拟化系统:

  • 高密:单台 96 vCPU 物理机可以生产 2K 台以上 0.1vCPU, 128MB 配置的 Sandbox
  • 高弹性:镜像就绪的前提下 60ms 内可以从 0 生产出一台直接可服务的 Sandbox
  • 高并发:单台 96vCPU 物理机空载情况下可以支撑 100 并发的长时间瞬时压测创建请求,且 P99 耗时小于 200ms

从 Serverless 到 Agent

从去年开始,AI 应用逐步从"对话式"向"执行式"发展。作为执行大模型生成代码的代码沙箱,对于高弹性及高并发依然有着极高的要求;而执行环境的安全隔离能力,成为 Agent 沙箱最基本的要求。

Agent 场景应用

  1. 极速的代码执行场景:Agent 代码执行场景,需要底层沙箱具备快速启动能力和高并发能力
  2. 高并发的 Agentic RL 场景:Coding RL 场景,需要同时拉起大量沙箱进行结果的验证,某外部头部大模型客户基于 Cube 商业化版本,1 分钟可以拉起数十万实例
  3. 块级去重 + 按需加载的镜像加速系统:解决 Agentic RL 场景海量镜像的存储和加载问题
  4. 基于快照的分支克隆:对运行中的沙箱打快照,并进行 1:N 的 Clone 进行分支探索任务
  5. 安全与防御能力:Agent 行为具有概率属性,无法提前预测,系统的事件级快照和回滚能力成为关键设计

事件级快照和回滚

通过将块存储的索引和实际数据块分离,快照的过程仅仅是复制一份数据块索引,实际的数据块只在真实写入的时候 CoW 真实分配,实现了百毫秒级的大量环境快照能力

展望

Anthropic 在 4.9 发布的 Managed Agent 将 Agent 解耦为:大脑(决策与执行循环)、双手(执行环境、工具等)和会话(不可变持久化数据,可重放)。

Cube 正在打造的事件级快照回滚、分支探索、强安全控制等能力或许可以成为"大脑"的良好载体,Cube 多年打磨的"极快启动、超大并发、超高密度"等技术能力或许可以作为"双手"的一个最佳匹配。

开源项目:GitHub - TencentCloud/CubeSandbox: Instant, Concurrent, Secure & Lightweight Sandbox for AI Agents