Pular para o conteúdo principal
Versão: 0.4.0

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​

Diagram: architecture/runtime-decision

Detalhes da Seleção de Plataforma​

Diagram: architecture/runtime-platform

Valores de Plataforma​

Valor da PlataformaCorresponde 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​

AspectoNativeVirtualContainer
VelocidadeMais rápidoRápidoMais lento (overhead)
IsolamentoNenhumProcessoCompleto
PortabilidadeDependente de plataformaAltaMais alta
Recursos do shellShell completo do hostSubconjunto POSIXCompleto (no container)
DependênciasShell do hostNenhumaDocker/Podman
Melhor paraScripts simplesMultiplataformaAmbientes complexos

Verificações de Disponibilidade de Runtime​

Runtime Native​

Diagram: architecture/runtime-native-check

Runtime Virtual​

Diagram: architecture/runtime-virtual-check

O runtime virtual está sempre disponível porque está embutido no binário do Invowk.

Runtime Container​

Diagram: architecture/runtime-container-check

Detalhes do Provisionamento de Container​

Quando o runtime container é selecionado, o Invowk cria uma camada efêmera de imagem:

Diagram: architecture/runtime-provision

Por Que Camadas Efêmeras?​

  1. Sem poluição de imagem: Imagens base ficam limpas
  2. Iteração rápida: Não precisa rebuild completo
  3. Portável: Comandos funcionam com qualquer imagem base compatível
  4. 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:

Diagram: architecture/runtime-ssh

Casos de uso:

  • Acessar secrets do host
  • Executar comandos apenas do host
  • Sincronização de arquivos

Diretrizes de Decisão​

Caso de UsoRuntime RecomendadoPor Quê
Scripts rápidosnativeMais rápido, sem overhead
Comandos multiplataformavirtualFunciona em todos os lugares
Pipelines CI/CDcontainerReproduzível
Comandos que precisam de ferramentas específicascontainerDependências isoladas
TUI interativonative ou virtualMelhor suporte a terminal

Diagramas Relacionados​