ObjectOS

架构

你实际运行的是什么 —— 写给评估是否引入它的工程师。

架构

一个实用视角,帮你看清部署 ObjectOS 后你的机器上跑了什么、什么数据离开了你的网络、什么数据没有。

心智模型是两层薄薄的东西:

  1. 元数据 —— 对象 / 视图 / Action / 流程 / Agent 的打包。大部分由 AI Builder 通过沙箱工具 API 编写;偶尔人工编辑,始终版本化并被审计。
  2. 单一 Node.js 运行时,将元数据解释为一个可工作的应用 —— REST API、Console UI、权限、任务、AI 工具 —— 全部在同一个进程内,与你的数据库对话。

没有代码生成步骤,没有从 "用户描述需求" 到 "已上线" 之间的部署流水线。运行时在 HITL 审批后热加载新元数据。

你部署的是什么

每个 ObjectOS 实例对应一个 Node.js 进程。就这些。

┌─────────────────────────────────────────────────────┐
│                  ObjectOS 进程                       │
│  ┌───────────────────────────────────────────────┐  │
│  │   HTTP 分发器  (/ · /api · /_console …)         │  │
│  ├───────────────────────────────────────────────┤  │
│  │   每项目 ObjectKernel(LRU 缓存)              │  │
│  │   ├─ Auth (Better Auth)                       │  │
│  │   ├─ Security(RBAC + 行级 + 字段级)          │  │
│  │   ├─ ObjectQL(数据引擎,生成 SQL)            │  │
│  │   ├─ REST API 生成器                          │  │
│  │   └─ 按产物加载的能力                          │  │
│  │      (审计、存储、任务、队列、AI……)          │  │
│  └───────────────────────────────────────────────┘  │
└──────────┬──────────────────────────────────────────┘


   你的业务数据库
   (Postgres / MySQL / SQLite / Turso / MongoDB)

复杂度相当于一个静态链接的二进制。没有 sidecar、没有 Kafka、不需要独立缓存层。需要时再加;第一天别为它们付费。

你的数据存放在哪里

数据存放在是否离开你的网络?
业务记录你的数据库
用户账号、会话、OAuth Token你的数据库
审计日志你的数据库
设置、API Key、密钥你的数据库 / 密钥管理器
上传的文件你的磁盘或 S3/R2 桶
编译后的应用定义(objectstack.json磁盘上的一个文件,或从你的控制面拉取可选

ObjectOS 不会回拨电话。无遥测。无授权检查。如果你完全切断互联网,它会持续运行。参见 Air-gapped

一个请求如何被服务

1. 入口 / TLS 终结        (你的负载均衡器)
2. HTTP 分发器            (安全头、请求 ID)
3. 主机名 → 项目解析       (带缓存,TTL 可配)
4. 从 LRU 中获取或构建对应项目的内核
5. AuthPlugin    —— 会话 Cookie、Bearer Token 或 API Key
6. SecurityPlugin —— RBAC + 行级 + 字段级检查
7. 路由处理      —— 自动生成的 REST、声明式 Action 或自定义
8. 数据驱动      —— ObjectQL 编译为 SQL / Mongo 查询
9. 响应携带 X-Request-Id

内核热起来后,步骤 4-8 通常在 5ms 内执行完。

三个层级(只在你做集成时才重要)

大多数客户只部署 ObjectOS。如果你想知道产物从哪里来,另外两层就在这里:

层级是什么运行在哪
框架 (@objectstack/*)开源内核、ObjectQL、插件、驱动npm —— 构建时引入
控制面(可选)发布编译后的 objectstack.json 产物;可使用托管的 ObjectStack Cloud、自建,或完全不要你的 CI、我们的云,或你的笔记本
ObjectOS你运维的运行时你的基础设施

如果你只发布单个应用,根本不需要控制面 —— 在 CI 里把 objectstack.config.ts → dist/objectstack.json 编译出来打进镜像即可。如果你要运营一个面向多租户多应用的内部应用市场,目录就放在控制面。

启动模式

模式何时如何
Standalone单应用、开发、评估、气隙、大多数生产部署pnpm dev 或从磁盘运行 dist/objectstack.json
File-backed由外部管理产物的生产环境设置 OS_ARTIFACT_FILE=/path/to/objectstack.json
Cloud-connected由控制面驱动的多租户/多应用部署设置 OS_CLOUD_URL + OS_CLOUD_API_KEY

模式由环境变量自动检测。

性能特征

指标数值
冷启动(进程起来、可接流量)~1 秒
每个内核预热(首次请求该项目)50-300ms,视能力而定
热请求延迟(REST 走 CRUD)通常 < 10ms + 数据库延迟
内存占用基础 ~150MB;每个活跃项目内核 ~10-30MB
单实例并发项目数OS_KERNEL_CACHE_SIZE 限制(默认 32)

为什么是这种形态

  • 一个 Node 进程,无 sidecar → 适合 docker run、适合 systemd 单元、适合 Lambda 类环境。
  • 每项目内核,LRU 缓存 → 一个实例可以服务多个小应用,且不必为每次请求付预热成本。
  • 基于声明元数据生成 API → CI 中没有 codegen 步骤,无需发布客户端 SDK;API 按构造与你的数据模型一致。
  • 所有能力都是可选插件 → 镜像大小随你实际用到的部分而扩张。

下一步

On this page