Conceptos

Twelve-Factor App

Metodología de doce principios para construir aplicaciones SaaS modernas que sean portables, escalables y desplegables en plataformas cloud.

seed#twelve-factor#methodology#saas#cloud#best-practices#architecture

¿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

  1. Codebase: un repo, múltiples deploys
  2. Dependencies: declarar y aislar dependencias explícitamente
  3. Config: configuración en variables de entorno
  4. Backing services: tratar servicios externos como recursos adjuntos
  5. Build, release, run: separar estrictamente las etapas
  6. Processes: ejecutar como procesos stateless
  7. Port binding: exportar servicios vía port binding
  8. Concurrency: escalar mediante procesos
  9. Disposability: startup rápido, shutdown graceful
  10. Dev/prod parity: mantener ambientes similares
  11. Logs: tratar logs como streams de eventos
  12. 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

FactorPrincipioImplementación moderna
III. ConfigVariables de entornoAWS SSM Parameter Store, Secrets Manager
V. Build, release, runSeparar etapasCI/CD pipelines, GitOps
VI. ProcessesStatelessContenedores, Lambda
IX. DisposabilityStartup rápidoHealth checks en Kubernetes, graceful shutdown
X. Dev/prod parityAmbientes similaresDevContainers, Docker Compose
XI. LogsStreams de eventosLogging 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

Conceptos