Twelve-Factor App
Metodología de doce principios para construir aplicaciones SaaS modernas que sean portables, escalables y desplegables en plataformas cloud.
¿Qué es?
The Twelve-Factor App es una metodología de 12 principios para construir aplicaciones SaaS modernas. Publicada por Heroku en 2011, sigue siendo la base de las mejores prácticas cloud native.
Los 12 factores
- Codebase: un repo, múltiples deploys
- Dependencies: declarar y aislar dependencias explícitamente
- Config: configuración en variables de entorno
- Backing services: tratar servicios externos como recursos adjuntos
- Build, release, run: separar estrictamente las etapas
- Processes: ejecutar como procesos stateless
- Port binding: exportar servicios vía port binding
- Concurrency: escalar mediante procesos
- Disposability: startup rápido, shutdown graceful
- Dev/prod parity: mantener ambientes similares
- Logs: tratar logs como streams de eventos
- Admin processes: ejecutar tareas admin como procesos one-off
Relevancia actual
Aunque tiene más de una década, los 12 factores siguen siendo relevantes. Serverless y contenedores implementan muchos de estos principios por diseño.
Factores en la práctica moderna
| Factor | Principio | Implementación moderna |
|---|---|---|
| III. Config | Variables de entorno | AWS SSM Parameter Store, Secrets Manager |
| V. Build, release, run | Separar etapas | CI/CD pipelines, GitOps |
| VI. Processes | Stateless | Contenedores, Lambda |
| IX. Disposability | Startup rápido | Health checks en Kubernetes, graceful shutdown |
| X. Dev/prod parity | Ambientes similares | DevContainers, Docker Compose |
| XI. Logs | Streams de eventos | Logging estructurado, stdout → CloudWatch |
Limitaciones
Los 12 factores no cubren aspectos que hoy son esenciales:
- Seguridad: no menciona autenticación, autorización ni zero trust
- Observabilidad: solo habla de logs, no de métricas ni tracing distribuido
- Resiliencia: no aborda circuit breakers, retries ni chaos engineering
- API contracts: no menciona versionado de APIs ni contratos entre servicios
¿Por qué importa?
Los doce factores siguen siendo relevantes como principios de diseño para aplicaciones cloud-native. Configuración por entorno, procesos stateless, logs como streams y paridad dev/prod son prácticas que previenen categorías enteras de problemas operacionales.
Referencias
- The Twelve-Factor App — Adam Wiggins, 2011.
- Config — 12 Factor — Adam Wiggins, 2011. Factor III: configuración por entorno.
- CNCF Projects — CNCF, 2024. Ecosistema cloud-native que implementa los principios de 12 factores.