DEV Community

Carlos Loredo
Carlos Loredo

Posted on

2 1

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.
12-factores_img
Para comprender esta metodología podemos dividir los doce factores en 3 componentes clave:
12-factores-3-componentes
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:

codebase_img

  • 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_release_run_img

  • 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:

dev_prod_img

  • 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:

dependencia_img

  • 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:

config_img

  • 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:

back_end_img

  • 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:

process_img

  • "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:

ports_img

  • 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:

disposability_img

  • 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):

logs_img

  • 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:

concurrency_img

  • 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:

admin_process_img

  • 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

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay