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

Exemplo de Definição de Comando

cmds: {
build: {
default: {
runtime: "native"
script: "make build"
}
implementations: [
{
platforms: ["windows"]
runtime: "native"
script: "nmake build"
},
{
platforms: ["linux"]
runtime: "container"
container: {
image: "golang:1.21"
}
script: "make build"
}
]
}
}

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