Processo de gerenciamento de releases para entregas rápidas
8 min de leitura
Um processo de gerenciamento de releases é o conjunto de passos que leva uma mudança de “integrada” a “rodando em produção e explicada às pessoas que ela afeta”. Para uma equipe que entrega com frequência, resume-se a sete passos: planejar o escopo, isolar a mudança, compilar e testar, aprovar, fazer o deploy e verificar, comunicar e revisar. Cada passo precisa de um responsável nomeado e de um critério de saída, ou deixa de acontecer sem alarde.
Este guia pressupõe uma equipe de 5 a 50 engenheiros que fazem deploy toda semana ou todo dia e querem que o processo fique fora do caminho.
| Passo | Responsável | Critério de saída |
|---|---|---|
| 1. Planejar o escopo | Produto ou tech lead | A lista de mudanças desta release está escrita, e o que é arriscado está marcado |
| 2. Branch ou flag | O engenheiro dono da mudança | O trabalho está em um branch de vida curta ou atrás de uma flag, então a main continua liberável |
| 3. Compilar e testar | CI, com o autor de plantão para falhas | Pipeline verde no commit exato que vai ser entregue |
| 4. Aprovar | Revisor, mais o release manager nas mudanças arriscadas | Revisão feita, caminho de rollback nomeado, go ou no-go registrado |
| 5. Deploy e verificação | Release manager ou engenheiro de plantão | Deploy feito, smoke checks passam, taxa de erro e latência batem com a linha de base pré-release |
| 6. Comunicar | Quem entende a mudança, editado por alguém que não entende | Release notes publicadas onde os usuários leem, suporte e vendas avisados |
| 7. Revisar | Release manager | Métricas lidas, tudo o que deu errado tem dono e correção |
O que é o processo de gerenciamento de releases?
É o caminho repetível que uma mudança segue até chegar aos usuários: escopo, build, teste, aprovação, deploy, verificação, anúncio e retrospectiva. O objetivo de escrevê-lo é que toda release siga o mesmo caminho, de modo que alguém de férias, um novo contratado ou um engenheiro de plantão às 2 da manhã possa executá-lo sem perguntar a ninguém como funciona.
Quais são os diferentes tipos de gerenciamento de releases?
Há três tipos práticos: deploy contínuo, releases agendadas e gerenciamento de mudanças regulado. Eles diferem em quanto acontece antes de uma release e em quanto é automatizado. O deploy contínuo entrega cada mudança integrada, as releases agendadas agrupam mudanças em um trem e o gerenciamento de mudanças regulado acrescenta aprovação formal e trilha de auditoria.
| Deploy contínuo | Releases agendadas | Gerenciamento de mudanças regulado ou ITIL | |
|---|---|---|---|
| Unidade da release | Um pull request integrado | Um lote, semanal ou quinzenal | Uma solicitação de mudança |
| Passo de escopo | Implícito, o merge é o escopo | Reunião de planejamento da release | Registro de mudança com classificação de risco |
| Aprovação | Code review mais checagens automáticas | O release manager aprova o lote | Comitê consultivo de mudanças ou aprovador delegado |
| Controle de risco | Feature flags, canários, rollback rápido | Soak em staging, release candidate | Plano de retorno documentado, janela de manutenção |
| Cadência típica | Muitas por dia | Semanal a mensal | Definida pelo calendário de mudanças |
| Ponto fraco | Ninguém conta aos usuários o que mudou | Lotes grandes escondem a mudança que quebrou algo | O tempo de processo supera a própria mudança |
A maioria das equipes é uma mistura. Um produto SaaS pode fazer deploy contínuo enquanto o app mobile sai em um trem semanal, e o único serviço de pagamentos que os auditores acompanham segue um registro formal de mudança. Escolha o tipo por serviço, não por empresa. Onde as mudanças são expostas aos poucos, a release e o anúncio viram eventos separados, caso tratado em release notes de feature flag.
Quais são as responsabilidades de um release manager?
Um release manager é dono do caminho que uma mudança percorre até a produção. Ele mantém o calendário de releases, decide se uma mudança está pronta, executa ou supervisiona o deploy, toma a decisão de rollback, garante que os usuários sejam avisados e conduz a revisão depois.
Antes da release, confirma o escopo e checa se toda mudança arriscada tem um caminho de rollback. Durante ela, executa o checklist de deploy, acompanha os primeiros minutos das métricas de produção e chama o rollback cedo. Depois, confirma que as notas saíram e registra o que corrigir no processo.
Em uma equipe pequena, revezem o papel toda semana e escrevam o checklist para que ninguém precise de conhecimento tribal. Um monorepo com muitos pacotes lançados de forma independente costuma precisar de um responsável por pacote, ou o papel vira um gargalo.
Quais são os principais KPIs de gerenciamento de releases?
Acompanhe as métricas de entrega de software da DORA e acrescente uma sua: quanto tempo leva até os usuários serem avisados. A pesquisa da DORA identifica cinco métricas, divididas em vazão (lead time de mudança, frequência de deploy, tempo de recuperação de deploy com falha) e instabilidade (taxa de falha de mudança, taxa de retrabalho de deploy).
O guia da DORA as define em termos simples (dora.dev, software delivery metrics):
| KPI | O que mede | O que observar |
|---|---|---|
| Lead time de mudança | Tempo do commit no controle de versão até o deploy em produção | Um número crescente costuma indicar filas em revisão ou aprovação |
| Frequência de deploy | Com que frequência vocês fazem deploy, ou o intervalo entre deploys | Frequência em queda significa que os lotes estão crescendo |
| Tempo de recuperação de deploy com falha | Tempo para se recuperar de um deploy que exige intervenção imediata | Problemas de rollback e de alertas aparecem aqui |
| Taxa de falha de mudança | Parcela dos deploys que exigem rollback ou hotfix | Sobe quando os lotes são grandes demais ou o teste é fraco |
| Taxa de retrabalho de deploy | Parcela dos deploys não planejados e causados por um incidente em produção | Sinal de que as correções saem mais rápido que as lições |
| Tempo até os usuários serem avisados | Minutos do deploy em produção até uma nota publicada para o usuário | Meçam vocês mesmos, nenhum framework fornece |
Materiais mais antigos listam quatro métricas-chave e chamam a recuperação de “time to restore”. O guia atual usa as cinco acima.
O mesmo guia alerta contra tratá-las como metas. Definir um objetivo como “tudo faz deploy várias vezes por dia até o fim do ano” convida as equipes a manipular os números, e as métricas devem ser lidas por aplicação ou serviço, não misturadas na empresa toda. O conselho prático dele para melhorar todas é reduzir o tamanho de cada mudança, porque mudanças menores são mais fáceis de revisar, de levar pelo pipeline e de recuperar.
Como a comunicação da release se encaixa no processo de gerenciamento de releases?
É o passo seis, e tem responsável e critério de saída como todos os outros: notas publicadas onde os usuários leem e equipes internas avisadas. É o passo que as equipes mais pulam, porque a ferramenta de deploy reporta sucesso no instante em que o código está no ar.
O jeito mais barato de manter esse passo em dia é escrever a entrada quando a mudança é integrada, não quando a release sai. O pull request já contém o título, o autor, a issue ligada e o contexto. Um rascunho construído a partir dele é editado, não escrito de memória uma semana depois. Essa é a ideia por trás da automação de changelog: derivar um rascunho no merge, retê-lo para uma pessoa aprovar e depois publicá-lo em todo lugar a partir de uma única fonte. O Changeloop funciona assim, redigindo entradas a partir de pull requests integrados com IA e retendo-as para aprovação antes de publicar qualquer coisa.
Duas variações merecem planejamento prévio. Suporte e vendas precisam de uma nota diferente da dos clientes, e para isso servem as release notes internas. Uma release causada por um incidente não tem tempo para o ciclo normal de redação, então mantenham um template curto pronto, como descrito em release notes de emergência. O template de release notes dá uma forma inicial para a versão voltada ao cliente.
Como manter o processo leve?
Automatize todo critério de saída que uma máquina possa checar e reserve as pessoas para os julgamentos. Um pipeline verde, um marcador de deploy nos dashboards e um rascunho de entrada de changelog por pull request integrado são checáveis. Se um plano de rollback é crível, ou se as notas fazem sentido para um cliente, é coisa para uma pessoa.
Para testar o processo, escolha uma release do mês passado e pergunte se alguém de fora da equipe conseguiria dizer, só pelo registro escrito, o que foi entregue, quem aprovou, como foi verificado e quando os usuários foram avisados. Qualquer lacuna é a sua próxima melhoria.
FAQ
Qual é a diferença entre gerenciamento de releases e gerenciamento de mudanças? O gerenciamento de releases leva um conjunto de mudanças a ser compilado, testado, implantado e anunciado. O gerenciamento de mudanças, no sentido ITIL, é o processo de aprovação e de risco em torno de cada mudança. Equipes que entregam com frequência incorporam a aprovação ao code review e às checagens automáticas.
Com que frequência devemos fazer releases? Tão frequentemente quanto seus testes e seu caminho de rollback permitirem, o que para muitas equipes web é todo dia ou mais. A orientação da DORA é reduzir o tamanho de cada mudança, já que mudanças pequenas são mais fáceis de revisar e de recuperar.
Equipes pequenas precisam de um release manager? Precisam das responsabilidades, mas não necessariamente do título. Revezem o papel entre os engenheiros, deem à pessoa do rodízio um checklist escrito e garantam que alguém seja dono de cada um dos sete passos.
O que um checklist de release deve incluir? Escopo confirmado, pipeline verde no commit que vai ser entregue, caminho de rollback nomeado, aprovação registrada, smoke checks após o deploy, métricas comparadas com a linha de base, release notes publicadas, suporte avisado e uma revisão agendada. Mantenha em uma página.
As afirmações técnicas deste artigo não foram revisadas de forma independente. Se algo estiver errado, avise a gente e vamos corrigir.