Skip to content
Latchkey

O Que é um Deployment Unit? A Coisa Que Você de Fato Shipa

Um deployment unit é o menor artifact autocontido que você deploya, escala e faz rollback como uma única coisa.

Escolhas de arquitetura no fim se resumem ao que você shipa como uma peça só. Um monolith tem um grande deployment unit; um sistema de microservices tem muitos pequenos. O tamanho e as fronteiras dos seus deployment units determinam sua cadência de release, seu blast radius e o formato das suas pipelines, então vale nomear o conceito diretamente.

A unidade de deploy

Um deployment unit é o que é liberado junto: uma container image, uma serverless function, um serviço empacotado. Ele é deployado, versionado, escalado e revertido como um só. Suas fronteiras decidem o que precisa mudar junto e o que pode mudar de forma independente.

O tamanho é um trade-off

  • Units maiores: pipelines mais simples, mas releases grosseiras e blast radius maior.
  • Units menores: releases granulares e independentes, mas mais pipelines.
  • A fronteira determina o que deploya junto.
  • Ela molda com que frequência e quão seguramente você pode shipar.

Blast radius

Um deploy ruim afeta todo o seu unit. Um unit pequeno limita o dano a um serviço; um grande arrisca a aplicação inteira. Dimensionar units deliberadamente é em parte uma decisão sobre quanto um único deploy que falhou tem permissão de quebrar.

Uma pipeline por unit

Cada deployment unit tipicamente tem sua própria pipeline de build-test-deploy. O número e o tamanho dos seus units, portanto, definem diretamente quantas pipelines você mantém e quão independentes suas releases podem ser.

Imutável e versionado

Um bom deployment unit é imutável e versionado: uma dada versão é os mesmos bytes em todo lugar, então você pode promovê-lo entre ambientes e fazer rollback para uma versão anterior com confiança. Este é o princípio build-once, deploy-many aplicado ao unit.

Provisionamento por unit

Muitos units pequenos significam muitos deploys frequentes e os build jobs por trás deles. Runners quentes e de provisionamento rápido (como o Latchkey oferece) evitam que essa maior frequência de deploy fique gargalada no tempo de fila de build.

Principais conclusões

  • Um deployment unit é o menor artifact que você deploya e faz rollback como um só.
  • Seu tamanho troca simplicidade de pipeline por granularidade de release e blast radius.
  • Units imutáveis e versionados viabilizam promoção entre ambientes e rollback limpo.

Guias relacionados