DevOps

La metodología Twelve-Factor App

¿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.

Publicado el 15 de Noviembre de 2018
Compartir

¿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.
Si todo esto te interesa y quieres profundizar mucho más, puedes hacer el Curso de arquitecturas monóliticas basadas en microservicioscon el que aprenderás de principio a fin cómo desarrollar una arquitectura monolítica compuesta de microservicios.
 
curso-microservicios-arquitectura-monolítica

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.


Compartir este post

También te puede interesar...

Tecnología

Qué es DevOps: Fundamentos, beneficios y herramientas

14 Mayo 2019 Ximena Rodríguez
Especialista en Automatización DevOps

Especialista en Automatización DevOps

17 horas y 57 minutos · Carrera

Conviértete en un especialista DevOps y da un salto en tu lista

Artículos
Ver todos