Server-tools: [RFC] Odoo orientado a servicios

Creado en 8 jun. 2017  ·  7Comentarios  ·  Fuente: OCA/server-tools

Estoy trabajando en un nuevo diseño de arquitectura para dividir Odoo en múltiples instancias de aplicaciones dedicadas, todas vinculadas a la misma base de datos y almacén de archivos. Esto nos proporcionará un enfoque orientado al servicio para Odoo, sin tener que distribuirlo a través de eventos.

En mi poco de experimentación antes de crear este RFC, pude DoS en la instancia de la aplicación del sitio web, pero la instancia web avanzaba como un campeón. Esto crea un aislamiento físico entre nuestras capas de aplicación y puede aislar posibles puntos oblicuos.

Se vería así (perdón por las cosas adicionales, esto está destinado a algo más grande; la parte relevante es la sección más inferior):

soa odoo

Uno de los principales problemas que preveo con esta arquitectura es que crearemos una carrera competitiva para las ejecuciones de tareas programadas entre las instancias distribuidas. En este sentido, necesitamos un módulo que deshabilite las tareas programadas con una variable de entorno; no creo que esto ya sea posible.

Más allá de esto, la mayor parte del trabajo estará a cargo del equilibrador de carga, por lo que los módulos no son necesariamente necesarios. Todas las instancias son técnicamente capaces de realizar cualquier acción, por lo que no es un desastre si algo se desvía.

Probablemente me falten algunas cosas aquí, por lo que este será un documento activo. Me interesaría saber si alguien más ha hecho algo similar a esto.

Elementos de acción:

  • [] Módulo para deshabilitar tareas programadas con una variable de entorno
question

Comentario más útil

@lasley @dreispt También les informo o les recuerdo que hay un PR y otros prototipos alrededor de un modelo de sesión escalable de Odoo basado en Redis:
https://github.com/odoo/odoo/pull/12515

Estaría muy feliz de que esta característica esté viva y OCA se mantenga en algún lugar ...

Todos 7 comentarios

Si te refieres a ir.cron por "tareas programadas", ya es posible deshabilitarlas (al menos en el modo de trabajadores, no verifiqué en el modo de subprocesos) en el archivo de configuración de Odoo: max_cron_threads = 0 .
(Editar: mirando el código, parece funcionar tanto en los trabajadores como en los modos de subprocesos)

El servidor de aplicaciones AFAIK Odoo está diseñado para poder escalar agregando más trabajadores o más servidores de aplicaciones uno al lado del otro.
La restricción es que deben compartir el mismo servidor de archivos (para datos de sesión y adjuntos) y servidor de base de datos.
Y puede configurar su equilibrio de carga para que la solicitud del cliente web a un grupo de servidores de aplicaciones y las solicitudes de sitios web vayan a otro grupo de servidores de aplicaciones.

Si no tiene ningún problema con los dos requisitos, AFAICS lo tiene todo listo para usar.

Sí, iba a decir exactamente lo que @ sylvain-garancher y @dreispt acaban de decir: todo ya está ahí, todavía desde la era pre-docker.

Si comparte la misma imagen base entre las instancias de backend y frontend, puede simplemente iniciar las frontend agregando --max-cron-threads=0 al comando de arranque.

Espero que pronto Infinit llegue a 1.0 y haga que compartir el almacén de archivos sea mucho más fácil.

¡Hurra, gracias @ sylvain-garancher, @dreispt , @Yajo - ciertamente tienes razón - esto funciona fuera de la maldita caja! Yo ❤️ Odoo

Espero que pronto Infinit llegue a 1.0 y haga que compartir el almacén de archivos sea mucho más fácil.

¿Ha mirado GlusterFS? Este es el enfoque recomendado por Red Hat

@lasley @dreispt También les informo o les recuerdo que hay un PR y otros prototipos alrededor de un modelo de sesión escalable de Odoo basado en Redis:
https://github.com/odoo/odoo/pull/12515

Estaría muy feliz de que esta característica esté viva y OCA se mantenga en algún lugar ...

@lasley , ya miré en GlusterFS. De hecho, la mejor solución de producción a día de hoy, pero todavía estoy atento a Infinit ya que parece tener un mejor diseño y un complemento de volumen de Docker (fueron comprados por Docker por alguna razón ...).

@Yajo Ohhhhhh eso es bueno, ¡voy a tener que vigilar a Infinit también!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

lasley picture lasley  ·  15Comentarios

lasley picture lasley  ·  20Comentarios

kittiu picture kittiu  ·  5Comentarios

legalsylvain picture legalsylvain  ·  34Comentarios

pedrobaeza picture pedrobaeza  ·  66Comentarios