Documentos de Académico
Documentos de Profesional
Documentos de Cultura
The twelve-factor app es una metodología para construir aplicaciones software as a service (SaaS)
que:
CONTEXTO
Este documento sintetiza toda nuestra experiencia y observaciones en una amplia variedad de
aplicaciones SaaS.
TWELVE FACTORS
2. Dependencias
3. Configuraciones
4. Backing services
Es cualquier recurso que la aplicación puede consumir a través de la red como parte de su
funcionamiento habitual (como las bases de datos) han sido gestionadas por los mismos
administradores de sistemas que despliegan la aplicación en producción.
Las aplicaciones “twelve-factor” hacen una separación completa de las fases de construcción,
de distribución y de ejecución.
6. Procesos
Se ejecuta como uno o más procesos en el entorno de ejecución, el caso más sencillo que
podemos plantear es que el código es un script independiente, el entorno de ejecución es un
portátil de un desarrollador, el compilador o interprete correspondiente del lenguaje está
instalado, y el proceso se lanza mediante la línea de mandatos (por ejemplo, python
my_script.py).
7. Asignación de puertos
Las aplicaciones web se ejecutan a menudo mediante contenedores web. Por ejemplo, las
aplicaciones de PHP se suelen ejecutar como módulos del HTTPD de Apache, y las aplicaciones
Java en Tomcat.
8. Concurrencia
Las aplicaciones web se pueden ejecutar de diferentes formas desde el punto de vista del
modelo de procesos que usan. Por ejemplo, los procesos PHP se ejecutan como procesos
pesados (o simplemente procesos).
9. Desechabilidad
Hacer el sistema más robusto intentando conseguir inicios rápidos y finalizaciones seguras
Los procesos deberían intentar conseguir minimizar el tiempo de arranque. En el mejor de los
casos, un proceso necesita unos pocos segundos desde que se ejecuta el mandato hasta que
arranca y está preparado para recibir peticiones o trabajos.
Los procesos de las aplicaciones “twelve-factor” son desechables, lo que significa que pueden
iniciarse o finalizarse en el momento que sea necesario.
Diferencias de tiempo.
Diferencias de personal.
Diferencias de herramientas.
Las aplicaciones “twelve-factor” están diseñadas para hacer despliegues continuos que reducen
las diferencias entre los entornos de desarrollo y producción.
11. Historiales
Ejecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez
Es el conjunto de procesos que se usa para hacer las tareas habituales de la aplicación (como
procesar las peticiones web), como por ejemplo:
Ejecutar migraciones de las bases de datos (e.g. manage.py migrate de Django, rake
db:migrate de Rails).
Ejecutar una consola (también conocidas como REPL) para ejecutar código arbitrario o
inspeccionar los modelos de la aplicación en una base de datos con datos reales.
Ejecutar scripts incluidos en el repositorio de la aplicación (e.g. php
scripts/fix_bad_records.php).
“Twelve-factor” recomienda encarecidamente lenguajes que proporcionan una consola del tipo
REPL, ya que facilitan las tareas relacionadas con la ejecución de scripts que solo han de usarse
una vez.