Glosario Técnico

Twelve-Factor App

Definición: Metodologia de doce principios para construir aplicaciones SaaS modernas que sean portables, escalables y desplegables en plataformas cloud de forma predecible.

— Fuente: NERVICO, Consultoría de Desarrollo de Producto

Que es Twelve-Factor App

The Twelve-Factor App es una metodologia creada por los ingenieros de Heroku que define doce principios para construir aplicaciones SaaS modernas. Estos principios cubren desde la gestion del codigo fuente hasta los procesos de despliegue, proporcionando un marco que maximiza la portabilidad entre entornos, la escalabilidad horizontal y la facilidad de despliegue continuo en plataformas cloud.

Como funciona

Los doce factores son: (1) codebase unica en control de versiones, (2) dependencias declaradas explicitamente, (3) configuracion almacenada en el entorno, (4) servicios de respaldo como recursos adjuntos, (5) separacion estricta entre build y run, (6) procesos sin estado, (7) binding de puertos para exposicion de servicios, (8) escalabilidad mediante procesos concurrentes, (9) descartabilidad con arranque rapido y parada limpia, (10) paridad maxima entre desarrollo y produccion, (11) logs como flujos de eventos, y (12) procesos de administracion ejecutados como one-off.

Casos de uso principales

  • Diseno de nuevas aplicaciones SaaS nativas cloud que seran desplegadas en contenedores o plataformas PaaS
  • Evaluacion y modernizacion de aplicaciones existentes identificando que factores no cumplen
  • Estandarizacion de practicas de desarrollo en equipos grandes para garantizar consistencia entre servicios
  • Preparacion de aplicaciones para despliegue en Kubernetes o servicios serverless que exigen procesos sin estado

Ventajas y consideraciones

Seguir los doce factores produce aplicaciones que son inherentemente portables entre proveedores cloud, faciles de escalar horizontalmente y sencillas de desplegar de forma automatizada. Los principios estan ampliamente aceptados y comprendidos en la industria. La principal consideracion es que algunos factores pueden ser dificiles de cumplir en aplicaciones legacy, y la adherencia estricta puede no ser necesaria en todos los contextos. Es una guia de buenas practicas, no un requisito absoluto.

Relacion con otros conceptos

¿Necesitas ayuda con desarrollo de producto?

Te ayudamos a acelerar tu desarrollo con tecnología puntera y mejores prácticas.