Curso de Swarm

Curso de Swarm

Guido Vilariño

Guido Vilariño

Preparando tus aplicaciones para Docker Swarm: los 12 factores

5/24
Recursos

**¿ Está tu aplicación preparada para Docker Swarm ? **
Para saberlo, necesitas comprobarlo con los 12 factores

  1. Codebase : el código debe estar en un repositorio
  2. Dependencies : deben estar declaradas en un archivo de formato versionable, suele ser un archivo de código
  3. Configuration : debe formar parte de la aplicación cuando esté corriendo, puede ser dentro de un archivo
  4. Backing services : debe estar conectada a tu aplicación sin que esté dentro, se debe tratar como algo externo
  5. Build, release, run : deben estar separadas entre sí.
  6. Processes : todos los procesos los puede hacer como una unidad atómica
  7. Port binding : tu aplicación debe poder exponerse a sí misma sin necesidad de algo intermediario
  8. Concurrency : que pueda correr con múltiples instancias en paralelo
  9. Disposabilty : debe estar diseñada para que sea fácilmente destruible
  10. Dev/Prod parity : lograr que tu aplicación sea lo más parecido a lo que estará en producción
  11. Logs : todos los logs deben tratarse como flujos de bytes
  12. Admin processes : la aplicación tiene que poder ser ejecutable como procesos independientes de la aplicación

Aportes 18

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Muy útil esta clase, normalmente pasamos muchos de estos factores por alto.

Tengo una aplicación desarrollada en php que ya esta en un ambiente productivo, me gustaría hacerla parte de un ambiente docker swarm, pero un desarrollo web en php requiere que este instalado apache, por lo tanto no cumple con el factor Port binding, hay alguna alternativa para esto?

Muy interesante, siempre tengo en cuenta muchos de estos factores cuando hago CI && CD, pero nunca los había visto de una manera tan explicativa y estructurada.

Doce factores de la aplicación.

  • Codebase, tu código debe estar en un repositorio y este debería estar en relación de 1 a 1 entre código y repositorio.
  • Depencias, deberían venir empaquetadas con la aplicación.
  • La configuración, debe ser parte de tu aplicación.
  • Backing Service, como bases de datos, deben ser tratados como servicios externos a la aplicación.
  • Build, Release, Run. estas tres fases deben estar separadas en tu aplicación.
  • Proccess, la ejecución de tu aplicación no puede depender de que exista cierto estado, todo proceso lo debe realizar de forma atómica, stayless.
  • Port binding, la aplicación debe poder exponerse a si misma, sin intermediarios.
  • Concurrencia, que la aplicación pueda correr con múltiples instancia en paralelo.
  • Disposabiliti, la aplicación debe estar diseñada para ser fácilmente destruible e iniciar rápidamente.
  • Dev/prod parity, lograr que entorno de desarrollo, sea los más parecido a producción.
  • Logs, Todos los logs de la aplicación deben tratarse como un flujo de device.
  • Admin Process, la aplicación debe poder ejecutar como procesos independientes.

Tal como dicen algunos en los comentarios esta clase es bestial, y lo es. Pero creo que el profe tmb lo es ya que conoce mucho y explica muy bien, no basta con eso sino que tmb ha dejado comentarios muy buenos.
NO SE PIERDAN LOS COMENTARIOS DE LAS CLASES HAY MUCHA INFO EXTRA!!
Saludos!

titila la presentación de rojo como si me estuviesen enviando mensajes subliminales jajjaja

Estas clases si valen la pena.

Muy buena clase.

Esta clase sera importante por mucho tiempo!

no había tomado encuenta edtos detalles

Muy buena data

Clase bestial.

Master class

Extremadamente útil esta clase. Siempre nos estamos enfocando en las herramientas y dejamos a un lado los marcos de trabajo o listado de buenas practicas que nos permiten crear apps de calidad.

Tocara hablar con los desarrolladores, para estandarizar procesos de código

Muy bueno, no lo conocía. https://12factor.net/ esta la versión online

para el que le interese los 12 factor app
https://12factor.net/es/