Skip to content
Latchkey

O Que É um Deployment?

Um deployment é o ato de pegar uma versão construída do seu software e colocá-la na infraestrutura onde ela vai rodar.

O deployment é a etapa em que o código deixa de ser um build artifact parado numa prateleira e passa a ser software rodando em servidores reais. É um dos momentos mais consequentes do ciclo de vida, e é por isso que as equipes trabalham duro para torná-lo rotineiro e reversível.

O que significa fazer deploy

Fazer deploy é instalar e ativar um build específico em um ambiente alvo: copiar o artifact para os servidores, atualizar a configuração, iniciar a nova versão e rotear o tráfego para ela. O ambiente pode ser staging, produção ou qualquer coisa entre os dois.

Como um deployment funciona

  • Selecionar o artifact (um build versionado) para fazer deploy.
  • Provisionar ou reutilizar o ambiente alvo e sua config.
  • Enviar o artifact e rodar quaisquer migrações de banco de dados.
  • Iniciar a nova versão e rodar checagens de saúde e smoke tests.
  • Transferir o tráfego, mantendo um caminho para fazer rollback.

Deployment versus release

Esses são frequentemente confundidos. Um deployment coloca código novo na infraestrutura; um release torna uma funcionalidade disponível aos usuários. Com feature flags você pode fazer deploy de código sem fazer release dele, depois ativar a funcionalidade mais tarde. Separar os dois reduz o risco: o deploy arriscado e a mudança voltada ao usuário acontecem em momentos diferentes.

Um exemplo

Um novo build de um app web é deployado em produção. A ferramenta de deployment inicia as novas instâncias, espera as checagens de saúde passarem e depois transfere gradualmente o tráfego da versão antiga para a nova. Se as taxas de erro disparam, o tráfego volta, um rollback automatizado.

Por que automatizar

Deployments manuais são lentos e fáceis de errar sob pressão. Deployments automatizados e scriptados são consistentes, rápidos e exercitados constantemente, o que os torna confiáveis. Estratégias como blue-green e canary deployments tornam o processo mais seguro ao limitar quanto é exposto a risco de uma vez.

Principais conclusões

  • Um deployment instala e ativa um build em um ambiente.
  • Fazer deploy de código é distinto de fazer release de uma funcionalidade para os usuários.
  • Automação e estratégias progressivas tornam os deployments seguros.

Guias relacionados