Skip to content
Latchkey

O que é infraestrutura imutável?

A infraestrutura imutável é uma abordagem em que os servidores nunca são modificados após o deploy; para alterá-los, você constrói uma nova versão e substitui a antiga por completo.

Os servidores tradicionais são atualizados no lugar: você faz SSH, aplica patches em pacotes, ajusta configurações. A infraestrutura imutável rejeita isso. Em vez disso, cada mudança produz um artifact totalmente novo e completamente construído que substitui o que está em execução, o que torna os deploys previsíveis e elimina toda uma classe de drift.

Mutável versus imutável

Os servidores mutáveis têm vida longa e são modificados continuamente ao longo de sua existência. Os servidores imutáveis nunca são alterados uma vez em execução - um novo requisito significa construir uma imagem nova e trocá-la. A frota em execução sempre corresponde a uma definição conhecida e versionada, sem edições manuais acumuladas.

Como funciona na prática

Você monta uma imagem de máquina completa (ou container image) contendo o SO, as dependências e a aplicação, a versiona e faz deploy de instâncias a partir dela. Para atualizar qualquer coisa, você constrói uma nova imagem e faz seu rollout, aposentando as instâncias antigas. A imagem, e não o servidor em execução, é a unidade de mudança.

Por que previne drift

O drift de configuração se acumula a partir de mudanças no lugar ao longo do tempo; a infraestrutura imutável torna tais mudanças impossíveis por construção. Como os servidores nunca são modificados após o lançamento, eles não podem divergir de sua definição, e cada instância construída a partir da mesma imagem é idêntica.

Benefícios de confiabilidade

Os deploys imutáveis são altamente repetíveis: a imagem que você testou é exatamente a imagem que você executa, então surpresas do tipo "funciona no staging, falha em produção" diminuem. O rollback também é trivial - basta fazer o redeploy da imagem anterior. E substituir em vez de aplicar patches significa que a recuperação de um host ruim é simplesmente lançar um novo.

Trade-offs

A abordagem exige uma automação sólida de construção de imagens e funciona melhor para cargas de trabalho stateless; o estado persistente precisa viver fora das instâncias imutáveis, em bancos de dados ou armazenamento anexado. Reconstruir a cada mudança também dá grande importância a build pipelines rápidos e confiáveis, capazes de produzir imagens com agilidade.

Principais conclusões

  • A infraestrutura imutável substitui servidores em vez de modificá-los no lugar.
  • Ela elimina o drift de configuração porque as instâncias nunca são alteradas após o lançamento.
  • Ela viabiliza deploys repetíveis e rollbacks triviais, mas exige forte automação de imagens.

Guias relacionados