Fluxograma de Seleção de Runtime
Este diagrama documenta a árvore de decisão para selecionar qual runtime executa um comando. Entender isso ajuda usuários a escolher o runtime certo para seu caso de uso.
Fluxograma de Decisão
Detalhes da Seleção de Plataforma
Valores de Plataforma
| Valor da Plataforma | Corresponde Em |
|---|---|
"linux" | Sistemas Linux |
"macos" | Sistemas macOS |
"windows" | Sistemas Windows |
observação
Pelo menos uma plataforma deve ser especificada por implementação. Não há atalho para "todas as plataformas" — liste cada plataforma alvo explicitamente.
Exemplo de Definição de Comando
cmds: [{
name: "build"
implementations: [
{
script: "nmake build"
runtimes: [{name: "native"}]
platforms: [{name: "windows"}]
},
{
script: "make build"
runtimes: [{name: "container", image: "golang:1.26"}]
platforms: [{name: "linux"}]
},
{
script: "make build"
runtimes: [{name: "native"}]
platforms: [{name: "macos"}]
},
]
}]
Comparação de Runtimes
| Aspecto | Native | Virtual | Container |
|---|---|---|---|
| Velocidade | Mais rápido | Rápido | Mais lento (overhead) |
| Isolamento | Nenhum | Processo | Completo |
| Portabilidade | Dependente de plataforma | Alta | Mais alta |
| Recursos do shell | Shell completo do host | Subconjunto POSIX | Completo (no container) |
| Dependências | Shell do host | Nenhuma | Docker/Podman |
| Melhor para | Scripts simples | Multiplataforma | Ambientes complexos |
Verificações de Disponibilidade de Runtime
Runtime Native
Runtime Virtual
O runtime virtual está sempre disponível porque está embutido no binário do Invowk.
Runtime Container
Detalhes do Provisionamento de Container
Quando o runtime container é selecionado, o Invowk cria uma camada efêmera de imagem:
Por Que Camadas Efêmeras?
- Sem poluição de imagem: Imagens base ficam limpas
- Iteração rápida: Não precisa rebuild completo
- Portável: Comandos funcionam com qualquer imagem base compatível
- Seguro: Binário do Invowk é injetado, não instalado na imagem
Servidor SSH para Callbacks
Quando enable_host_ssh: true é definido, o Invowk inicia um servidor SSH temporário:
Casos de uso:
- Acessar secrets do host
- Executar comandos apenas do host
- Sincronização de arquivos
Diretrizes de Decisão
| Caso de Uso | Runtime Recomendado | Por Quê |
|---|---|---|
| Scripts rápidos | native | Mais rápido, sem overhead |
| Comandos multiplataforma | virtual | Funciona em todos os lugares |
| Pipelines CI/CD | container | Reproduzível |
| Comandos que precisam de ferramentas específicas | container | Dependências isoladas |
| TUI interativo | native ou virtual | Melhor suporte a terminal |
Diagramas Relacionados
- Sequência de Execução de Comando - Fluxo completo de execução
- Diagrama C4 de Container - Relacionamentos entre componentes de runtime
- Fluxograma de Precedência de Descoberta - Como comandos são encontrados