01. Introducción y manifiesto
01. Introducción y manifiesto
Origen
The Twelve-Factor App nace de la experiencia de los ingenieros de Heroku, una de las primeras plataformas PaaS (Platform as a Service), tras operar cientos de aplicaciones SaaS de clientes distintos. En lugar de guardar ese conocimiento como tribal knowledge interno, lo publicaron como un manifiesto abierto en 12factor.net, disponible también en español.
No es un framework para instalar ni una librería para importar. Es una checklist de principios de diseño — un contrato entre tu aplicación y el entorno que la ejecuta.
El problema que resuelve
Antes de metodologías como esta, era común encontrar aplicaciones que:
- Guardaban contraseñas de base de datos directamente en el código fuente.
- Sólo corrían “bien” en la laptop del desarrollador que las escribió, porque dependían de versiones específicas de librerías instaladas globalmente en su sistema.
- Usaban memoria del proceso para guardar sesiones de usuario, rompiéndose apenas se agregaba una segunda instancia detrás de un balanceador.
- Tardaban minutos en arrancar y no toleraban un reinicio limpio sin perder trabajo en curso.
- Funcionaban distinto en el laptop del developer que en el servidor de producción, generando el clásico “en mi máquina funciona”.
Los 12 Factores atacan estos problemas uno por uno, con un objetivo explícito:
Maximizar la portabilidad entre entornos de ejecución, minimizar la divergencia entre desarrollo y producción, y permitir escalar sin cambios arquitectónicos significativos.
Vista panorámica de los 12 factores
flowchart TD
I["I. Código base<br/>Un repo, N despliegues"]
II["II. Dependencias<br/>Declaradas y aisladas"]
III["III. Configuración<br/>En variables de entorno"]
IV["IV. Backing services<br/>Recursos conectables"]
V["V. Build, release, run<br/>Etapas separadas"]
VI["VI. Procesos<br/>Stateless, share-nothing"]
VII["VII. Asignación de puertos<br/>Autocontenido vía port binding"]
VIII["VIII. Concurrencia<br/>Escalar por procesos"]
IX["IX. Desechabilidad<br/>Arranque rápido, apagado elegante"]
X["X. Paridad dev/prod<br/>Mismos backing services"]
XI["XI. Logs<br/>Flujos de eventos a stdout"]
XII["XII. Administración<br/>Mismos procesos, mismo entorno"]
I --> II --> III --> IV
IV --> V --> VI --> VII
VII --> VIII --> IX --> X
X --> XI --> XII
Cada factor ataca una dimensión distinta del ciclo de vida de una aplicación: de dónde viene el código (I-II), cómo se configura (III-IV), cómo pasa de código a proceso corriendo (V), cómo se comporta en ejecución (VI-IX), y cómo se opera en el día a día (X-XII).
Por qué siguen vigentes en 2026
Aunque el manifiesto es de la era pre-Docker, sus principios son la base implícita de:
- Kubernetes: los
ConfigMap/Secretson variables de entorno (III), losDeploymentinmutables son releases (V), los health checks ypreStophooks implementan desechabilidad (IX). - Contenedores en general: una imagen es, por definición, una build (V) con dependencias aisladas (II).
- Serverless/PaaS: port binding (VII) y procesos stateless (VI) son requisito de entrada, no opcional.
Este curso recorre los 12 factores en el mismo orden del manifiesto original, con ejemplos prácticos para llevarlos del papel al código.