Definitions e Instances
Entenda como templates se transformam em containers rodando no servidor.
Conceitos
Definition
Uma definition é um template preenchido com parâmetros específicos. Ela representa a intenção de ter um serviço configurado de determinada forma.
Template MySQL 8.4
+
Parâmetros (senha, nome do banco, usuário)
=
Definition "mysql_meu_banco"Instance
Uma instance é a materialização de uma definition. Representa um container em execução no servidor.
Definition "mysql_meu_banco"
↓
Docker container rodando
=
Instance (container_id: abc123)Ciclo de Vida
┌─────────────┐
│ Template │
│ (Spec) │
└──────┬──────┘
│ deploy
▼
┌─────────────┐
│ Definition │←──────────────┐
│ (Pending) │ │
└──────┬──────┘ │
│ create │ update
▼ │
┌─────────────┐ │
│ Definition │───────────────┘
│ (Active) │
└──────┬──────┘
│
▼
┌─────────────┐
│ Instance │
│ (Running) │
└─────────────┘Estados da Definition
| Estado | Descrição |
|---|---|
pending |
Criada, aguardando deploy |
active |
Deploy realizado, container existe |
stopped |
Container parado intencionalmente |
error |
Falha no deploy ou execução |
deleted |
Marcada para remoção |
Estados da Instance
| Estado | Descrição |
|---|---|
running |
Container em execução |
stopped |
Container parado |
restarting |
Container reiniciando |
unhealthy |
Health check falhando |
removed |
Container não existe mais |
Criando uma Definition
Via CLI
deployally deploy --species mysql --version 8.4O CLI solicita os parâmetros e cria a definition automaticamente.
Parâmetros Interativos
? Nome do banco de dados: meu_banco
? Usuário do banco: meu_usuario
? Senha do banco: ********
? Profile [minimal/development/production]: development
Criando definition "mysql_meu_banco"...
Fazendo deploy...
Container criado com sucesso!Gerenciando Definitions
Listar Definitions
deployally definitions listSaída:
NAME TEMPLATE STATUS SERVER
mysql_meu_banco mysql:8.4 active servidor-01
redis_cache redis:7 active servidor-01
wordpress_site wp:6 pending servidor-02Ver Detalhes
deployally definitions show mysql_meu_bancoAtualizar Definition
deployally definitions update mysql_meu_banco --profile productionAtualizar uma definition cria uma nova revisão e pode recriar o container.
Remover Definition
deployally definitions delete mysql_meu_bancoRemove a definition e o container associado.
Revisions
Cada alteração em uma definition cria uma revisão:
mysql_meu_banco
├── revision 1: profile=development
├── revision 2: profile=production (atual)
└── revision 3: (rollback disponível)Ver Histórico
deployally definitions history mysql_meu_bancoRollback
deployally definitions rollback mysql_meu_banco --revision 1Sincronização
O DeployAlly mantém definitions e instances sincronizadas:
Definition Instance Ação
─────────────────────────────────────────────
active running OK
active stopped Restart
active removed Recreate
stopped running Stop
deleted running RemoveDetectando Drift
Se alguém modificar o container manualmente, o DeployAlly detecta a diferença:
deployally sync --checkSaída:
DEFINITION STATUS DRIFT
mysql_meu_banco active none
redis_cache active CONFIG_CHANGED
wordpress_site active CONTAINER_MISSINGCorrigir Drift
deployally sync --fixInstances
Ver Instances
deployally instances listSaída:
CONTAINER STATUS HEALTH UPTIME DEFINITION
mysql_meu_banco running healthy 2d 5h mysql_meu_banco
redis_cache running healthy 2d 5h redis_cacheLogs
deployally instances logs mysql_meu_bancoRestart
deployally instances restart mysql_meu_bancoExec
deployally instances exec mysql_meu_banco -- mysql -u root -pBoas Práticas
- Sempre use definitions: Não crie containers manualmente
- Use profiles: development, production conforme o ambiente
- Monitore drift: Execute
sync --checkregularmente - Versionamento: Acompanhe revisões para rollback
- Nomenclatura: Use nomes descritivos (
mysql_app_principal)
Próximos Passos
- Referência CLI - Todos os comandos disponíveis
- Templates - Entenda a estrutura de templates
By Borlot.com.br on 13/02/2026