
一台服务器上运行 60 个容器
一个裸金属服务器运行数十到数百个 Hoody 容器。KSM 和 BTRFS 去重使边际成本接近零。
Heroku 上 11 个半成品副业项目就是 11 个每月 7 美元的 dyno。在 Hoody 上,11 个容器跑在一台 29 美元的机器上。闲置的不收费。终于有人去访问 2023 年写的国际象棋引擎时,URL 会在毫秒内唤醒容器。
12 个项目 · 1 台裸金属机器 · 闲置 = 0¢/小时
Hoody 容器是一台真正的 Linux 机器,不必运行也能保持低成本。大多数项目终其一生都待在中间那一列。
POST /containers/[id]/stop 让 CPU 和 RAM 降至零。只有磁盘上的 BTRFS 增量保留下来——通常只有几百兆。容器没了,但项目还在。
11 个项目大部分都待在这个状态。没有进程在运行,没有 RAM 被占用。机器唯一付费的就是文件系统,而 BTRFS 会在服务器上的所有容器之间对基础镜像去重。
对容器 URL 的一次 GET 会在 5–15 秒内完成冷启动(暂停状态则瞬时唤醒)。访客感知到短暂加载,请求落地,流量结束后容器又回到睡眠。
Hoody 给容器记录了三种生命周期操作:已停止(无 CPU、无 RAM,文件系统保留)、已暂停(冻结在 RAM 中)以及活动状态。已停止是坟场的天然休息状态——磁盘增量让项目以接近零的边际成本继续存活。
两个窗口。访客发出一次普通的 GET。容器启动、响应,然后回到睡眠。整个流程跑在项目一直使用的那个 Hoody URL 上。
POST /api/v1/containers/[id]/start 是显式的生命周期操作;通过容器的 HTTPS 主机名路由会自动触发同样的唤醒。没有单独的唤醒端点——访问 URL 就是唤醒。
当闲置免费时,这 11 个项目就不再是每月账单要不要付的问题,而只是一个文件夹。你过去要做的那些决定,不再需要做了。
在 1099 表格出来时给你发提醒的脚本一年只跑一次。在 7 美元/月的 dyno 上,每次触发要花 84 美元。在这里它睡 364 天,为一次 HTTP 调用唤醒,然后再睡。你都忘了写过它。它还在工作。
有人晚了两年才在 Hacker News 上看到你的 `recipe-tracker-2022` 博文。链接依然解析得到。容器唤醒、渲染页面,然后回到睡眠。你不会因为这次流量峰值收到 30 美元的账单。
在按应用计费的方案里,你在动手前就先在脑子里筛掉点子。在这里不必。把那个还没成形的东西推上去。忘掉它。多年后再找回来。打开 URL。它还在。
按应用收费会在你 11 个项目无人访问的每一秒都向你计费。按服务器收费只为机器收一次费,然后让项目在里面叠起来。
11 个 Heroku Eco dyno,每个约 7 美元;或 11 个 Render Web 服务。无论有没有人来访问,账单一样。
Hoody 服务器起价大约相当于两个 dyno 的钱。11 个容器装得下。第 12 个不再额外计费。
BTRFS 增量 + KSM 去重让一个已停止容器只占磁盘成本。睡眠状态不计费,机器才计费。
Hoody 市场价格因区域和规格而异;文档中的入门价格大约 20 美元/月起。容器密度取决于工作负载——轻量副业项目可以紧密堆叠,任何长期占用 RAM 的负载需要更多余量。
坟场不再是一笔托管账单了。它只是一个文件夹。
按应用计费的托管方案对每个休眠项目都收费。按服务器计费给坟场加了一个软上限。下面这些平台是按副业项目数量收费,而不是按服务器:
可以全部留下。限制是文件夹的容量,不是预算。