
Soixante conteneurs sur un seul serveur
Une machine bare-metal exécute des dizaines à des centaines de conteneurs Hoody. La dédupplication KSM et BTRFS rend le coût marginal quasi nul.
Une entrée cron managée se déclenche @hourly. Elle envoie un POST d'un snapshot nommé auto-h$(date +%H). Les noms cyclent : auto-h00 jusqu'à auto-h23. Au bout d'un jour, chaque nouveau snapshot écrase celui de la veille à la même heure — et vous avez toujours les 24 dernières heures d'état, conservées à granularité horaire.
{ "name": "hourly-2026-05-04-13", "alias": "auto-h13", "created_at": "13:00:04Z", "size": 1331691520 }
l'ascenseur s'arrête à 24 étages — l'heure d'hier est écrasée par celle d'aujourd'hui
Une entrée managée @hourly fait un curl vers l'URL des snapshots avec l'alias auto-h$(date +%H). L'alias entre intentionnellement en collision : à 13h demain, auto-h13 d'aujourd'hui est remplacé. Vingt-quatre emplacements nommés, pivotés automatiquement.
# Hoody Cron — planifier un snapshot horaire. 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" }'
# À 13:00 le cron tourne — voici la requête qu'il envoie : curl -X POST \ api.hoody.com/api/v1/containers/$ID/snapshots \ -H "Authorization: Bearer $TOKEN" \ -d '{"alias": "auto-h13"}' # Réponse : → 200 OK · hourly-2026-05-04-13 created in 6s
Il n'y a pas de politique de rétention ni de janitor — l'alias auto-h13 est réutilisé toutes les 24 heures, ce qui fait rouler la fenêtre. L'API Hoody Snapshots prend en charge un champ alias optionnel sur POST /api/v1/containers/[id]/snapshots ; le réutiliser est tout le mécanisme.
Quatre étapes, toutes à l'intérieur d'un seul curl. Du tick cron au snapshot en quelques secondes.
Chaque tick prend quelques secondes. L'alias est la primitive de rotation — en réutilisant le même nom 24 heures plus tard, le snapshot à cet étage est remplacé sur place.
Ce que vous abandonnez en supprimant le runbook de sauvegarde, vous le récupérez sous une forme moins chère et plus honnête.
Les snapshots sont sans état sur disque ; ils ne consomment ni CPU ni RAM en restant là. Vous payez le stockage de 24 copies du diff du conteneur, pas un service de sauvegarde qui tourne en permanence.
Quand quelque chose tourne mal à 14:14, vous restaurez auto-h13 et vous êtes de retour à 13:00 — une minute avant que le problème ne commence. L'horaire est assez fin pour le rollback en production et assez grossier pour ne pas noyer le grand livre.
Il n'y a pas de politique de cycle de vie à écrire, pas de bucket S3 à provisionner, pas de revue de runbook annuelle. La convention de nommage est la règle de rétention. L'ensemble fixe d'alias est l'audit.
Vingt-quatre snapshots d'un conteneur typique, conservés à granularité horaire. Les chiffres viennent de l'API Hoody Snapshots et d'un diff représentatif de 1,2 Go par heure.
Chaque heure est un emplacement nommé. Après le premier jour, chaque nouveau snapshot écrase celui de la veille à la même heure — le compte ne grossit jamais.
Une entrée managée, planification @hourly, commande qui fait un curl vers l'URL des snapshots avec l'alias auto-h$(date +%H). C'est toute la rotation.
Pas de job de purge, pas de politique expires_at, pas de configuration de cycle de vie. La collision d'alias fait tourner la fenêtre sur place ; rien ne s'accumule.
Selon l'API Hoody Container Snapshots : POST /api/v1/containers/[id]/snapshots accepte un alias optionnel (max 100 caractères) et une expiration optionnelle en jours. Cette page suppose la tarification par défaut des snapshots de conteneurs et un diff représentatif d'environ 1,2 Go par capture horaire ; vos tailles varieront selon la charge de travail.
Votre machine à remonter le temps a 24 étages et l'ascenseur est un curl.
Les outils standards vers lesquels vous vous tournez quand vous voulez une récupération horaire à un point dans le temps. Chacun vous facture un service ou une politique de rétention. Le modèle cron + alias ne vous facture ni l'un ni l'autre.
Supprimez le runbook de sauvegarde. Planifiez le @hourly. Les 24 dernières heures de votre conteneur existent sous forme de 24 étages nommés — et l'ascenseur est un seul curl.