4 min lectura • Guide 795 of 877
Feature Flags y Rollout Progresivo
Los feature flags separan deployment de release. GitScrum ayuda a equipos a trackear features con flags y coordinar rollouts progresivos.
Básicos de Feature Flag
Por Qué Feature Flags
BENEFICIOS DE FEATURE FLAG:
┌─────────────────────────────────────────────────────────────┐
│ │
│ SIN FLAGS: │
│ ────────── │
│ Deploy = Release │
│ Todos los usuarios obtienen feature inmediatamente │
│ Rollback requiere nuevo deployment │
│ Riesgo de big bang │
│ │
│ CON FLAGS: │
│ ────────── │
│ Deploy ≠ Release │
│ Habilitar cuando esté listo │
│ Deshabilitar instantáneamente si hay issues │
│ Rollout gradual posible │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ CASOS DE USO DE FLAGS: │
│ │
│ RELEASE TOGGLES: │
│ Deployar feature incompleta, habilitar cuando done │
│ "Ship dark" - código en prod pero off │
│ │
│ EXPERIMENT TOGGLES: │
│ A/B test de features │
│ Comparar métricas entre variantes │
│ │
│ OPS TOGGLES: │
│ Kill switch para features problemáticas │
│ Degradación elegante │
│ │
│ PERMISSION TOGGLES: │
│ Features premium para usuarios de pago │
│ Features beta para early adopters │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ EJEMPLO DE CÓDIGO: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ if (featureFlags.isEnabled('new-search')) { ││
│ │ return <NewSearchComponent />; ││
│ │ } ││
│ │ return <OldSearchComponent />; ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Rollout Progresivo
Estrategia de Rollout
ETAPAS DE ROLLOUT PROGRESIVO:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ETAPA 1: INTERNO (0.1%) │
│ ───────────────────────── │
│ • Solo equipo de desarrollo │
│ • Capturar issues obvios │
│ • Duración: 1-2 días │
│ │
│ ETAPA 2: EMPLEADOS (1%) │
│ ──────────────────────── │
│ • Todos los empleados de la empresa │
│ • Testing en mundo real │
│ • Duración: 1-3 días │
│ │
│ ETAPA 3: USUARIOS BETA (5%) │
│ ──────────────────────────── │
│ • Early adopters opted-in │
│ • Recoger feedback │
│ • Duración: 3-5 días │
│ │
│ ETAPA 4: CANARY (10%) │
│ ───────────────────── │
│ • Muestra aleatoria de usuarios │
│ • Monitorear métricas │
│ • Duración: 2-3 días │
│ │
│ ETAPA 5: PARCIAL (25%, 50%) │
│ ─────────────────────────── │
│ • Población más grande │
│ • Confirmar a escala │
│ • Duración: 1-2 días cada una │
│ │
│ ETAPA 6: ROLLOUT COMPLETO (100%) │
│ ──────────────────────────────── │
│ • Todos los usuarios │
│ • Continuar monitoreo │
│ • Remover flag cuando estable │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ EN CADA ETAPA: │
│ • Monitorear tasas de error │
│ • Observar métricas de performance │
│ • Recoger feedback de usuarios │
│ • Listo para pausar o rollback │
└─────────────────────────────────────────────────────────────┘