
1 つのサーバーで 60 のコンテナ
1 つのベアメタルボックスで数十から数百の Hoody コンテナを実行。KSM と BTRFS のデデュプでマージナルコストはほぼゼロ。
03:00 のマイグレーションジョブの 5 分前に発火する hoody-cron エントリを追加します。snapshots URL を curl し、アーティファクトをロールバックポイントとしてタグ付けします。マイグレーションが失敗した場合、たった 1 つの PATCH で 30 秒以内に復元できます。
{ "name": "snap-2026-05-04", "alias": "rollback-point", "created_at": "02:55:08Z" }
1 晩、5 イベント、ページャー 0 件
cron サービスは curl をスケジュールします。snapshots サービスは凍結を行います。どちらも 5 分後に実行されるマイグレーションジョブのことを知らず、それこそが要点です。
# register the recurring snapshot job (one-time setup) curl -X POST \ cron.containers.hoody.com/users/root/entries \ -H "Content-Type: application/json" \ -d '{ "schedule": "55 2 * * *", "command": "curl -X POST $SNAP_URL -d '{\"alias\":\"rollback-point\"}'", "comment": "pre-migration snapshot" }'
# what the cron entry curls every night at 02:55 UTC curl -X POST \ api.hoody.com/api/v1/containers/$ID/snapshots \ -H "Authorization: Bearer $TOKEN" \ -d '{"alias": "rollback-point", "expiry": 7}' # response from the snapshots service → 200 OK · snap-2026-05-04 created in 8s
cron エントリは Hoody のどこかにある Postgres テーブルの 1 行です。snapshots URL はコンテナのストレージバックエンドにコンテンツアドレス指定の blob を書き込みます。どちらも永続的でバージョン管理されており、ノートパソコン上で長時間実行されるプロセスは必要ありません。
4 つの瞬間、4 つの URL、そしてセーフティネットと変更の間の 5 分間。マイグレーションは大半のエンジニアの最初のアラームより先に終わります。
ステップ 03 が失敗した場合、ロールバックは `PATCH /snapshots/snap-2026-05-04` で、02:55:08Z の状態に戻ります。上の監査タイムラインは同じデータを JSON として提供しています。
スナップショット自体ではありません。形です: 変更前に存在し、URL でアドレス指定され、今日の日付を含む名前を持つバックアップ。
ほとんどの障害ポストモーテムは「バックアップを取り忘れた」で始まります。バックアップが cron エントリなら、忘れることはできません。02:55 のスナップショットは、事前に書かれたランブックの最初の文です。
snap-2026-05-04 の復元は、api.hoody.com に対するたった 1 つの HTTP コールです。コンテナは 30 秒以内に 02:55:08Z の状態に戻ります。チケットなし、オンコールエスカレーションなし、「AWS コンソールは誰が持ってる?」もなし。
スナップショットはコンテンツアドレス指定で、差分として保存されます。変更されていないベースディスク上の 412 MB の差分が支払う対象であり、しかも 7 日間の保持期間のみです。成功したマイグレーションはほとんど痕跡を残しません。
ランブックがどんな形をしていたか、そしてスナップショットが今日の日付で命名され URL でアドレス指定可能になったとき、それがどう折りたたまれるか。
右側の新しい欄はツールではありません。ランブック内の 1 文です。バックアップはすでに存在しているので、その文は「まず、バックアップを取る」では始まりません。
ロールバック計画は、存在するようにスケジュールした URL です。
マイグレーション前のバックアップを巡るカーゴカルト。スナップショットをスケジュールし、マイグレーションウィンドウとともに眠ります。
ロールバック計画は、存在するようにスケジュールした URL です。