Pular para o conteúdo
TipoNovo primitivo
EstágioProdução
DificuldadeSimples
TarefaAmbiente por branch
ParaDesenvolvedores backend
ParaDevOps e infra
ParaConstrutores de IA
ServiçosSnapshots
ServiçosContêineres
Por que HoodyViagem no tempo de snapshot
Por que HoodyEconomia de contêineres
Por que HoodyIsolamento bare-metal
TipoNovo primitivo
EstágioProdução
DificuldadeSimples
TarefaAmbiente por branch
ParaDesenvolvedores backend
ParaDevOps e infra
ParaConstrutores de IA
ServiçosSnapshots
ServiçosContêineres
Por que HoodyViagem no tempo de snapshot
Por que HoodyEconomia de contêineres
Por que HoodyIsolamento bare-metal
TipoNovo primitivo
EstágioProdução
DificuldadeSimples
TarefaAmbiente por branch
ParaDesenvolvedores backend
ParaDevOps e infra
ParaConstrutores de IA
ServiçosSnapshots
ServiçosContêineres
Por que HoodyViagem no tempo de snapshot
Por que HoodyEconomia de contêineres
Por que HoodyIsolamento bare-metal
TipoNovo primitivo
EstágioProdução
DificuldadeSimples
TarefaAmbiente por branch
ParaDesenvolvedores backend
ParaDevOps e infra
ParaConstrutores de IA
ServiçosSnapshots
ServiçosContêineres
Por que HoodyViagem no tempo de snapshot
Por que HoodyEconomia de contêineres
Por que HoodyIsolamento bare-metal
SNAPSHOTS · CRIE AMBIENTES DEV

Faça branch de computadores como o Git faz branch de código

Um snapshot congela um contêiner em execução — sistema de arquivos, processos, memória, descritores de arquivo abertos. Restaure em 5–15 segundos. Faça fork para um contêiner separado com um POST. Branching, mas da máquina inteira.

Docs de snapshots

O que realmente é capturado

Dois modos, decididos pelo estado do contêiner no momento do snapshot. Stateful captura tudo; stateless é apenas sistema de arquivos.

QUANDO EM EXECUÇÃOcriar 1–5 s · restaurar 5–15 s

Stateful — contêiner em execução

  • Sistema de arquivos (delta CoW)Reflinks BTRFS; snapshots posteriores armazenam apenas blocos alterados.
  • Árvore de processosDaemons de longa duração retomam a execução no meio, não na inicialização.
  • Estado da memóriaHeap, stack, mmaps. ~4 GB de disco extra para o dump de RAM.
  • Descritores de arquivo abertosSoquetes locais e FDs sobrevivem; peers remotos não.
  • Histórico de scrollback do terminalSessões tmux/screen ao vivo retomam no meio da linha.
QUANDO PARADOcriar 1–5 s · inicialização fria 5–15 s

Stateless — contêiner parado

  • Sistema de arquivos (delta CoW)Mesmo modelo de armazenamento incremental que stateful.
  • Árvore de processosO contêiner inicia fresco a partir do sistema de arquivos capturado.
  • Estado da memóriaNenhuma RAM é despejada — economiza disco e tempo.
  • Descritores de arquivo abertosReabertura por novos processos na inicialização fria.
  • Arquivos de banco de dadosPostgres / SQLite recuperam do WAL capturado.

Branching é uma chamada HTTP

Snapshots são pontos nomeados por alias. /copy sobe um contêiner separado a partir de qualquer um deles — mesmos dados, linha do tempo divergente.

iterm
# 1) Marque o ponto de ramificação.
curl -X POST "https://api.hoody.com/api/v1/containers/$CID/snapshots" \
  -H "Authorization: Bearer $HOODY_TOKEN" \
  -d '{"alias": "pre-migration", "expiry": 30}'

# 2) Restaure no local — reverta este contêiner para o snapshot.
curl -X PATCH "https://api.hoody.com/api/v1/containers/$CID/snapshots/snap-20260504-040255" \
  -H "Authorization: Bearer $HOODY_TOKEN"

# 3) Ramifique — gire um contêiner SEPARADO do mesmo 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"}'

Restaurar reverte no local. Copiar cria um contêiner independente que vive por conta própria — ID diferente, linha do tempo diferente, seu original continua em execução. De qualquer forma, é limitado; o armazenamento é incremental, então é barato.

Fluxo de restauraçãoJanela de restauração · 5 a 15 segundos
0110:00Snapshot tirado
0210:14Migração explode
0310:14:08Restaurado

O que o modelo de ramificação desbloqueia

Três workflows que eram impraticáveis com snapshots de VM e impossíveis com docker commit.

  1. 01

    Experimentos paralelos

    Gire N contêineres do mesmo snapshot via /copy — tente três estratégias de migração em paralelo, mantenha o vencedor.

  2. 02

    Pré-voo em cada implantação arriscada

    POST um snapshot antes de qualquer mudança destrutiva. A restauração de sete segundos é seu botão de desfazer para a máquina inteira.

  3. 03

    Linha do tempo durável

    Aliases são pontos de ramificação nomeados. snapshot_count está na API de contêiner. O armazenamento é incremental, então é barato manter dezenas.

O que isso substitui

Se você recorrer a qualquer um destes para recuperar de uma mudança ruim, o modelo de snapshot está fazendo o mesmo trabalho em 5–15 segundos com uma chamada HTTP.

  • vm-snapshotsMinutos para tirar, GBs de disco por snapshot
  • vagrantCaixas locais, sem estado compartilhado, sem restauração remota
  • docker commitApenas sistema de arquivos, sem processos / sem memória
  • backups manuaisrsync + uma página wiki que ninguém lê
  • pg_dump cyclesApenas DB, deixa o resto da caixa no meio do mau estado
  • reconstruir do zero30+ minutos, quebra sua sessão de editor

Git lhe deu ramificação para código. Hoody te dá ramificação para computadores inteiros.

Leia a API de snapshot

Leia os outros