Pular para o conteúdo

Disponível para propostasGoiânia ou remoto

jnogxavier
Voltar aos casos

Infraestrutura que só existia no console

DevOps Engineer na BCJ, 2026

O que deveria acontecer

A infraestrutura está descrita em código, e qualquer ambiente pode ser reconstruído a partir do repositório.

O que acontecia

Rede, cluster e borda tinham sido criados à mão, pelo console. Funcionavam, e ninguém sabia reproduzi-los. As decisões que explicavam por que estavam daquele jeito viviam na memória de quem tinha clicado.

O que eu fiz

Nove módulos de Terraform cobrindo rede, roteamento, cluster gerenciado, borda e armazenamento, com estado em bucket e um workspace por ambiente. Entrou um guard rail que compara o workspace com o ambiente do arquivo de variáveis e faz o plan falhar antes de qualquer mudança, porque aplicar produção achando que é homologação é o erro que ninguém comete duas vezes. E sete decisões de arquitetura ficaram registradas como ADR, com o motivo e o que foi descartado.

tráfego externobordabalanceador e firewall, um por ambienteroteamento centralúnica porta para foraproduto Aclustersem endereço públicoproduto Bclustersem endereço públicogatewayas redes não se falam direto — o tráfego entre produtos sobe para a aplicação
Duas decisões carregam o desenho: uma porta só para fora, e produtos isolados entre si por padrão. O custo é que o gateway vira caminho obrigatório, com a latência e a criticidade que isso traz.

9módulos cobrindo rede, cluster e bordacontra nada versionado antes

O que isso destravou

  • A infraestrutura deixou de ser um objeto frágil. O pior caso passou a ser um apply, não uma arqueologia.
  • As decisões pararam de depender de memória. Sete ADRs explicam por que a borda é segregada, por que o roteamento é centralizado e por que o balanceador é provisionado pelo Kubernetes e não pelo Terraform.
  • Ambiente virou workspace com estado próprio, então mexer em homologação deixou de ter qualquer caminho até produção.

O que eu faria diferente

Comecei pela OCI porque era onde estava o cluster, e é onde estavam as partes móveis. Isso eu faria de novo. O que não terminou foi o resto: a AWS ficou de fora e continua fora. E é aí que mora a lição. Infraestrutura como código só paga quando cobre tudo que importa. Enquanto metade do parque está versionada e a outra metade continua no console, o pior caso não foi eliminado — só mudou de endereço. Hoje eu dimensionaria o programa pelo tempo que de fato existia, em vez de tratar cobertura total como consequência natural de ter começado bem.