跳转到内容
类型解锁
阶段船队
难度简单
工作成本优化
用于个人创始人
服务容器
为何选 Hoody容器经济学
类型解锁
阶段船队
难度简单
工作成本优化
用于个人创始人
服务容器
为何选 Hoody容器经济学
类型解锁
阶段船队
难度简单
工作成本优化
用于个人创始人
服务容器
为何选 Hoody容器经济学
类型解锁
阶段船队
难度简单
工作成本优化
用于个人创始人
服务容器
为何选 Hoody容器经济学
容器 · 成本优化

让兴趣项目坟场也养得起的方案

Heroku 上 11 个半成品副业项目就是 11 个每月 7 美元的 dyno。在 Hoody 上,11 个容器跑在一台 29 美元的机器上。闲置的不收费。终于有人去访问 2023 年写的国际象棋引擎时,URL 会在毫秒内唤醒容器。

容器文档

三种状态,一张账单

Hoody 容器是一台真正的 Linux 机器,不必运行也能保持低成本。大多数项目终其一生都待在中间那一列。

状态 · 已停止

仅文件系统

POST /containers/[id]/stop 让 CPU 和 RAM 降至零。只有磁盘上的 BTRFS 增量保留下来——通常只有几百兆。容器没了,但项目还在。

成本仅磁盘
状态 · 闲置

无人访问就关停

11 个项目大部分都待在这个状态。没有进程在运行,没有 RAM 被占用。机器唯一付费的就是文件系统,而 BTRFS 会在服务器上的所有容器之间对基础镜像去重。

成本≈ 0¢ / 小时
状态 · 活动

请求到达即唤醒

对容器 URL 的一次 GET 会在 5–15 秒内完成冷启动(暂停状态则瞬时唤醒)。访客感知到短暂加载,请求落地,流量结束后容器又回到睡眠。

唤醒< 15 秒

Hoody 给容器记录了三种生命周期操作:已停止(无 CPU、无 RAM,文件系统保留)、已暂停(冻结在 RAM 中)以及活动状态。已停止是坟场的天然休息状态——磁盘增量让项目以接近零的边际成本继续存活。

终于有人来访问时会发生什么

两个窗口。访客发出一次普通的 GET。容器启动、响应,然后回到睡眠。整个流程跑在项目一直使用的那个 Hoody URL 上。

visitor.curl
访客 · 2023 年的旧链接
# 有人点开了一个旧 README 里的链接GET https://chess-engine.containers.hoody.com/# 冷启动唤醒后的响应 200 OK · text/html · 4.2 kB# 总耗时:0.41 秒
containers/$CID/start
服务器 · 容器生命周期
# 服务端唤醒追踪[t+0ms] rootfs 挂载(BTRFS 子卷)[t+8ms] 命名空间 + cgroup 附加[t+34ms] init pid 1 → systemd(或你的 CMD)[t+72ms] 200 OK ← 请求交给应用# 闲置超时后回到已停止

POST /api/v1/containers/[id]/start 是显式的生命周期操作;通过容器的 HTTPS 主机名路由会自动触发同样的唤醒。没有单独的唤醒端点——访问 URL 就是唤醒。

你不必再亲手了结的项目

当闲置免费时,这 11 个项目就不再是每月账单要不要付的问题,而只是一个文件夹。你过去要做的那些决定,不再需要做了。

一年触发两次的脚本

报税季触发的提醒脚本依然能触发

在 1099 表格出来时给你发提醒的脚本一年只跑一次。在 7 美元/月的 dyno 上,每次触发要花 84 美元。在这里它睡 364 天,为一次 HTTP 调用唤醒,然后再睡。你都忘了写过它。它还在工作。

分享链接

现在还有人在读 2022 年的 demo

有人晚了两年才在 Hacker News 上看到你的 `recipe-tracker-2022` 博文。链接依然解析得到。容器唤醒、渲染页面,然后回到睡眠。你不会因为这次流量峰值收到 30 美元的账单。

创意余地

你不再提前掐死项目

在按应用计费的方案里,你在动手前就先在脑子里筛掉点子。在这里不必。把那个还没成形的东西推上去。忘掉它。多年后再找回来。打开 URL。它还在。

账单的形态

按应用收费会在你 11 个项目无人访问的每一秒都向你计费。按服务器收费只为机器收一次费,然后让项目在里面叠起来。

  1. 按应用堆栈 · 之前$77/月

    11 个 Heroku Eco dyno,每个约 7 美元;或 11 个 Render Web 服务。无论有没有人来访问,账单一样。

  2. 一台裸金属机器$29/月

    Hoody 服务器起价大约相当于两个 dyno 的钱。11 个容器装得下。第 12 个不再额外计费。

  3. 闲置容器成本0¢/小时

    BTRFS 增量 + KSM 去重让一个已停止容器只占磁盘成本。睡眠状态不计费,机器才计费。

Hoody 市场价格因区域和规格而异;文档中的入门价格大约 20 美元/月起。容器密度取决于工作负载——轻量副业项目可以紧密堆叠,任何长期占用 RAM 的负载需要更多余量。

坟场不再是一笔托管账单了。它只是一个文件夹。

之前 · 11 张账单之后 · 一台机器 + 一个文件夹
之前 · 按应用11 个 dyno × $7 = $77/月11 张发票 · 按应用做下线决定
现在 · 按服务器1 台机器 × $29 = $29/月一张发票 · 容器来来去去
阅读容器文档

本方案替代了什么

按应用计费的托管方案对每个休眠项目都收费。按服务器计费给坟场加了一个软上限。下面这些平台是按副业项目数量收费,而不是按服务器:

  • Heroku Eco / Basic dyno每个 dyno、每个应用、每月 5–7 美元——即使闲置也照收
  • DigitalOcean droplet按 VM 计费迫使你把项目挤到更少的机器上
  • Render Web 服务免费档会进入睡眠并冷启动;付费档按服务计费
  • Railway按服务用量计费——11 个服务,11 个计数器
  • Fly.io machines按应用计费;自动停机有用,但仍是按应用
  • Vercel 免费档闲置兴趣项目有冷启动惩罚,还有 serverless 账单的意外

可以全部留下。限制是文件夹的容量,不是预算。

阅读容器指南

阅读其他内容