跳转到内容
类型解锁
阶段船队
难度中等
工作多租户 SaaS
用于开发团队
用于个人创始人
服务容器
服务快照
服务Exec
为何选 Hoody容器经济学
为何选 Hoody裸金属隔离
类型解锁
阶段船队
难度中等
工作多租户 SaaS
用于开发团队
用于个人创始人
服务容器
服务快照
服务Exec
为何选 Hoody容器经济学
为何选 Hoody裸金属隔离
类型解锁
阶段船队
难度中等
工作多租户 SaaS
用于开发团队
用于个人创始人
服务容器
服务快照
服务Exec
为何选 Hoody容器经济学
为何选 Hoody裸金属隔离
类型解锁
阶段船队
难度中等
工作多租户 SaaS
用于开发团队
用于个人创始人
服务容器
服务快照
服务Exec
为何选 Hoody容器经济学
为何选 Hoody裸金属隔离
容器 · 多租户 SaaS · 舰队规模

舰队规模的按客户隔离沙箱

三台裸金属机器上跑着八百个隔离容器,每月 147 美元。每个客户都有自己的文件系统、自己的 URL、自己的内核命名空间。诚实的架构不再是昂贵的那一种。

阅读舰队文档

一次注册如何变成 812 个沙箱中的一个

你的计费 webhook 命中一个 Hoody Exec 脚本。脚本从模板快照复制一个全新的客户容器,新租户落到自己的 URL 上,舰队仪表盘加 1。三次 HTTP 调用,无需编排器。

01 · WEBHOOK

Stripe 调用你的 exec 端点

POST /webhooks/signup

一个 serverless V8 隔离环境。webhook URL 就是 scripts/1/ 下的一个 TypeScript 文件。无需 Express、无需服务器配置、无需自己跑一个容器。

02 · COPY

脚本克隆客户模板

POST /api/v1/containers/$TEMPLATE/copy

BTRFS 写时复制——只对每租户的增量收磁盘费。防火墙和网络规则随快照一同克隆。容器落在余量充足的舰队服务器上。

03 · ROUTE

新 URL 交还给用户

https://$PROJECT-$CID-...containers.hoody.com

签名的 authorize 端点签发一个一小时有效的 container_claim。你的应用把客户重定向进他们自己的沙箱。注册总耗时:不到 60 秒。

整条管线就是三次 HTTP 调用。无 Kubernetes operator、无 namespace YAML、无集群管理员。舰队添加租户的方式就像哈希表添加条目——只不过每个条目都是一个真正的 Linux 容器。

让舰队规模隔离便宜下来的算术

按租户定价的模型按租户收费。按服务器定价的模型按服务器收费。一旦数学换形,每租户 0.18 美元就成了现实下限——而且曲线随你扩张越来越平。

舰队账本 · 812 租户
# 三台裸金属节点,市场价3 flat-rate servers · one monthly bill# 在 eu-1、us-1、ap-1 之间混合摊算812 tenants (287 + 304 + 221)# 每租户成本因此坍缩bill ÷ 812 = cost shrinks as density grows

再加一百个租户不会改变账单——只会改变除数。KSM 在容器之间去重相同的内存页;BTRFS 写时复制让基础镜像字节保持共享。每个新容器只为它和模板的差异付费,不是整个栈。

每租户 · 其他栈
  • AWS FARGATE 每租户vCPU + 内存按 task 计费,即使闲置
    $8–25
  • K8S NAMESPACE 每租户集群开销在 namespace 之间摊销
    $3–10
  • 专属租户 POD预留 RAM + CPU,冷热都得付
    $5–15
  • HOODY · 每租户一个容器$147 / 812 —— 上限是机器,不是数量
    $0.18

Hoody 服务器价格由市场驱动,因区域、规格、供应商而异。示例舰队使用三台围绕已记录的 49 美元/月起步价位的节点;竞品估算是基于公开定价对可比的每租户算力的示意区间。密度假定典型 SaaS 工作负载——大多数时间闲置的租户。重型数据库或 AI 工作负载需要更大的每容器余量。

这个价位下「一租户一容器」解锁了什么

一旦隔离便宜下来,架构就不再妥协。原本被你的 CFO 否决的特性变成默认。

上手

每个新客户都只是一次 `cp`

Stripe webhook → Hoody Exec → POST /containers/$TEMPLATE/copy。新租户从其他每个租户启动时所用的同一个快照启动。基线一致,未来隔离。无需贯穿 tenant_id 列,无需担心忘了某一行共享数据。

下线

GDPR 删除只需一次 HTTP 调用

DELETE /api/v1/containers/$CID。文件系统没了,SQLite 没了,cron 任务没了,审计日志没了——因为它们都住在同一处。再也不需要「DELETE … WHERE tenant_id … 加上你忘了的另外 12 张表」。

爆炸半径

一个租户的 bug 留在那一个租户内

客户的失控脚本撞上自己容器的 CPU 和 RAM 配额。舰队上其余 811 个容器毫无察觉。无需吵闹邻居审计,无共享锁表,无共享连接池——内核命名空间替你做了应用层原本伪装的隔离工作。

按租户隔离过去要按租户付费。现在按服务器付。

过去$3–25 / 租户fargate、namespace 或专属 pod
现在$0.18 / 租户812 个沙箱 ÷ 3 台裸金属机器

这替换了什么

「按租户隔离」过去意味着要么写一个聪明的 WHERE 子句,要么承担一份按租户的账单。舰队规模的「一客户一容器」同时取代两者:

  • AWS Fargate 每租户vCPU + RAM 按 task 计费,冷热都得付
  • Kubernetes 每 namespace集群 + 控制面开销摊到每个租户
  • 带 tenant_id 过滤的共享多租户忘了一个 WHERE 就泄漏客户数据
  • Postgres row-level security 开销每张表都要策略,每条查询都要审计
  • 专属租户 pods预留算力,无论用没用都要付

八百个隔离租户,跑在你笔电就能替代的同一批服务器上。诚实的架构终于也是负担得起的那一种。

阅读容器指南

阅读其他内容