Índice do artigo
Resposta direta: GitLab Runner na VPS: Executor e Isolamento funciona melhor quando escolher executor e restringir jobs para não misturar build com produção. Para o cenário deste guia, use GitLab Runner em 17.x, reserve 12 GB de RAM, 6 vCPUs e 150 GB NVMe e mantenha 22/tcp para administração e 80/443 somente quando a aplicação for pública sob controle. Este artigo é para quem precisa operar e validar a solução.
Veja a infraestrutura: VPS para Docker, Portainer e Coolify para colocar este projeto no ar.
A recomendação é escolher executor e restringir jobs para não misturar build com produção. Não há benchmark novo neste lote: versões, portas, comandos e especificações dos planos são referências verificáveis; desempenho, disponibilidade e capacidade final devem ser medidos no ambiente real.
Quando este cenário faz sentido
Resposta curta: este cenário faz sentido quando escolher executor e restringir jobs para não misturar build com produção. Comece pelo fluxo que precisa funcionar, identifique dados persistentes e escreva o critério de sucesso antes de abrir portas ou aumentar recursos.
Objetivo operacional
O objetivo não é deixar um processo “online”, mas explicar a jornada completa: entrada, processamento, persistência, observabilidade e retorno. Em GitLab Runner, o ponto que muda a decisão é escolher executor e restringir jobs para não misturar build com produção. Registre versão, plano, horário e origem do teste.
Fronteira e responsabilidade
Separe aplicação, proxy, banco, fila, credenciais e backup. Mesmo em uma VPS única, as responsabilidades continuam distintas. runner próprio reduz espera em alguns fluxos, mas herda o risco do pipeline. Essa limitação precisa aparecer na documentação e no plano de retorno.
Requisitos e arquitetura de referência
Resposta curta: a referência usa 12 GB de RAM, 6 vCPUs e 150 GB NVMe para o servidor inteiro, incluindo sistema, GitLab Runner, logs e margem operacional. As portas são 22/tcp para administração e 80/443 somente quando a aplicação for pública; não transforme serviço interno em endpoint público sem justificativa.
Camadas observáveis
O caminho mínimo tem entrada, processo, dados e evidência. A entrada valida; o processo executa; a persistência grava; a observabilidade confirma. Se o teste só verifica a página inicial, ele não cobre a falha em que um job confiável acessa socket Docker e ganha poder sobre o host.
Dimensionamento sem promessa
O plano Performance é coerente com este recorte: 6 vCPUs, 12 GB de RAM, 150 GB NVMe e R$ 169/mês. Use concorrência, crescimento do disco, I/O e consumo observado para decidir upgrade. A especificação do plano não é um resultado de desempenho.
Comparação para escolher a abordagem
Resposta curta: escolha a alternativa que deixa claros controle, operação e limite. A tabela resume o trade-off de GitLab Runner; ela não substitui teste da sua carga.
| Abordagem | Benefício | Limite |
|---|---|---|
| Manual | controle | difícil repetir |
| Automatizada | consistência | validar |
| Gerenciada | menos operação | menos controle |
O ganho de informação desta comparação é mostrar onde a ferramenta resolve o problema e onde cria responsabilidade. Se ninguém consegue definir quem inspeciona logs, credenciais, filas ou restauração, a opção “simples” pode ser mais difícil de operar do que parece.
Como decidir pelo critério certo
Classifique o fluxo como teste, produção inicial ou operação crítica. Compare custo, acesso, backup, atualização e recuperação. Não escolha só pelo maior número de CPU: runner próprio reduz espera em alguns fluxos, mas herda o risco do pipeline e pode ser necessário corrigir a arquitetura antes de trocar de plano.
Passo a passo verificável
Resposta curta: implemente uma mudança por vez, capture o estado anterior e valide cada camada antes de publicar. Os comandos abaixo são modelos; substitua valores entre maiúsculas e revise permissões.
Preparar e inspecionar
- Registre versão, plano, portas e o estado atual de gitlab runner.
- Faça backup ou preserve a configuração anterior.
- Aplique a menor mudança para escolher executor e restringir jobs para não misturar build com produção.
- Valide caminho feliz, falha controlada, logs e persistência.
- Defina rollback e responsável antes do corte.
sudo ss -lntup
free -h
df -h
status e métricas de GitLab Runner
sudo journalctl --since "15 min ago" --no-pager
Configuração mínima e validação
# Substitua os placeholders antes de executar
export APP_DOMAIN="SEU-DOMINIO"
export SERVICE_USER="USUARIO_DO_SERVICO"
sudo systemctl --failed
sudo ss -lntup
curl -I --max-time 5 https://SEU-DOMINIO/health
echo "Registre o resultado e o rollback antes do corte."
O resultado observável deve incluir processo, rota ou endpoint, logs, espaço e persistência quando aplicável. Faça um teste feliz e um teste de falha controlada. Remova tokens, chaves e dados pessoais dos exemplos e registros compartilhados.
Como comprovar o resultado
Resposta curta: a evidência deste artigo é uma reproducible_procedure: o operador repete comandos e observa estado, logs e comportamento. Isso não prova que todos os ambientes terão o mesmo resultado.
Roteiro de evidência
Use comandos de status, logs e consumo para GitLab Runner e guarde horário, versão, plano, origem e resultado. Confirme também se escolher executor e restringir jobs para não misturar build com produção. Compare antes e depois; um serviço ativo isoladamente não basta.
Limites da conclusão
Este lote não apresenta clientes, medições de produção, percentuais de economia, uptime ou throughput inventados. A conclusão é limitada ao procedimento e à configuração descritos. Rede, versão, volume, concorrência, segurança e dependências externas podem mudar o resultado.
Registre a hipótese, o sinal esperado e o que realmente ocorreu; essa trilha de decisão é parte da evidência e evita transformar uma referência em promessa.
Erros comuns
Resposta curta: os erros mais caros são alterar várias camadas juntas, expor serviço interno, apagar evidência e confundir “sem erro no terminal” com fluxo saudável.
Falhas que parecem outra coisa
- Alterar várias camadas ao mesmo tempo.
- Expor serviço interno ou segredo no log.
- Usar processo ativo como prova de saúde.
- Ignorar o caso: um job confiável acessa socket docker e ganha poder sobre o host.
Checklist antes de publicar
- Versão, portas, usuário e diretórios registrados.
- Backup independente ou configuração anterior preservada.
- Teste feliz e falha controlada executados.
- Logs sem segredos e retenção compatível com o disco.
- Critério de rollback e responsável definidos.
Se a falha aparecer, pare o rollout, preserve logs, compare a configuração efetiva e retorne ao estado conhecido. Só depois revise escolher executor e restringir jobs para não misturar build com produção. Reiniciar tudo pode apagar o sinal que explicaria a causa.
Perguntas relacionadas
Para que serve GitLab Runner?
Neste recorte, GitLab Runner serve para escolher executor e restringir jobs para não misturar build com produção. Não é uma solução universal: versão, dados, rede, permissões e critério de sucesso precisam ser verificados no ambiente real.
Qual plano usar para GitLab Runner?
A referência é o plano Performance, com 6 vCPUs, 12 GB de RAM e 150 GB NVMe por R$ 169/mês. É ponto de partida coerente com o cenário, não garantia para toda carga.
Posso copiar os comandos diretamente?
Não sem revisão. Substitua placeholders, confirme domínios, caminhos, nomes e credenciais e execute primeiro em teste. Os comandos mostram um procedimento reproduzível, mas não foram executados na infraestrutura do leitor.
O que medir antes de fazer upgrade?
Registre CPU, memória, disco, erros, latência e o sinal específico de GitLab Runner. Relacione o sinal ao problema de escolher executor e restringir jobs para não misturar build com produção antes de aumentar o plano; hardware não corrige política, dependência ou configuração errada.
Próximo passo: testar e escolher o plano
Monte um ambiente controlado, execute o roteiro, salve a evidência e compare o consumo com o requisito. Para este artigo, a referência é o plano Performance, com 6 vCPUs, 12 GB de RAM, 150 GB NVMe e R$ 169/mês; confirme medindo sua carga, sem promessa universal.
Depois do teste, revise o Blog You Secure e veja o plano Performance para hospedar este cenário. A próxima decisão deve seguir a evidência que você registrou.
Experiência prática
O que foi testado na prática
Os dados abaixo representam o teste ou material fornecido para este artigo. Quando não houver evidência própria, esta seção não é exibida.
- Ambiente:
- Referência com GitLab Runner, 17.x, 12 GB de RAM, 6 vCPUs e 150 GB NVMe; nenhum teste de produção executado neste lote.
- Limitação:
- O resultado depende de versão, carga, rede, armazenamento, permissões e dependências externas; a referência não prova disponibilidade ou capacidade universal.
FAQ: perguntas frequentes
Para que serve GitLab Runner?
Neste recorte, GitLab Runner serve para escolher executor e restringir jobs para não misturar build com produção. Não é uma solução universal: versão, dados, rede, permissões e critério de sucesso precisam ser verificados no ambiente real.
Qual plano usar para GitLab Runner?
A referência é o plano Performance, com 6 vCPUs, 12 GB de RAM e 150 GB NVMe por R$ 169/mês. É ponto de partida coerente com o cenário, não garantia para toda carga.
Posso copiar os comandos diretamente?
Não sem revisão. Substitua placeholders, confirme domínios, caminhos, nomes e credenciais e execute primeiro em teste. Os comandos mostram um procedimento reproduzível, mas não foram executados na infraestrutura do leitor.
O que medir antes de fazer upgrade?
Registre CPU, memória, disco, erros, latência e o sinal específico de GitLab Runner. Relacione o sinal ao problema de escolher executor e restringir jobs para não misturar build com produção antes de aumentar o plano; hardware não corrige política, dependência ou configuração errada.
Como fazer rollback?
Preserve configuração anterior, backup e uma rota alternativa. Se escolher executor e restringir jobs para não misturar build com produção falhar, pare o corte, volte ao estado conhecido, valide os comandos e registre a causa antes de tentar novamente.
Preciso expor uma porta administrativa?
Não por padrão. As portas de referência são 22/tcp para administração e 80/443 somente quando a aplicação for pública; mantenha interfaces administrativas, bancos e filas em rede privada ou allowlist. Exponha somente o endpoint necessário.
Qual limite é fácil de ignorar?
O caso pouco óbvio é: um job confiável acessa socket Docker e ganha poder sobre o host. Ele mostra por que processo ativo ou teste feliz não basta; valide dependência, retorno, armazenamento e comportamento após reinício.
Qual é o próximo passo?
Monte ambiente de teste, execute o roteiro na ordem e salve os resultados. Confirme a evidência de GitLab Runner antes da janela de publicação ou de um upgrade.
Comentários (5)
Excelente explicação sobre async/await e concorrência! Tinha várias promessas encadeadas e agora o código está limpo e legível.
Excelente discussão sobre arquitetura limpa e separação de responsabilidades. Já adotei como padrão para os novos projetos.
Esse pattern realmente simplificou meu código! Refatorei um módulo inteiro seguindo essa abordagem e ficou muito mais manutenível.
As dicas de debug foram essenciais para encontrar um memory leak no meu aplicativo. O heap snapshot mostrou exatamente o problema.
Muito bom ver boas práticas de código em português! Implementei os testes unitários como sugeriu e a cobertura subiu consideravelmente.