Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

La metodología Twelve-Factor App

Alex Soto
  • Escrito por Alex Soto el 15 de Noviembre de 2018
  • <1 min de lectura | DevOps
La metodología Twelve-Factor App
El reproductor de video será cargado en breves instantes.

¿Has oído hablar sobre la metodología Twelve Factor App pero no sabes en qué consiste? Te resolvemos las dudas explicando todas las reglas de esta metodología.

Qué es Twelve Factor App

Twelve Factor App es una metodología para construir aplicaciones SASS, y siguiéndola vamos a tener una experiencia más placentera cuando queramos desplegar o escalar nuestras aplicaciones en la nube.

Se compone de doce reglas:

  1. Código base: debemos tener un código base, es decir, tenemos que tener un sistema de control de versiones.
  2. Dependencias: nuestras dependencias tienen que ir declaradas mediante un fichero, ya que no se asume que nuestro entorno va a tener estas dependencias instaladas por defecto.
  3. Configuraciones: todo lo que cambie entre despliegues, es decir, si cogemos nuestra aplicación y la desplegamos en preproducción, en QA o en producción, posiblemente existan cambios, pues todos estos cambios tienen que ir dentro de un fichero de configuración.
  4. Backing services: es muy importante saber que cuando tenemos los backing services, servicios que están en la red, por ejemplo un backing service puede ser una base de datos, no tenemos que saber realmente dónde están desplegados, es decir, la base datos que usamos en nuestra máquina de desarrollo estará corriendo en el localhost, mientras que en preproducción está corriendo en otro host, pero cuando consumimos este backing service no deberíamos tener que ir modificando ningún parámetro dependiendo desde donde se encuentre el mismo.
  5. Construir, desplegar, ejecutar: nuestra aplicación debe seguir estas fases, tiene que existir este pipeline ejecutado para poder desplegar nuestra aplicación.
  6. Procesos: nuestros servicios se tienen que ejecutar como uno o más procesos sin estado. No puede ser que el servicio lo intentemos, por ejemplo, replicar a más instancias y que perdamos datos. En este sentido lo que se hace normalmente es para paliar este problema y tener servicios estables es crear un backing service con un memory data grid o con sistemas de caché distribuidos, para tener compartido todo el estado.
  7. Asignación de puertos: debe ser autocontenida, no podemos depender de otras aplicaciones que estén corriendo.
  8. Concurrencia: tenemos que pensar en concurrencia, en que nuestra aplicación no la queremos a escalar de forma vertical sino en forma horizontal, tener más y más instancias del mismo servicio.
  9. Desechabilidad: nuestra aplicación tiene que arrancarse y pararse muy rápido, y es así porque tenemos que tener la posibilidad de escalar para arriba y para abajo de forma rápida.
  10. Paridad de desarrollo y producción: los entornos tienen que ser bastante similares en todos sitios, tanto en desarrollo, como en preproducción como en producción, tienen que ser bastante similares.
  11. Logs: se tienen que escribir como si fueran un evento.
  12. Administración de los procesos: por ejemplo, la creación de la base de datos o de la actualización de tablas, tiene que estar contenida dentro de la propia aplicación, no puede ser que tengamos que desplegar nuestro servicio y después hacer otro proceso que sea la administración del proceso, tiene que ser una cosa contenida e integrada dentro del propio despliegue.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Docker DevOps Profesional

Docker DevOps Profesional

carrera

Incluye 2 cursos:

  • Curso de Introducción a Docker
  • Curso de Docker para Desarrolladores

 

Duración: 8 horas y 16 minutos

La tabla periódica de herramientas para DevOps

La tabla periódica de herramientas para DevOps

DevOps

18 de Agosto de 2016

En este artículo os vamos a compartir una curiosa tabla periódica que hemos encontrado en la red. En dicha tabla, podréis ver de forma categorizada algunas de las herramientas más usadas por los pr...

Especialista en Automatización DevOps

carrera

Incluye 6 cursos:

  • Curso de Ansible
  • Curso Online de Vagrant
  • Curso de Terraform Online

y 3 cursos más!

Duración: 22 horas y 31 minutos

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars