
Sechzig Container auf einem Server
Eine Bare-Metal-Box führt Dutzende bis Hunderte von Hoody-Containern aus. KSM und BTRFS-Dedup machen die Marginalkosten nahezu null.
Ein Managed-Cron-Eintrag feuert @hourly. Er POSTet einen Snapshot mit dem Namen auto-h$(date +%H). Die Namen rotieren: auto-h00 bis auto-h23. Nach einem Tag überschreibt jeder neue Snapshot den von gestern zur gleichen Stunde — und du hast immer die letzten 24 Stunden des States, mit stündlicher Granularität.
{ "name": "hourly-2026-05-04-13", "alias": "auto-h13", "created_at": "13:00:04Z", "size": 1331691520 }
der Aufzug hält an 24 Etagen — die Stunde von gestern wird von der von heute überschrieben
Ein @hourly Managed Entry curlt die Snapshots-URL mit alias auto-h$(date +%H). Der Alias kollidiert absichtlich: Morgen um 13 Uhr wird auto-h13 von heute ersetzt. 24 benannte Slots, automatisch rotiert.
# Hoody Cron — plane einen stündlichen Snapshot. curl -X POST \ cron.containers.hoody.com/users/root/entries \ -H "Content-Type: application/json" \ -d '{ "schedule": "@hourly", "command": "curl -X POST $SNAP_URL -d '{\"alias\":\"auto-h$(date +%H)\"}'", "comment": "rolling 24h snapshot" }'
# Um 13:00 läuft der Cron — das ist der Request, den er sendet: curl -X POST \ api.hoody.com/api/v1/containers/$ID/snapshots \ -H "Authorization: Bearer $TOKEN" \ -d '{"alias": "auto-h13"}' # Antwort: → 200 OK · hourly-2026-05-04-13 created in 6s
Es gibt keine Retention-Policy und keinen Janitor — der Alias auto-h13 wird alle 24 Stunden wiederverwendet, und das ist es, was das Fenster rollen lässt. Die Hoody Snapshots API unterstützt ein optionales alias-Feld auf POST /api/v1/containers/[id]/snapshots; die Wiederverwendung ist der gesamte Mechanismus.
Vier Schritte, alle innerhalb eines einzigen curl. Vom Cron-Tick zum Snapshot in Sekunden.
Jeder Tick dauert Sekunden. Der Alias ist das Rotations-Primitive — durch Wiederverwendung desselben Namens 24 Stunden später wird der Snapshot auf dieser Etage in-place ersetzt.
Was du aufgibst, indem du das Backup-Runbook löschst, bekommst du als etwas Günstigeres und Ehrlicheres zurück.
Snapshots sind auf der Disk stateless; sie verbrennen weder CPU noch RAM, während sie dort liegen. Du zahlst für den Storage von 24 Kopien des Container-Diffs, nicht für einen Backup-Service, der die ganze Zeit läuft.
Wenn um 14:14 etwas schiefgeht, stellst du auto-h13 wieder her und bist zurück bei 13:00 — eine Minute bevor das Problem begann. Stündlich ist feinkörnig genug für Production-Rollback und grobkörnig genug, um das Ledger nicht zu ertränken.
Es gibt keine Lifecycle-Policy zu schreiben, keinen S3-Bucket zu provisionieren, kein jährliches Runbook-Review. Die Namenskonvention ist die Retention-Regel. Das feste Alias-Set ist das Audit.
24 Snapshots eines typischen Containers, mit stündlicher Granularität aufbewahrt. Die Zahlen kommen aus der Hoody Snapshots API und einem repräsentativen 1.2 GB Diff pro Stunde.
Jede Stunde ist ein benannter Slot. Nach Tag eins überschreibt jeder neue Snapshot den von gestern zur gleichen Stunde — die Anzahl wächst nie.
Ein Managed Entry, Schedule @hourly, Command curlt die Snapshots-URL mit alias auto-h$(date +%H). Das ist die gesamte Rotation.
Kein Prune-Job, keine expires_at-Policy, keine Lifecycle-Config. Die Alias-Kollision rotiert das Fenster in-place; nichts häuft sich an.
Gemäß Hoody Container Snapshots API: POST /api/v1/containers/[id]/snapshots akzeptiert ein optionales alias (max 100 Zeichen) und ein optionales expiry in Tagen. Diese Seite geht vom Standard-Snapshot-Pricing der Container und einem repräsentativen ~1.2 GB Diff pro stündlichem Capture aus; deine Größen variieren mit dem Workload.
Deine Zeitmaschine hat 24 Etagen und der Aufzug ist ein curl.
Die Standard-Greift-Tools, wenn du stündliche Point-in-Time-Recovery willst. Jedes davon stellt dir einen Service oder eine Retention-Policy in Rechnung. Das Cron + Alias-Modell stellt dir keines davon in Rechnung.
Lösch das Backup-Runbook. Plane den @hourly. Die letzten 24 Stunden deines Containers existieren als 24 benannte Etagen — und der Aufzug ist ein einziges curl.