Aller au contenu
TYPENouvelle primitive
ÉTAPEProduction
DIFFICULTÉSimple
MÉTIERBrancher un environnement
POURDevs backend
POURDevOps et infra
POURCréateurs d'IA
SERVICESSnapshots
SERVICESConteneurs
POURQUOI HOODYVoyage temporel par snapshot
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIsolation bare-metal
TYPENouvelle primitive
ÉTAPEProduction
DIFFICULTÉSimple
MÉTIERBrancher un environnement
POURDevs backend
POURDevOps et infra
POURCréateurs d'IA
SERVICESSnapshots
SERVICESConteneurs
POURQUOI HOODYVoyage temporel par snapshot
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIsolation bare-metal
TYPENouvelle primitive
ÉTAPEProduction
DIFFICULTÉSimple
MÉTIERBrancher un environnement
POURDevs backend
POURDevOps et infra
POURCréateurs d'IA
SERVICESSnapshots
SERVICESConteneurs
POURQUOI HOODYVoyage temporel par snapshot
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIsolation bare-metal
TYPENouvelle primitive
ÉTAPEProduction
DIFFICULTÉSimple
MÉTIERBrancher un environnement
POURDevs backend
POURDevOps et infra
POURCréateurs d'IA
SERVICESSnapshots
SERVICESConteneurs
POURQUOI HOODYVoyage temporel par snapshot
POURQUOI HOODYÉconomie des conteneurs
POURQUOI HOODYIsolation bare-metal
SNAPSHOTS · CODER DES ENVIRONNEMENTS DE DEV

Brancher des ordinateurs comme Git branche le code

Un snapshot fige un conteneur en marche — filesystem, processus, mémoire, file descriptors ouverts. Restauration en 5 à 15 secondes. Fork dans un conteneur séparé en un POST. Branching, mais pour la machine entière.

Doc snapshots

Ce qui est réellement capturé

Deux modes, choisissez selon l'état du conteneur au moment du snapshot. Stateful capture tout ; stateless ne capture que le filesystem.

EN MARCHEcréation 1 à 5 s · restauration 5 à 15 s

Stateful — conteneur en marche

  • Filesystem (delta CoW)Reflinks BTRFS ; les snapshots ultérieurs ne stockent que les blocs modifiés.
  • Arbre de processusLes daemons longue durée reprennent en cours d'exécution, pas au boot.
  • État mémoireHeap, stack, mmaps. Environ 4 GB de disque en plus pour le dump RAM.
  • File descriptors ouvertsSockets locaux et FDs survivent ; les pairs distants non.
  • Scrollback de terminalLes sessions tmux/screen vivantes reprennent en cours de ligne.
À L'ARRÊTcréation 1 à 5 s · cold start 5 à 15 s

Stateless — conteneur arrêté

  • Filesystem (delta CoW)Même modèle de stockage incrémental que le stateful.
  • Arbre de processusLe conteneur démarre à neuf depuis le filesystem capturé.
  • État mémoireAucune RAM dumpée — gain en disque et en temps.
  • File descriptors ouvertsRéouverts par les nouveaux processus au cold start.
  • Fichiers de base de donnéesPostgres / SQLite récupèrent depuis le WAL capturé.

Brancher, c'est un appel HTTP

Les snapshots sont des points d'alias nommés. /copy lance un conteneur séparé depuis n'importe lequel — mêmes données, timeline divergente.

iterm
# 1) Marquer le point de branch.
curl -X POST "https://api.hoody.com/api/v1/containers/$CID/snapshots" \
  -H "Authorization: Bearer $HOODY_TOKEN" \
  -d '{"alias": "pre-migration", "expiry": 30}'

# 2) Restaurer en place — ramener ce conteneur au snapshot.
curl -X PATCH "https://api.hoody.com/api/v1/containers/$CID/snapshots/snap-20260504-040255" \
  -H "Authorization: Bearer $HOODY_TOKEN"

# 3) Fork — lancer un conteneur SÉPARÉ depuis le même snapshot.
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":"snap-20260504-040255"}'

Restore ramène en place. Copy crée un conteneur indépendant qui vit pour son compte — autre ID, autre timeline, votre original continue de tourner. Dans les deux cas, c'est borné ; le stockage est incrémental, donc bon marché.

Flux de restaurationFenêtre de restauration · 5 à 15 secondes
0110:00Snapshot pris
0210:14La migration explose
0310:14:08Restauré

Ce que le modèle de branches débloque

Trois workflows qui étaient peu pratiques avec les snapshots VM et impossibles avec docker commit.

  1. 01

    Expérimentations parallèles

    Lancez N conteneurs depuis le même snapshot via /copy — essayez trois stratégies de migration en parallèle, gardez la gagnante.

  2. 02

    Pré-vol pour chaque deploy risqué

    POST un snapshot avant tout changement destructif. La restauration en sept secondes, c'est votre bouton undo pour la machine entière.

  3. 03

    Timeline durable

    Les alias sont des points de branch nommés. snapshot_count est dans l'API container. Le stockage est incrémental, donc bon marché à garder par dizaines.

Ce que ça remplace

Si vous vous tournez vers l'un de ceux-là pour récupérer d'un mauvais changement, le modèle snapshot fait le même boulot en 5 à 15 secondes avec un appel HTTP.

  • vm-snapshotsPlusieurs minutes à prendre, des GB de disque par snapshot
  • vagrantBoxes locales, pas d'état partagé, pas de restauration distante
  • docker commitFilesystem seul, pas de processus / pas de mémoire
  • backups manuelsrsync + une page wiki que personne ne lit
  • cycles pg_dumpDB seule, laisse le reste de la box dans un état pourri
  • repartir de zéro30+ minutes, casse votre session d'éditeur

Git vous a donné le branching pour le code. Hoody vous donne le branching pour des ordinateurs entiers.

Lire l'API snapshots

Lis les autres