架构与隔离
A3S Box 将公开工作负载契约与主机特定的执行后端分离。调用方描述 OCI 工作负载及其 必需能力,运行时在创建持久执行状态之前判断当前主机能否强制执行该请求。
本地运行时边界
Box 不提供托管账户服务、远程 Sandbox API、网关或连接端点。CLI 和 SDK 始终操作 同一台机器上安装的运行时。
需要远程编排的应用,应在原生 SDK 前构建自己的认证服务;该服务负责认证、授权、 租户隔离、限流和网络暴露。
ExecutionManager
ExecutionManager 为所有公开入口拥有同一个生命周期状态机,负责:
- 创建、启动、检查、停止、重启、终止、暂停、恢复和删除;
- 镜像解析和有效镜像元数据;
- 网络与卷挂载;
- 健康检查和重启策略;
- 日志、统计、退出状态与清理;
- 操作身份和代际围栏。
CLI 和所有语言 SDK 共用该管理器,因此每个入口不会各自发明第二套生命周期模型。
隔离解析器
解析器把隔离视为请求数据:
- 验证资源和策略值。
- 探测当前主机能力。
- 选择请求的后端,不自动回退。
- 拒绝不支持的网络、快照、TEE、健康检查或平台组合。
- 持久化实际隔离类别。
- 准备资源并启动工作负载。
这个顺序使“产生副作用前失败”成为公开契约的一部分。
MicroVM 路径
默认后端使用 libkrun 和独立 Linux 客体内核:
Linux 使用 KVM,Apple Silicon 使用 HVF,Windows x86_64 使用 WHPX。
Sandbox 路径
显式 Linux Sandbox 后端使用 A3S OCI Runtime,共享主机内核。准入要求当前配置所需的 namespace、seccomp、从属 ID、cgroup 委派及其他主机原语全部可用。
Sandbox 不是 MicroVM 失败后的透明回退。两者的威胁模型和能力表面有意不同。
根文件系统与镜像身份
OCI manifest 固定镜像配置和层描述符。rootfs 缓存键包含解析后的 manifest 摘要, 因此可变标签移动后不会复用旧文件系统内容。
持久 rootfs 代、文件系统快照和预热池模板都会保留与保存状态配对的精确缓存身份。
运行时目录
A3S_HOME 可覆盖默认运行时目录。Box 在其中保存持久记录、镜像、盒子、日志、卷、
网络、快照和缓存元数据。
集成测试和自动化应使用专用 A3S_HOME,避免干扰开发者的默认运行时。