PurpleCloud Brain AI: Reparando el rendimiento de Odoo con AI

Desacoplando el rendimiento de Odoo aprovechando la IA


PurpleCloud Brain AI aprovecha la optimización de IA para problemas de rendimiento de Odoo, ofreciendo optimización programática de bases de datos y optimización del sistema para mejorar el rendimiento de personalización de Odoo y el rendimiento de módulos de Odoo en la Plataforma de Alojamiento PurpleCloud. 

Mientras Odoo sigue conquistando más cuotas de mercado cada año, el número de implementaciones y los volúmenes diarios de datos que gestiona siguen aumentando a un ritmo asombroso. Mientras tanto, muchos usuarios, desarrolladores y socios de Odoo enfrentan cada vez más problemas de rendimiento, con casos que van desde meras incomodidades o lentitud hasta comportamientos inaceptables que impiden que las implementaciones cumplan con su propósito inicial. 

El resultado siempre es el mismo: Frustración del usuario, presión sobre los equipos de TI para encontrar soluciones en una emergencia y costosas refactorizaciones de código.

En Portcities, nos dimos cuenta hace un par de años de que las nuevas tecnologías de IA habían alcanzado el nivel de madurez requerido para abordar estos problemas de rendimiento de manera programática. Así nació el proyecto Run-Odoo Brain.  ​  

Esta es su historia.  

EL PROBLEMA DE RENDIMIENTO DE ODOO

Las principales cualidades de Odoo también contribuyen a su caída cuando se trata de estandarizar sus mejoras de rendimiento y la mantenibilidad general a largo plazo:


Beneficios

Desafíos

Modularidad: La oferta de aplicaciones y módulos de Odoo es enorme

Puedes crear y desplegar una base de datos de Odoo para casi cualquier caso de negocio

El despliegue de diferentes aplicaciones y módulos personalizados implica que tu sistema es único y requerirá un enfoque personalizado en cuanto al análisis de rendimiento y la resolución de problemas

Adaptabilidad: Muchos ajustes están disponibles por aplicación y módulo como estándar 

Esto permite personalizar aún más la experiencia del usuario, los procedimientos operativos estándar, los flujos y los resultados

El despliegue y su estructura/relaciones de datos serán aún más personalizados, lo que conlleva un enfoque completamente dedicado y personalizado a los problemas de rendimiento

Ritmo de lanzamiento: Odoo SA lanza una nueva versión de Odoo cada año tanto para Odoo Community como para Enterprise

El producto evoluciona muy rápido y ofrece cada vez más características completas desde el principio

Cada versión tiene una lógica diferente, una estructura de base de datos diferente y, por lo tanto, requiere un análisis y resolución de problemas específicos por versión


En esta etapa, ni siquiera estamos mencionando las consecuencias directas de los desafíos mencionados anteriormente, entre los cuales podrías fácilmente hacer una lista corta de los siguientes:

  • Las tablas que reciben la mayor carga del ERP de Odoo en términos de volúmenes de datos dependerán completamente de los módulos instalados y del tipo de negocio que esté manejando el cliente.
  • Odoo no permite eliminar datos. Esto significa que los usuarios siguen agregando y las bases de datos y el almacenamiento de archivos siguen creciendo a medida que pasan los meses y los años.
  • Cuantos más módulos, más interdependencias de módulos y más restricciones entre tablas y accesos restringidos por Python que complejizan las llamadas y aumentan la presión tanto en los Trabajadores de Python como en la base de datos de PostgreSQL.
  • Cuantos más usuarios, más presión, ya que más personas necesitan usar más datos simultáneamente.
  • Las API y las automatizaciones contribuirán a empeorar el rendimiento, ya que sus tasas de acceso y volúmenes de datos a procesar por llamada pueden ser muy desafiantes también.


Para decirlo amablemente, y después de más de una década resolviendo problemas de rendimiento en todas las versiones de Odoo desde "Open-ERP 7.0", diría que cualquier implementación de Odoo que entre en funcionamiento requerirá tarde o temprano una optimización del rendimiento. Aunque es preciso decir que implementaciones muy pequeñas con bajos volúmenes de datos difícilmente estarían preocupadas después de una década de uso, ya he sido testigo de implementaciones grandes que eran casi inutilizables menos de 6 meses después de su Go-live.

LA DESAFÍO HA SIDO LANZADO

Y sin embargo…. Dado que Odoo es un remiendo ensamblado de tecnologías de código abierto de terceros, resolver sus problemas comunes de rendimiento requiere un extenso conocimiento que cubra las siguientes especialidades:

  • Infraestructura: Todos los sistemas, implementaciones dedicadas, plataformas en la nube, instancias y servicios se comportan de una manera muy diferente y he visto a empresas gastar fortunas en servidores bare metal de facturas de hosting mensuales mientras que nada de ello tenía sentido en comparación con el número de usuarios y operaciones involucradas.
  • DevOps: La forma en que se consumen la CPU, la memoria y el almacenamiento I/O son primordiales y a menudo se pasan por alto o simplemente se ignoran, mientras que algunas de las causas raíz del rendimiento a veces surgen del modo de virtualización incorrecto, o de los ajustes incorrectos del kernel o de la asignación de CPU o del uso de memoria, etc...etc... 
  • Codificación en Python de Odoo: La mayoría de los códigos disponibles en la tienda de aplicaciones de Odoo o escritos por desarrolladores estándar de Odoo se centran en los aspectos funcionales. Muy pocos son sometidos a pruebas de estrés o incluso evaluados adecuadamente sobre su potencial impacto en un sistema de producción mediano a grande. Una vez que no hay errores en los registros y el usuario final ha validado que la demo / prueba / UAT ha sido aprobada, los módulos se ponen en producción. Los problemas de rendimiento surgirán más tarde. La verdad es que escribir el mismo módulo con un enfoque centrado en el rendimiento requiere mucha más experiencia, ya que requiere una comprensión completa de lo que el ORM de Odoo realmente hace asincrónicamente con la base de datos y el almacenamiento de archivos con el que opera y cómo los trabajadores de Python están consumiendo el código.
  • Conocimiento de PostgreSQL: PostgreSQL es una bestia realmente impresionante cuyas capacidades van de la mano con su complejidad. Hay cientos de formas de configurarlo y cientos de configuraciones que requieren atención específica; pero la mayoría de los sistemas de producción que encuentro se implementan en instalaciones genéricas del paquete comunitario o utilizando ofertas estándar de AWS o GCP y Azure que funcionan mal, ya que se implementan con sus configuraciones generales estándar.   

Entonces, aquí estamos, en necesidad de un análisis sistemático y dedicado que combine una infraestructura completa y experiencia en full-stack: Se ha lanzado el desafío. Pero en lugar de dejar que los humanos lo recojan y pasen cientos de horas facturables solucionando despliegues uno por uno, en Portcities hemos decidido aprovechar la IA enseñándole todo lo que necesita saber para que pudiera hacer en unos minutos lo que los mejores ingenieros de nuestros equipos ni siquiera fantasearían con hacer en unas semanas.

CHAT GPT: EL DESAFÍO DE CONSTRUIR INTELIGENCIA

Cuando comenzamos a jugar con ChatGPT, nos dimos cuenta rápidamente de que, aunque la IA era capaz de hacer maravillas explicando y resolviendo temas estándar, se quedaba muy corta una vez que comenzamos a darle tareas más complejas. 

Aunque los resultados no fueron en absoluto satisfactorios, los esfuerzos consecutivos tuvieron un alto costo: más razonamiento, más malas respuestas, más excusas, más repeticiones, etc.

Nos estábamos volviendo tontos y haciéndolo en círculos.

Aprendimos rápidamente de nuestros errores y nos dimos cuenta de que la única forma de aprovechar la eficiencia de la IA era aplicar las siguientes reglas:

  • Construir modelos de IA resilientes que incluyan flujos de rutas predefinidas bloqueadas para proporcionar la adecuada “estructura de razonamiento” de antemano y controlar cualquier digresión inútil y vanamente creativa.
  • Mejorar la indicación de IA con una sintaxis consistente para evitar los típicos "malentendidos" que llevan a la mala interpretación y recomendaciones innecesarias.
  • Aumentar el conocimiento de la IA señalando código relevante, ejemplos y publicaciones que mejoren las mejores prácticas.
  • Alimentar la IA con los casos de uso encontrados en cada sesión de análisis y resolución de problemas. Cada base de datos viene con nuevos casos y desafíos inesperados. Aprovechar estos es una maravillosa oportunidad para aprender y mejorar un método de detección de patrones cuya relevancia golpeará sistemáticamente en el blanco al hacer las mejores recomendaciones. 

Jugamos con muchas IA diferentes antes de llegar a la conclusión de que todas requerían el mismo enfoque simplificado guiado por estos mismos principios fundamentales. Al final del día, no se trata del perro, sino de cómo enseñas al perro.

RECOLECTANDO LAS RECOMPENSAS

Finalmente, después de meses de investigación y pruebas exhaustivas, aquí estaba: NERVIO 0.1 nació. 

Decidimos ejecutarlo en un gran despliegue de Odoo 16 afectado por problemas de rendimiento de medio a severo en una base de datos que contiene aproximadamente 2 años de datos operacionales. Aquí están los resultados en pocas palabras:

Mejoras en el rendimiento general


Mejoras generales en el rendimiento de Odoo después de implementar Run-Odoo Brain

BRAIN AI comparó el tiempo de respuesta promedio del backend de Odoo antes y después de la optimización y midió que el tiempo de ejecución promedio había disminuido de 1184 ms a 293 ms después de confirmarlo con los registros. Esto significa básicamente que la velocidad aumentó en una proporción de X4. 

Evaluación de mejoras de rendimiento por funcionalidad / módulo


📒 Contabilidad y Finanzas

Módulos: cuenta, informes_contables, contable, l10n_*

Mejoras: listado de facturas, conciliación, informes financieros, rendimiento del panel.


👥 Recursos Humanos y Nómina

Módulos: hr, hr_expense, hr_payroll, hr_holidays, hr_attendance

Mejoras: Acceso más rápido a registros de empleados, seguimiento de gastos y generación de recibos de nómina.


🛒 Ventas y CRM

Módulos: sale, crm, contacts

Mejoras: Búsqueda de cliente, cotización y lista de pedidos más rápida.


📦 Inventario y Compra

Módulos: stock, compra, producto

Mejoras: Búsqueda de productos, operaciones de transferencia, navegación de órdenes de compra.


🌐 Sitio web, Portal y Marketing

Módulos: sitio web, portal, correo

Mejoras: búsqueda del portal, carga del sitio web, rendimiento de chit-chat/mensajes.


🔐 Control de Acceso y Sistema

Módulos: base, web, configuraciones

Mejoras: carga más rápida de la interfaz, comprobaciones de permisos, evaluación de reglas de acceso.


🛠️ Técnico / Trabajos en segundo plano

Módulos: base_automation, queue_job, bus

Mejoras: Trabajos cron, cola asíncrona, acceso a registro/evento.


Resumen de mejoras de rendimiento


Resumen de mejoras en el rendimiento después de implementar Run-Odoo Brain

Acciones y entregables

Para resumirlo:

  • Un ciclo de ejecución de 22 minutos.
  • 12 acciones ejecutadas a nivel de infraestructura
  • 680 acciones ejecutadas a nivel de base de datos
  • 23 configuraciones de base de datos modificadas
  • 3 configuraciones de odoo cambiadas
  • 16 recomendaciones de codificación e infraestructura para mejorar aún más
  • Producción de un informe completo y detallado de 460 páginas que detalla los cambios.

Este es un ejemplo sólido aunque justo tuvimos, mientras escribo este artículo, otra victoria en un gran despliegue con un asombroso aumento de velocidad de 17.5 X, cambiando la narrativa de Odoo de 'Estamos a punto de rendirnos' a 'Vamos a extender este despliegue y usarlo como nuestra nueva columna vertebral'.

Y sin embargo, como CTO del grupo e iniciador de Brain, aún no estoy satisfecho con su inteligencia "pro-activa". Necesita aprender más y "experimentar" más datos. Una evaluación honesta en este momento sería decir que hace y corrige aproximadamente el 30 al 40 % de lo que queremos que sea competente a largo plazo. De hecho, "la práctica hace al maestro", como dicen.  

MÁS SOBRE LA HOJA DE RUTA DEL PRODUCTO

Dados los resultados diarios que estamos obteniendo con Brain, ahora estamos totalmente convencidos de que involucrar la IA en el proceso de optimización fue la decisión correcta. BRAIN AI pronto estará disponible para todos los despliegues alojados en nuestra plataforma de hosting PurpleCloud y se convertirá en un activo fundamental para cualquier cliente de mediana a gran escala que requiera un SLA impecable y una experiencia de usuario de calidad.

Mientras tanto, dado que los problemas de rendimiento son un problema que evoluciona a lo largo del ciclo de vida del despliegue y las actualizaciones de Odoo, ahora estamos cambiando de marcha para no solo permitir un uso puntual de "una sola vez" de Brain en cualquier despliegue, sino también integrar BRAIN AI como un servicio permanente que se comportaría muy similar a un agente cuya función sería la "versión mejorada" de un chequeo de salud que:

  • Monitorea, detecta problemas y lentitud en tiempo real.
  • Implementa contramedidas dinámicamente.
  • Auto-informa sobre comportamientos de usuarios, problemas y resoluciones.
  • Hace recomendaciones

Descubre un rendimiento inigualable de Odoo – contáctanos para explorar hoy mismo la Plataforma Cloud PurpleCloud impulsada por Brain AI.

PurpleCloud Brain AI: Reparando el rendimiento de Odoo con AI
Denis Guillot 8 de julio de 2025