Probar gratis
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                             │
└─────────────────────────────────────────────────────────────┘

Soluciones Relacionadas