Feature Flags
Técnica que permite activar o desactivar funcionalidades en producción sin desplegar código nuevo, habilitando releases progresivos y experimentación.
seed#feature-flags#toggles#releases#experimentation#progressive-delivery
¿Qué es?
Feature flags (o feature toggles) son condicionales en el código que permiten activar o desactivar funcionalidades sin desplegar. Separan el despliegue de código del release de features.
Tipos
| Tipo | Duración | Uso |
|---|---|---|
| Release | Temporal | Activar feature gradualmente |
| Experiment | Temporal | A/B testing |
| Ops | Permanente | Circuit breakers, kill switches |
| Permission | Permanente | Features por plan/rol |
Beneficios
- Desplegar código sin activar features
- Rollback instantáneo (desactivar flag)
- Canary releases (activar para % de usuarios)
- A/B testing en producción
Herramientas
- LaunchDarkly, Split.io (SaaS)
- Unleash, Flagsmith (open-source)
- AWS AppConfig, CloudWatch Evidently
Riesgos
- Deuda técnica: flags que nunca se limpian
- Complejidad: combinaciones de flags difíciles de testear
- Inconsistencia: estado diferente entre usuarios
¿Por qué importa?
Los feature flags desacoplan el deploy del release. Permiten desplegar código a producción sin activarlo para los usuarios, habilitar funcionalidades gradualmente y revertir cambios sin rollback de código. Son la red de seguridad que hace posible el continuous deployment.
Referencias
- Feature Toggles — Pete Hodgson, Martin Fowler.
- LaunchDarkly — LaunchDarkly, 2024. Plataforma líder de feature management.
- OpenFeature — CNCF, 2024. Estándar abierto para feature flags.