
一台服务器上运行 60 个容器
一个裸金属服务器运行数十到数百个 Hoody 容器。KSM 和 BTRFS 去重使边际成本接近零。
停止在每个表中分散 tenant_id。当客户注册时,一个 exec 脚本复制一个新客户容器,并给他们自己的 URL、自己的文件系统、自己的 SQLite。隔离是他们之间的操作系统,而不是 WHERE 子句。
When a user signs up, this is what happens.
Each POST to /api/v1/projects/{id}/containers spins up an isolated environment. One call, one tenant, one URL handed back to your app.
Your Stripe (or any billing) webhook hits a Hoody Exec script. No Express, no server config — just a file in scripts/.
The new container has its own filesystem, its own SQLite, its own ramdisk. Tenant A literally cannot see tenant B's data.
The response includes a container URL. Your app redirects the user into their own sandbox in the same deploy window.
Container network and firewall rules are copied from your template. Every new tenant starts from the same security baseline.
Stop the container and it costs nothing. BTRFS keeps only the delta from your template — disk stays cheap even at scale.
One DELETE call removes the container and all their data. GDPR offboarding is not a script, it is a single HTTP call.
The whole flow is one webhook handler. No Kubernetes operator, no namespace YAML, no cluster admin. Three HTTP calls: webhook in, container out, URL to user.
传统选择要么是每张表上一个列,要么是你养不起的 VM 机群。Hoody 是第三种形状:容器便宜到能给每个客户都发一个。
多租户不再是架构问题。它变成了一条 `cp` 命令。
POST /containers/$TEMPLATE/copyDELETE /containers/$CIDPATCH /containers/$CID [ env_vars ]按租户隔离历来要么意味着一条聪明的 WHERE 子句,要么意味着一个昂贵的集群。每客户一个容器替换了那些常见变通:
空闲客户不花钱。活跃客户按需扩容。在你有数百付费用户之前,整个东西跑在 49 美元的裸金属上。