This website collects cookies to deliver better user experience
Saas: La metodología de 12 factores explicada
Saas: La metodología de 12 factores explicada
La metodología de doce-factores es una metodología para crear aplicaciones de software como servicio (Saas). Consta de algunas "mejores prácticas" diseñadas para permitir que las aplicaciones web se creen con portabilidad y resiliencia.
Para comprender esta metodología podemos dividir los doce factores en 3 componentes clave:
A continuación, veremos las mejores prácticas que se debe seguir en cada factor para que nuestra aplicación cumpla con esta metodología.
Factores de código:
Factor 1 - Código base:
Se debe hacer seguimiento a los cambios en el código desden un sistema de control de versiones (VCS) como Github, BitBucket, etc.
Relación uno a uno entre el código base y la aplicación.
Puede haber múltiples implementaciones de la aplicación.
Pueden haber diferentes versiones del código base en cada implementación.
Factor 5: Compila, publica y ejecuta:
Build (Compilación): transforma un código base en una unidad ejecutable llamada build.
Release (Lanzamiento): Combina el build con la configuración para que esté listo para ejecutarse.
Ejecución: ejecuta la aplicación.
Factor 10 - Paridad Dev/Prod:
Minimiza las diferencias entre los entornos de implementación y producción.
Los servicios de back-end deben ser los mismos en todos los entornos (dev/prod).
Factores de implementación:
Factor 2 - Dependencias:
Ten en cuenta que una aplicación solo es confiable como su dependencia menos confiable.
Asegúrate de que el código declare explícitamente cualquier dependencia.
Factor 3 - Configuración:
La configuración contiene todo lo que varía entre las implementaciones, como las credenciales y las ubicaciones de los servicios de respaldo.
Las configuraciones deben mantenerse separadas del código
Almacena la configuración en variables de entorno.
Factor 4 - Servicios de back-end:
Las aplicaciones no deben distinguir entre servicios de back-end locales y de terceros.
Se debe acceder a todos los servicios mediante URLs y credenciales para que puedan intercambiarse sin cambiar el código.
Factor 6 - Procesos:
"Stateless" y no comparten nada.
Los servicios de respaldo almacenan datos persistentes ya que la memoria y los sistemas de archivos no se comparten entre los procesos.
Los datos se almacenan de forma centralizada.
Factor 7 - Enlace a través de puertos:
Exportación de servicios designando un puerto. HTTP y otros servicios se exportan de esta manera.
Para vincular un puerto normalmente debe declarar una biblioteca de servidor web.
Las aplicaciones pueden ser servicios que sean llamadas por otras aplicaciones a través de la URL y el puerto.
Factor 9 - Desechabilidad:
Las aplicaciones deben tener un tiempo de inicio de proceso mínimo y un cierre o terminación de la applicación eficiente.
Implementar código y configurar cambios rápidamente.
Escale aplicaciones fácilmente.
Factor 11 - Registros (logs):
Las aplicaciones no deben preocuparse por almacenar registros (logs).
Las aplicaciones deben tener registros de tendencias en forma de un flujo de eventos escrito en stdout.
El entorno de ejecución captura el flujo de todas las aplicaciones, agrega los registros y enruta los registros a su destino.
Factores operativos:
Factor 8 - Simultaneidad:
Se pueden utilizar procesos concurrentes para escalar la aplicación.
Los procesos sin estado se pueden activar sin crear dependencias en otros procesos.
Factor 12 - Procesos de administración:
Habilite procesos únicos de administración de aplicaciones, como la migración de bases de datos.
Ejecutar contra una versión con la misma configuración del código base.
Están incluidos en el código de la aplicación.
Fuentes:
El sitio web de la Metodología de los Doce Factores: 12factor