Skip to content
Latchkey

O que é um ambiente de deployment?

Um ambiente de deployment é um lugar distinto e isolado onde uma versão do seu software é executada, como desenvolvimento, staging ou produção.

Times raramente executam seu software em apenas um lugar. Eles usam uma série de ambientes, cada um servindo a um propósito diferente, para que as mudanças possam ser testadas sob condições cada vez mais realistas antes de chegarem aos usuários.

O que é um ambiente

Um ambiente de deployment é uma instância isolada da sua aplicação junto com sua infraestrutura e configuração. Cada ambiente é executado de forma independente, então uma mudança implantada em um não afeta outro. Os ambientes diferem principalmente em quão semelhantes à produção e quão expostos a usuários reais eles são.

Ambientes comuns

  • Desenvolvimento: onde engenheiros testam trabalho em andamento.
  • Testing ou CI: onde testes automatizados rodam a cada mudança.
  • Staging: um ambiente de ensaio semelhante à produção.
  • Produção: o ambiente ao vivo que atende usuários reais.

Como as mudanças transitam entre eles

Uma mudança é promovida de ambientes menos para mais semelhantes à produção, passando por verificações a cada passo. O mesmo artifact é tipicamente implantado em todos eles, com apenas a configuração diferindo, de modo que o que você testou cedo é o que chega à produção. Esse caminho de promoção é o pipeline de deployment.

Um exemplo

Uma nova feature é primeiro executada no ambiente de um desenvolvedor, depois implantada em staging onde testes end-to-end passam, e então promovida para produção. Exatamente o mesmo build transita por cada um; apenas a config específica do ambiente, como strings de conexão de banco de dados, muda.

Por que times usam vários

Múltiplos ambientes permitem que você detecte problemas progressivamente, primeiro em um lugar seguro, em vez de descobri-los na frente dos usuários. Manter os ambientes consistentes (frequentemente via infraestrutura como código) garante que passar em staging realmente prediz sucesso em produção.

Principais conclusões

  • Um ambiente é um lugar isolado onde uma versão do app é executada.
  • Times usam vários, de desenvolvimento passando por staging até produção.
  • Mudanças são promovidas por eles, tornando-se cada vez mais semelhantes à produção.

Guias relacionados