14. Aplicación práctica y cierre

Por: Artiko
12factorchecklistcloud-nativecierre

14. Aplicación práctica y cierre

Checklist consolidado

#FactorPregunta clave de auditoría
ICódigo base¿Un único repo, múltiples despliegues identificables?
IIDependencias¿Manifiesto declarado + aislamiento, sin asumir nada del sistema?
IIIConfiguración¿Pasa el test del open source? ¿Todo en variables de entorno?
IVBacking services¿Se accede vía URL/credencial, intercambiable sin tocar código?
VBuild, release, run¿Releases inmutables, con ID único, y rollback posible?
VIProcesos¿Stateless y share-nothing? ¿Sin sticky sessions?
VIIAsignación de puertos¿La app expone HTTP por sí misma, sin servidor externo asumido?
VIIIConcurrencia¿Tipos de proceso independientes, escalables por separado?
IXDesechabilidad¿Arranque en segundos y SIGTERM manejado con gracia?
XParidad dev/prod¿Mismos backing services, mismo tipo y versión, en todos los entornos?
XILogs¿Todo a stdout, sin gestión propia de archivos de log?
XIIAdministración¿Tareas puntuales en el mismo entorno y release que el resto?

Cómo auditar una aplicación existente

Un ejercicio simple para aplicar este curso hoy mismo: recorrer la tabla de arriba factor por factor sobre un proyecto real, marcando cumple / no cumple / parcial en cada fila. Las violaciones más comunes que suelen aparecer primero:

  • Credenciales en el código o en archivos versionados (Factor III).
  • Sticky sessions configuradas “porque siempre funcionó así” (Factor VI).
  • Scripts de migración corridos manualmente en un entorno distinto al de la app (Factor XII).
  • Backing services distintos entre dev y producción “para simplificar” (Factor X).

No hace falta resolver los 12 a la vez: priorizar por impacto y riesgo (config y stateless primero) da resultados rápidos.

Vigencia en el ecosistema cloud-native (2026)

Los 12 factores se escribieron antes de que Docker y Kubernetes existieran, pero son la base implícita de ambos:

  • Contenedores: una imagen Docker es, por definición, una build (Factor V) que empaqueta dependencias aisladas (Factor II).
  • Kubernetes: ConfigMap y Secret son variables de entorno estructuradas (Factor III); un Deployment con RollingUpdate implementa releases inmutables con rollback (Factor V); readinessProbe/livenessProbe + preStop hooks son la forma moderna de desechabilidad (Factor IX).
  • PaaS y serverless: exigen procesos stateless (Factor VI) y port binding (Factor VII) como requisito de entrada, no como opción.
  • Observabilidad moderna (ver también el tutorial de OpenTelemetry en este sitio): el patrón “todo a stdout, que la infraestructura enrute” (Factor XI) es el mismo principio detrás de los collectors de logs actuales.

Cierre

Los 12 Factores no son una lista de tecnologías específicas — son una forma de pensar el ciclo de vida completo de una aplicación: de dónde viene el código, qué cambia entre entornos, cómo se convierte en proceso, cómo se comporta corriendo y cómo se opera. Dominarlos da un vocabulario común para conversar con cualquier equipo de plataforma, sin importar si esa plataforma es Heroku, Kubernetes o un PaaS interno.

Recursos