Voltar ao portfólio
EN PT ES
Estudo de caso · Platform engineering · abril de 2026

Um lugar seguro para testar cada funcionalidade

Um piloto de dois repositórios para preview environments isolados, image promotion testada e cleanup automatizado.

Por Vitor SchiavoAtualizado em outubro de 2026~5 min de leitura
A solução em resumoUm preview é um ciclo de vida completo.
Pull requestFazer o build e testar a imagem
Preview isoladoValidar mudanças relacionadas
Promover & fazer cleanupReutilizar o digest da imagem

Piloto de dois repositórios: promova a imagem testada e remova os recursos de preview quando o PR for fechado.

Contribuição em resumo

Minha responsabilidade
Workflows de CI, ArgoCD ApplicationSets, configuração do Helm e ciclo de vida do preview.
Escopo
Um piloto de dois repositórios em Go/Node; a adoção mais ampla na empresa está fora do escopo entregue.
Colaboração & limites
Construí a integração de plataforma que conecta repositórios relacionados; o caso não afirma adoção pelos desenvolvedores em toda a organização.
Resultado
34 verificações antes dos builds, promoção verificada da mesma imagem e cleanup quando o pull request é fechado.

O problema

O QA dependia de ambientes compartilhados de desenvolvimento e staging. As funcionalidades muitas vezes só se encontravam após o merge, dificultando testar uma mudança de backend/frontend isoladamente e coordenar o trabalho entre times.

Minha contribuição

Construí um piloto de preview environment em um backend Go e um frontend Node. O trabalho abrangeu workflows de CI, ArgoCD ApplicationSets, configuração do Helm, ciclo de vida de namespace, TLS, integração entre as duas aplicações e o caminho de cleanup quando um pull request era fechado.

As decisões

Uma convenção compartilhada de nomes de branch permite que repositórios relacionados cheguem ao mesmo namespace de preview. Isso permite que um frontend alcance o backend correspondente por meio de um serviço interno, sem tratar cada repositório como uma demonstração isolada.

Separei os workflows de build/teste dos workflows de deploy. A promoção para produção e sandbox reutilizava a imagem de staging testada em vez de refazer o build. O digest da imagem era conferido entre os ambientes, de modo que promover significava mover o binário testado em vez de reproduzir um build e presumir equivalência.

Os previews usavam uma configuração de runtime deliberadamente menor que a dos ambientes persistentes. A criação era apenas metade da funcionalidade: fechar ou fazer o merge do pull request também precisava remover a aplicação, o namespace e as imagens de preview.

Um preview é um ciclo de vida, não apenas uma URL temporária
PR da funcionalidade e verificações automatizadasPreview isolado de backend + frontendValidação do QA e mergePromover a imagem testada; fazer cleanup dos recursos de preview

Validação

O piloto executou 34 verificações automatizadas antes dos builds: 16 para Go e 18 para Node. O cleanup foi exercitado de ponta a ponta, e a saúde e a sincronização das aplicações foram verificadas no ArgoCD. Testes separados verificaram a image promotion sem refazer o build.

Resultados e medição

O registro de conclusão documenta os dois repositórios do piloto percorrendo o fluxo de preview, oito aplicações do ArgoCD sincronizadas e saudáveis, e digests de imagem idênticos durante a promoção. Um caminho de push-to-deploy observado levou aproximadamente 2 minutos e 14 segundos; é uma observação do piloto, não uma garantia de tempo de deploy válida para toda a frota.

O escopo se limitou a dois repositórios do piloto. Adoção mais ampla, o tempo agregado economizado pelos desenvolvedores e mudanças na taxa de escape de defeitos não foram medidos neste registro. Um piloto concluído não estabelece adoção em toda a empresa nem um resultado de production hardening.

O que eu aprendi

Uma funcionalidade de plataforma se torna útil quando se conecta ao workflow do time. Namespaces de preview compartilhados, promoção confiável e cleanup explícito importaram tanto quanto criar o deploy inicial.

Decisões e próximos passos

Uma visão retrospectiva da abordagem e seus limites. A próxima melhoria é uma proposta, não um resultado entregue.

Alternativa e justificativa

Um staging compartilhado usa menos ambientes; previews isolados reduzem as colisões entre funcionalidades, mas exigem convenções de ciclo de vida e entre repositórios.

Trade-off

Um ambiente fácil de criar ainda precisa de promoção segura e cleanup confiável para evitar recursos obsoletos e gastos.

O que eu melhoraria em seguida

Próxima melhoria: medir a adoção, o tempo de prontidão do preview e o custo de recursos órfãos antes de expandir além do piloto.