
一台服务器上运行 60 个容器
一个裸金属服务器运行数十到数百个 Hoody 容器。KSM 和 BTRFS 去重使边际成本接近零。
在 AWS 上,staging 会消亡,因为每一小时闲置都是计费小时。在 Hoody 上,闲置容器只占磁盘、不占 CPU——所以三周前你的评审同事碰过的那个 staging 还在,精确保留着他离开时的状态。坟场变成了工作集。
五个容器 · 总计约 54 个活跃日 · 五个环境仍可通过 URL 访问
三种状态、一行容器、一份账单。活跃状态烧 CPU。闲置状态什么也不烧。唤醒状态需要几百毫秒,然后你的 staging 就以你离开时的样子回来了。
你的队友登录着,调用着新接口,盯着仪表盘。容器的进程被调度,内存页是热的,CPU 时间是真实的。这是唯一会让你掏钱的状态。
容器被挂起。它的文件系统仍然可解析,它的磁盘增量仍然存在,它的代理域名仍然响应。但没有被调度的进程,没有分配的 CPU 配额,没有计费给你的内存。它只是数据库里的一行和一个内容寻址的 blob——两者都免费。
第一个抵达的请求会唤醒容器。同样的容器 ID、同样的环境变量、同样的卷、同样的 SSH 主机。评审同事留下的状态就是回来的状态。无需恢复脚本,无需重新供应,无需再花一天重建你删掉的东西。
Hoody 只对活跃状态计费。闲置状态是容器生命的其余部分——而这正是任何 staging 环境绝大多数时间所处的状态。这就是你不再为之付费的那个状态。
一旦闲置免费,你就不再做那些 staging 替你做出的决定。
三周前评审同事用过的环境还在那儿,被挂起,可通过容器 ID 寻址。CFO 看不到它,因为它不在账单里。原本以「三个砍俩」收尾的对话也就不再发生了。
评审同事 ping 一下 URL,容器醒来,会话恢复。无需重新供应、无需种子数据、无需等 Heroku dyno 从睡眠里醒过来。前一天下午的工作就是第二天下午的起点。
上季度的发布 staging、被废弃的支付重构、Q4 那个客户专属的演示——它们都以零成本继续活着。当有人问「我们还有那个环境吗?」时,答案是「有」。
一支永远开着的 staging 队伍在 AWS 发票上的条目,以及当闲置免费时,这些条目坍缩成了什么。
CFO 不会问那三个闲置环境的事,因为它们根本不出现。关于删它们的对话从未开始。
数字来自 Hoody Containers API 和快照模型——不是编造的基准。
闲置容器不收每小时费。你为已经租用的裸金属和快照存储的磁盘增量买单——两者都是定额、且都很小。
快照是内容寻址的,以增量方式存储。基础镜像在所有由它派生的容器之间共享;只有差异部分需要你付费。
GET /api/v1/containers/[id] 会解析被挂起的容器。第一个触达其代理域名的请求会唤醒它;你不再关注时它的状态,就是它返回时的状态。
根据 Hoody Containers API:容器以一行带 snapshot_count 和 last_used_snapshot 字段的记录形式存在。快照保留期默认遵循项目策略;expires_at 可按快照配置。
Staging 得以存活,因为让它活着不再花钱。
标准的「永远开着」staging 技术栈——以及围绕它生长出来的 cron 脚本和部落知识。每一项都按小时收费。Hoody 容器只按活跃小时收费,而 staging 的活跃时间几乎是空。
别再为了省钱删环境了。坟场现在是工作集。