
一台服务器上运行 60 个容器
一个裸金属服务器运行数十到数百个 Hoody 容器。KSM 和 BTRFS 去重使边际成本接近零。
快照冻结一个运行中的容器 — 文件系统、进程、内存、开放的文件描述符。在 5-15 秒内还原。用一个 POST 分叉到单独的容器。分支,但针对整台机器。
每次提交都是一台完整的计算机 · 哈希值是容器 ID · 分支是整个机器状态的分叉
两种模式,由快照时容器的状态决定。有状态捕获一切;无状态仅捕获文件系统。
快照是命名的别名点。/copy 从任何一个快照启动独立容器——相同的数据,分叉的时间线。
# 1) 标记分支点。
curl -X POST "https://api.hoody.com/api/v1/containers/$CID/snapshots" \
-H "Authorization: Bearer $HOODY_TOKEN" \
-d '["alias": "pre-migration", "expiry": 30]'
# 2) 就地恢复——将此容器恢复到快照。
curl -X PATCH "https://api.hoody.com/api/v1/containers/$CID/snapshots/pre-migration" \
-H "Authorization: Bearer $HOODY_TOKEN"
# 3) 分叉——从相同快照生成独立容器。
curl -X POST "https://api.hoody.com/api/v1/containers/$CID/copy" \
-H "Authorization: Bearer $HOODY_TOKEN" \
-d '["target_project_id":"prod","name":"experiment-a","source_snapshot":"pre-migration"]'恢复就地还原。复制创建独立容器,存在于自己的时间线——不同的 ID、不同的时间线、原始容器继续运行。无论哪种方式,都是有界的;存储是增量的,所以成本低廉。
三个工作流,用 VM 快照不太实用,用 docker commit 不可能。
通过 /copy 从相同快照生成 N 个容器——尝试三种迁移策略并行,保留赢家。
在任何破坏性更改前 POST 快照。7 秒恢复是你整个机器的撤销按钮。
别名是命名的分支点。snapshot_count 在容器 API 中。存储是增量的,所以保留数十个成本低廉。
如果你依赖任何这些来从坏的更改恢复,快照模型在 5-15 秒内用一个 HTTP 调用做相同的工作。
Git 给你代码分支。Hoody 给你整个计算机的分支。