Ir al contenido
use-cases / rolling-24h-snapshots / hero
CRON · SNAPSHOTS · 24 RODANTES

Conserva las últimas 24 horas como 24 snapshots

Una entrada de cron gestionada se dispara @hourly. Hace POST de una snapshot llamada auto-h$(date +%H). Los nombres ciclan: auto-h00 a auto-h23. Tras un día, cada nueva snapshot sobrescribe la de ayer a la misma hora — y siempre tienes las últimas 24 horas de estado, retenidas con granularidad horaria.

use-cases / rolling-24h-snapshots / mechanism

Una línea de cron, una convención de nombres

Una entrada gestionada @hourly hace curl a la URL de snapshots con alias auto-h$(date +%H). El alias colisiona a propósito: a las 13 de mañana, auto-h13 de hoy es reemplazada. Veinticuatro slots con nombre, rotados automáticamente.

entrada cron · @hourly
POST · cron/entries
# Hoody Cron — programa una snapshot horaria.
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"
  }'
el nombre de la hora es la clave de rotación
URL de snapshot · lo que el cron golpea de verdad
POST · containers/[id]/snapshots
# A las 13:00 corre el cron — esta es la petición que envía:
curl -X POST \
  api.hoody.com/api/v1/containers/$ID/snapshots \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"alias": "auto-h13"}'

# Respuesta:
200 OK · hourly-2026-05-04-13 created in 6s

No hay política de retención ni conserje — el alias auto-h13 se reutiliza cada 24 horas, que es lo que hace rodar la ventana. La API de Hoody Snapshots soporta un campo alias opcional en POST /api/v1/containers/[id]/snapshots; reutilizarlo es todo el mecanismo.

use-cases / rolling-24h-snapshots / anatomy

Anatomía de una hora rodante

Cuatro pasos, todos dentro de un único curl. Del tick del cron a la snapshot en segundos.

0113:00:00Salta el tick de cron@hourly · entrada gestionada
0213:00:04Snapshot enviada por POSTalias auto-h13
0313:00:06Planta materializadahourly-2026-05-04-13
04+24hEl mismo alias la sobrescribeno hace falta conserje

Cada tick tarda segundos. El alias es la primitiva de rotación — al reutilizar el mismo nombre 24 horas después, la snapshot de esa planta se reemplaza en el sitio.

use-cases / rolling-24h-snapshots / powers

Tres poderes de una máquina del tiempo de 24 plantas

Lo que renuncias borrando el runbook de backup, lo recuperas como algo más barato y más honesto.

ECONOMÍA

Las snapshots inactivas casi no cuestan

Las snapshots no consumen estado en disco; no queman CPU ni RAM mientras están ahí. Pagas por el almacenamiento de 24 copias del diff del contenedor, no por un servicio de backup que corre todo el tiempo.

GRANULARIDAD

Una hora es la unidad del arrepentimiento

Cuando algo va mal a las 14:14, restauras auto-h13 y vuelves a las 13:00 — un minuto antes de que empezara el problema. Una hora es lo bastante fina para un rollback de producción y lo bastante gruesa para no ahogar el libro mayor.

OPERACIONES

Sin reglas de retención, sin auditoría

No hay política de ciclo de vida que escribir, ni bucket S3 que aprovisionar, ni revisión anual de runbook. La convención de nombres es la regla de retención. El conjunto fijo de alias es la auditoría.

use-cases / rolling-24h-snapshots / economics

Cuánto cuesta la ventana rodante

Veinticuatro snapshots de un contenedor típico, retenidas con granularidad horaria. Los números salen de la API de Hoody Snapshots y de un diff representativo de 1,2 GB por hora.

  1. PLANTAS RETENIDAS24

    Cada hora es un slot con nombre. Después del primer día, cada nueva snapshot sobrescribe la de ayer a la misma hora — el contador nunca crece.

  2. DE CRONTAB1 línea

    Una entrada gestionada, schedule @hourly, comando hace curl a la URL de snapshots con alias auto-h$(date +%H). Esa es toda la rotación.

  3. CONSERJES0

    Sin trabajo de poda, sin política expires_at, sin configuración de ciclo de vida. La colisión de alias rota la ventana en el sitio; nada se acumula.

Según la API de Hoody Container Snapshots: POST /api/v1/containers/[id]/snapshots acepta un alias opcional (máx. 100 caracteres) y una expiración opcional en días. Esta página asume el precio por defecto de snapshots de contenedores y un diff representativo de ~1,2 GB por captura horaria; tus tamaños variarán según la carga de trabajo.

use-cases / rolling-24h-snapshots / punchline

Tu máquina del tiempo tiene 24 plantas y el ascensor es un curl.

antes · software de backupdespués · una línea de cron
CÓMO SOLÍA VERSEsnapshots de RDS + política de ciclo de vida + bucket S3 + auditoría anualcuatro piezas móviles · facturación por GB-día · página de runbook
CÓMO SE VE AHORA@hourly curl POST snapshots -d '["alias":"auto-h$(date +%H)"]'una línea de cron · una convención de nombres · 24 plantas
use-cases / rolling-24h-snapshots / replaces

Lo que esto reemplaza

Las herramientas estándar a las que recurres cuando quieres recuperación punto-en-tiempo horaria. Cada una te cobra un servicio o una política de retención. El modelo cron + alias no te cobra ninguna.

  • snapshots de AWS RDSFacturación por GB-día por una ventana que puedes rotar tú mismo
  • trabajos cron de pgBackRestUna herramienta de backup, un archivo de configuración y un daemon para lo que es un curl
  • scripts propios de dump-y-rotaciónBash frágil que lista, ordena y poda por mtime
  • trabajos de backup S3 lanzados por cronPolíticas de ciclo de vida, versionado de bucket y un rol IAM que mantener
  • herramientas de snapshot BTRFSSnapshots a nivel de sistema de archivos que necesitan un host que controlas
  • Restic + cronUn binario, un repo, un archivo de contraseña y una política de retención
use-cases / rolling-24h-snapshots / cta

Borra el runbook de backup. Programa el @hourly. Las últimas 24 horas de tu contenedor existen como 24 plantas con nombre — y el ascensor es un único curl.

use-cases / rolling-24h-snapshots / related

Lee los otros