6 min leitura • Guide 656 of 877
Estratégias de Rollout com Feature Flags
Feature flags transformam deployment de eventos tudo-ou-nada em rollouts controlados que você pode ajustar em tempo real. GitScrum ajuda a rastrear status de feature flags entre tarefas, coordenar lançamentos com flags e gerenciar o ciclo de vida de flags desde criação até limpeza.
Fundamentos de Feature Flags
Tipos de Flags
CATEGORIAS DE FEATURE FLAG:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FLAGS DE RELEASE (temporários): │
│ Propósito: Controlar rollout de funcionalidade │
│ Vida útil: Dias a semanas │
│ Exemplo: NEW_CHECKOUT_FLOW │
│ Remover: Após rollout 100% │
│ │
│ FLAGS DE EXPERIMENTO (temporários): │
│ Propósito: Testes A/B │
│ Vida útil: Duração do experimento │
│ Exemplo: PRICING_PAGE_VARIANT_B │
│ Remover: Quando experimento conclui │
│ │
│ FLAGS OPS (longevos): │
│ Propósito: Controle operacional │
│ Vida útil: Permanente │
│ Exemplo: ENABLE_RATE_LIMITING │
│ Remover: Nunca (toggle on/off conforme necessário) │
│ │
│ FLAGS DE PERMISSÃO (longevos): │
│ Propósito: Controle de acesso a funcionalidades │
│ Vida útil: Permanente │
│ Exemplo: ENTERPRISE_ANALYTICS │
│ Remover: Nunca (controla direitos) │
└─────────────────────────────────────────────────────────────┘
Ciclo de Vida da Flag
CICLO DE VIDA DA FLAG:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CRIAR → DESENVOLVER → ROLLOUT → ESTABILIZAR → LIMPAR │
│ │
│ CRIAR: │
│ • Definir nome da flag e tipo │
│ • Documentar propósito e proprietário │
│ • Definir estado inicial (desligado) │
│ │
│ DESENVOLVER: │
│ • Implementar funcionalidade atrás da flag │
│ • Testar com flag ligada/desligada │
│ • Enviar para produção (flag desligada) │
│ │
│ ROLLOUT: │
│ • Habilitar para interno → beta → porcentagem gradual │
│ • Monitorar métricas em cada estágio │
│ • Pausar/rollback se houver problemas │
│ │
│ ESTABILIZAR: │
│ • Alcançar rollout 100% │
│ • Monitorar por 1-2 semanas │
│ • Confirmar que funcionalidade está estável │
│ │
│ LIMPAR: │
│ • Remover verificações de flag do código │
│ • Deletar configuração da flag │
│ • Atualizar documentação │
└─────────────────────────────────────────────────────────────┘
Estratégias de Rollout
Rollout Progressivo
PLANO DE ROLLOUT GRADUAL:
┌─────────────────────────────────────────────────────────────┐
│ Funcionalidade: NEW_PAYMENT_FLOW │
├─────────────────────────────────────────────────────────────┤
│ │
│ ESTÁGIO 1: Interno (Dia 1) │
│ Alvo: Apenas funcionários da empresa │
│ Duração: 2 dias │
│ Sucesso: Sem bugs críticos │
│ │
│ ESTÁGIO 2: Beta (Dia 3) │
│ Alvo: Usuários beta optados (~500) │
│ Duração: 3 dias │
│ Sucesso: Taxa de erro <1%, feedback positivo │
│ │
│ ESTÁGIO 3: 5% (Dia 6) │
│ Alvo: 5% aleatório dos usuários │
│ Duração: 2 dias │
│ Sucesso: Métricas estáveis vs controle │
│ │
│ ESTÁGIO 4: 25% (Dia 8) │
│ Alvo: 25% aleatório │
│ Duração: 3 dias │
│ Sucesso: Taxa de conversão mantida │
│ │
│ ESTÁGIO 5: 50% (Dia 11) │
│ Alvo: 50% aleatório │
│ Duração: 3 dias │
│ Sucesso: Métricas de performance OK │
│ │
│ ESTÁGIO 6: 100% (Dia 14) │
│ Alvo: Todos os usuários │
│ Duração: 7 dias de monitoramento │
│ Sucesso: Pronto para limpeza │
└─────────────────────────────────────────────────────────────┘
Rollout Baseado em Risco
MATRIZ DE DECISÃO DE ROLLOUT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ RISCO DA FUNCIONALIDADE │ ESTRATÉGIA │
│─────────────────────────┼───────────────────────────────────│
│ BAIXO │ Interno → 25% → 100% │
│ (ajustes de UI) │ Rollout de 3 dias │
│ │ │
│ MÉDIO │ Interno → Beta → 5% → 25% → 50% → 100% │
│ (novas funcionalidades)│ Rollout de 2 semanas │
│ │ │
│ ALTO │ Interno → Beta → 1% → 5% → 10% → │
│ (pagamentos, │ 25% → 50% → 75% → 100% │
│ auth, dados) │ Rollout de 4 semanas, monitoramento extensivo │
│ │ │
│ CRÍTICO │ Aprovação manual em cada estágio │
│ (compliance) │ Assinatura de stakeholder necessária│
└─────────────────────────────────────────────────────────────┘
Monitoramento e Métricas
Dashboard de Rollout
DASHBOARD DE STATUS DA FLAG:
┌─────────────────────────────────────────────────────────────┐
│ NEW_PAYMENT_FLOW - Estágio 4 (25%) │
├─────────────────────────────────────────────────────────────┤
│ │
│ PROGRESSO DO ROLLOUT: │
│ [████████████░░░░░░░░░░░░░] 25% │
│ │
│ MÉTRICAS (Flag LIGADA vs DESLIGADA): │
│ LIGADA DESLIGADA DIF │
│ Conversão: 4.2% 4.1% +0.1% ✅ │
│ Erros: 0.3% 0.3% 0.0% ✅ │
│ Tempo de carga: 1.2s 1.1s +0.1s ⚠️ │
│ Conclusões: 89% 88% +1.0% ✅ │
│ │
│ ALERTAS: │
│ ⚠️ Tempo de carga ligeiramente elevado - monitorando │
│ │
│ AÇÕES: │
│ [Avançar para 50%] [Pausar] [Rollback] │
└─────────────────────────────────────────────────────────────┘
Resposta a Incidentes
PROCEDIMENTO DE ROLLBACK:
┌─────────────────────────────────────────────────────────────┐
│ │
│ GATILHOS PARA ROLLBACK: │
│ • Taxa de erro > 2x da baseline │
│ • Queda de conversão > 5% │
│ • Bug P0/P1 descoberto │
│ • Reclamações significativas de usuários │
│ │
│ PASSOS DE ROLLBACK: │
│ 1. Desabilitar flag (efeito instantâneo) │
│ 2. Notificar equipe no canal #incident │
│ 3. Documentar problema │
│ 4. Criar tarefa para correção │
│ 5. Planejar re-rollout │
│ │
│ PÓS-ROLLBACK: │
│ • Revisar o que deu errado │
│ • Atualizar monitoramento se necessário │
│ • Considerar passos menores de rollout │
└─────────────────────────────────────────────────────────────┘