Pular para o conteúdo principal

Conceitointermediário

Gestão de Releases

Visão Geral

Gestão de releases é a coordenação em torno do que vai para os usuários: o que entra, quando, com qual comunicação, e o que acontece se der errado.

Com entrega contínua, boa parte da coordenação tradicional deixa de fazer sentido — e frequentemente permanece por hábito.

O trabalho é separar as duas coisas: a coordenação que ainda é necessária e a cerimônia herdada de um contexto onde implantar era caro e arriscado.

Problema

O processo tradicional foi desenhado para um mundo em que implantar era um evento: janela de manutenção, lote grande de mudanças, aprovações em cadeia, plano de reversão manual.

Quando a implantação passa a levar minutos e a reversão a ser automática, esse processo continua existindo — e vira o gargalo.

O sintoma reconhecível: a esteira leva 8 minutos, e a mudança leva 11 dias para chegar em produção. Nenhum desses 11 dias é técnico.

Conceitos Centrais

Implantar, liberar e anunciar são coisas diferentes

implantar o código está em produção
liberar os usuários podem usar a funcionalidade
anunciar os usuários sabem que ela existe

Sem feature flags, as três acontecem juntas — e a coordenação precisa acontecer no momento da implantação, que é o momento técnico mais delicado.

Com flags, elas se separam: o código vai a produção quando estiver pronto, a liberação acontece quando o negócio decidir, e o anúncio quando o marketing quiser.

Isso remove a maior parte da coordenação do caminho técnico — e é a mudança que mais simplifica a gestão de releases.

O que ainda precisa de coordenação

Sendo específico, porque a lista é curta:

mudanças que afetam vários sistemas ordem importa
mudanças com contrapartida externa parceiro precisa estar pronto
requisitos regulatórios aprovação documentada
comunicação a clientes mudanças visíveis, treinamento
eventos de alto risco datas críticas do negócio
migrações de dados grandes janela e plano

Tudo o mais — a maioria das mudanças — não precisa de coordenação alguma.

O erro é aplicar o processo da primeira lista a tudo.

Congelamento: quando faz sentido e quando não

Congelar mudanças durante períodos críticos — Black Friday, fechamento fiscal, eleições — é uma prática defensável e frequentemente mal aplicada.

faz sentido janela curta, evento de altíssimo risco, mudanças acumuladas revistas
não faz sentido congelamento longo, que acumula lote grande
→ o descongelamento vira o evento mais arriscado do ano

O paradoxo: quanto mais longo o congelamento, mais arriscada a implantação que o segue — porque ela carrega semanas de mudanças de uma vez, exatamente o oposto de lotes pequenos.

Ver integração contínua.

A alternativa que funciona: em vez de congelar, aumentar o rigor — canary obrigatório, aprovação adicional, janelas de menor tráfego. As mudanças continuam pequenas.

Notas de release derivadas, não escritas

Um registro do que mudou é útil — para o suporte, para o cliente, para a investigação.

E, escrito à mão, ele desatualiza. O que sustenta:

derivado das mudanças mescladas
com categorização automática — correção, funcionalidade, interno
gerado a cada implantação
o que é visível ao usuário, separado do interno

A última distinção importa: um cliente não quer ler cem entradas de refatoração. A nota externa é curada; a interna é completa.

Versionar quando alguém depende

API pública versionamento explícito, ver evolução de esquema
biblioteca versionamento semântico
aplicação interna frequentemente não precisa — o identificador da implantação basta
aplicativo móvel versionamento obrigatório, com versões antigas em circulação

A terceira linha contraria o hábito: um serviço implantado continuamente não se beneficia de números de versão. O que importa é o identificador do artefato e o histórico de implantações.

O último caso é o mais restritivo: versões antigas de aplicativo móvel permanecem em uso por meses, e o servidor precisa suportá-las. Ver contratos de integração.

O plano de reversão precisa ser o padrão

Em vez de um plano por release, um mecanismo:

reversão automatizada, testada
critério de acionamento definido
autoridade clara — quem decide
comunicação prevista

Ver estratégias de implantação e resiliência.

Se cada release precisa de um plano de reversão específico, a reversão não está resolvida — está sendo improvisada a cada vez.

Quem decide o que vai junto

Uma decisão organizacional que costuma ficar implícita: quando várias mudanças estão prontas, quem decide o que entra numa mesma implantação?

Três modelos, com implicações diferentes:

Cada mudança sozinha. A implantação é disparada pela mesclagem. Sem decisão, sem coordenação. É o modelo que a entrega contínua pressupõe, e o que produz os menores lotes.

Agrupamento por janela. Tudo que foi mesclado no período vai junto. Reduz o número de implantações e aumenta o lote — com todas as consequências de diagnóstico e reversão.

Curadoria. Alguém decide o conteúdo de cada release. Faz sentido quando há interdependência entre mudanças, e é onde a coordenação costuma se acumular sem necessidade.

O terceiro modelo tem um custo escondido: ele cria uma fila e um decisor, e ambos viram gargalo. Quando ele é adotado por precaução — e não por interdependência real — o resultado é lote maior, reversão mais grosseira e diagnóstico mais difícil.

A pergunta que decide: essas mudanças precisam ir juntas, ou é mais confortável que alguém revise o conjunto?

Modelo Mental

Separe implantar de liberar, e a coordenação sai do caminho técnico. O que resta de coordenação é pequeno e específico.

Quando Usar

  • Mudanças que atravessam sistemas ou organizações.
  • Requisitos regulatórios de aprovação.
  • Comunicação a clientes.
  • Eventos críticos do negócio.
  • Migrações de dados grandes.

Quando Não Usar

Como processo padrão para toda mudança.

Congelamento longo.

Notas de release escritas à mão.

Versionando aplicações internas sem consumidor externo.

Plano de reversão por release em vez de mecanismo.

Aprovação em cadeia para mudanças de baixo risco.

Alternativas

  • Feature flags — separam liberação de implantação, removendo a maior parte da coordenação.
  • Canary — reduz o risco sem coordenação humana.
  • Liberação progressiva por segmento — internos, beta, geral.
  • Aprovação por classe de risco — só o que é arriscado passa por aprovação.

Trade-offs

Coordenação leveProcesso formal
Entrega rápidaPrevisibilidade
Menos visibilidade centralRastreabilidade
Confia em automaçãoVerificação humana
Lotes pequenosGrandes
CongelarAumentar o rigor
Nenhuma mudançaMudanças cuidadosas
Lote acumuladoFluxo contínuo
Descongelamento arriscadoSem evento

Modos de Falha

Processo como gargalo. Dias de espera para mudanças triviais.

Congelamento produzindo lote grande.

Notas desatualizadas.

Reversão improvisada.

Aprovação sem critério. Alguém assina sem avaliar, e a aprovação vira ritual.

Coordenação para o que não precisa.

Liberação acoplada à implantação. Cada liberação vira evento técnico.

Erros Comuns

Aplicar o processo pesado a tudo. Exigir a mesma aprovação para uma correção de texto e para uma migração de esquema treina o time a tratar o processo como obstáculo — e a contorná-lo justamente nas mudanças que importam.

Congelar por semanas. O congelamento acumula mudanças e faz a primeira liberação depois dele ser a maior e mais arriscada do ano — o oposto do que o congelamento pretendia.

Não separar implantar de liberar. Quando as duas coisas são a mesma, toda entrega de código é exposição ao usuário, e a única forma de controlar risco passa a ser não entregar.

Escrever notas de release à mão. Ficam desatualizadas na primeira semana. Geradas a partir dos commits e das mudanças, elas continuam verdadeiras sem esforço.

Não classificar mudanças por risco. Sem classificação, ou tudo passa pelo processo mais rígido, ou nada passa. A distinção é o que permite ser rápido no trivial e cuidadoso no perigoso.

Manter aprovações que ninguém avalia de fato. Aprovação carimbada dá a impressão de controle e não fornece nenhum, além de diluir a responsabilidade entre quem assinou sem olhar.

Exemplo Real

Uma empresa de serviços financeiros tinha um processo de release herdado da época de implantações mensais:

comitê semanal de aprovação
documento de release preenchido à mão
plano de reversão específico por release
congelamento de duas semanas em fechamentos trimestrais
notas de release escritas manualmente

A esteira levava 9 minutos. O tempo entre a mudança pronta e produção era de 11 dias.

A análise mostrou onde o tempo ia: 8 dos 11 dias eram espera pelo comitê e preenchimento de documentos.

E o congelamento trimestral produzia o efeito conhecido: o descongelamento liberava duas semanas de mudanças de uma vez, e três dos últimos quatro incidentes graves tinham acontecido nesses dias.

A reformulação:

Classificação por risco, declarada pelo autor:

baixo sem mudança de comportamento observável, reversível → automático
médio mudança de comportamento → canary obrigatório, sem aprovação
alto migração, contrato externo, regulatório → aprovação

O comitê passou a ver cerca de 8% das mudanças, e a discussão nele ficou substantiva.

Feature flags para separar liberação de implantação. As mudanças passaram a ir a produção desativadas, e a liberação virou decisão de produto — sem envolver o comitê.

Notas de release derivadas das mudanças mescladas, com separação entre visível ao usuário e interno.

Reversão como mecanismo, testada mensalmente, substituindo o plano por release.

Fim do congelamento, substituído por rigor aumentado: nos períodos críticos, tudo passa por canary com janela estendida e aprovação de duas pessoas. As mudanças continuaram fluindo em lotes pequenos.

Resultado em oito meses: tempo até produção de 11 dias para 5 horas, implantações de 3 por semana para 40, e incidentes causados por implantação reduzidos em 55%.

E o comitê, que era visto como burocracia, passou a ser valorizado — porque discutia apenas as mudanças que mereciam discussão.

A lição registrada: o congelamento era a prática mais defendida internamente, com o argumento de proteger os períodos críticos. Os dados mostravam o contrário — ele concentrava risco em vez de reduzi-lo.

Conceitos Relacionados

Exercício Prático

Meça o tempo entre "a mudança está pronta" e "a mudança está em produção", e separe quanto é técnico e quanto é espera.

Se a espera dominar, o gargalo é o processo — e ele provavelmente foi desenhado para um contexto que não existe mais.

Perguntas de Entrevista

  • Por que congelamento longo aumenta o risco?
  • Como flags removem coordenação do caminho técnico?
  • Por que aplicações internas frequentemente não precisam de versionamento?

Para Aprofundar

  • Humble, Jez; Farley, David. Continuous Delivery. Addison-Wesley, 2010.
  • Forsgren, Nicole et al. Accelerate. IT Revolution, 2018.
  • Kim, Gene et al. The DevOps Handbook. IT Revolution, 2016.
Terminou de ler este documento?Seu progresso fica salvo apenas neste navegador.