Pular para o conteúdo principal
Versão: 0.3.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