PurpleCloud Brain AI : Réparer la performance d'Odoo avec l'IA

Dissocier la performance d'Odoo en tirant parti de l'IA


PurpleCloud Brain AI exploite l'optimisation de l'IA pour les problèmes de performance d'Odoo, offrant une optimisation programmatique de la base de données et une optimisation système pour améliorer les performances de personnalisation d'Odoo et les performances des modules Odoo sur la plateforme d'hébergement PurpleCloud

Alors qu'Odoo continue de conquérir de plus en plus de parts de marché chaque année, le nombre de déploiements et les volumes de données quotidiens qu'il gère continuent d'augmenter à un rythme effarant. Pendant ce temps, de nombreux utilisateurs, développeurs et partenaires Odoo sont confrontés à de plus en plus de problèmes de performance, avec des cas allant du simple inconfort ou de la lenteur à des comportements inacceptables empêchant les mises en œuvre de servir leur but initial. 

Le résultat est toujours le même : frustration des utilisateurs, pression sur les équipes informatiques pour trouver des solutions en urgence, et refactorisations de code coûteuses.

Chez Portcities, nous avons pris conscience il y a quelques années que les nouvelles technologies d'IA avaient atteint le niveau de maturité requis pour résoudre ces problèmes de performance de manière programmatique. Ainsi, le PurpleCloud Brain projet est né..  

Voici son histoire.  

LE PROBLÈME DE PERFORMANCE D'ODOO

Les principales qualités d'Odoo contribuent également à sa chute en ce qui concerne la normalisation de ses améliorations de performance et sa maintenabilité globale à long terme :


Avantages

Défis

Modularité : Les applications et modules Odoo offrent une grande variété

Vous pouvez créer et déployer une base de données Odoo pour presque n'importe quel cas commercial

Le déploiement de différentes applications et modules personnalisés implique que votre système est unique et nécessitera une approche personnalisée en ce qui concerne l'analyse de la performance et le dépannage

Adaptabilité : De nombreux paramètres sont disponibles par application et module en tant que standard 

Cela permet de personnaliser encore plus l'expérience utilisateur, les procédures opérationnelles standard, les flux et les résultats

Le déploiement et sa structure de données/relations seront encore plus personnalisés, ce qui implique une approche entièrement dédiée et personnalisée des problèmes de performance.

Rythme de publication : Odoo SA publie une nouvelle version d'Odoo par an pour Odoo Community et Enterprise.

Le produit évolue très rapidement et offre de plus en plus de fonctionnalités complètes prêtes à l'emploi.

Chaque version a une logique différente, une structure de base de données différente, et nécessite donc une analyse et un dépannage spécifiques par version.


À ce stade, nous ne mentionnons même pas les conséquences directes des défis listés ci-dessus, parmi lesquels vous pourriez facilement dresser la liste des éléments suivants :

  • Les tables recevant la plus grande charge ERP Odoo en termes de volumes de données dépendront entièrement des modules installés et du type d'entreprise que le client exploite.
  • Odoo n'autorise pas la suppression de données. Cela signifie que les utilisateurs continuent d'ajouter et que les bases de données et le stockage de fichiers continuent de croître au fil des mois et des années.
  • Plus il y a de modules, plus il y a de dépendances entre les modules et plus il y a de contraintes inter-tables et d'accès contraints par Python rendant les appels plus complexes et augmentant la pression tant sur les travailleurs Python que sur la base de données PostgreSQL.
  • Plus il y a d'utilisateurs, plus la pression augmente, car plus de personnes ont besoin d'utiliser plus de données en même temps.
  • Les API et les automatisations contribueront à aggraver les performances, car leurs taux d'accès et les volumes de données à traiter par appel peuvent également être très difficiles.


Pour le dire joliment, et après plus d'une décennie à résoudre des problèmes de performance dans toutes les versions d'Odoo depuis « Open-ERP 7.0 », je dirais que toute mise en œuvre d'Odoo qui est mise en production nécessitera tôt ou tard une optimisation des performances. Bien qu'il soit exact de dire que des déploiements très petits avec de faibles volumes de données ne seraient guère concernés après une décennie d'utilisation, j'ai déjà été témoin de déploiements importants qui étaient presque inutilisables moins de 6 mois après leur mise en production.

LE GANT A ÉTÉ LANCÉ

Et pourtant… Étant donné qu'Odoo est un patchwork assemblé de technologies open-source tierces, résoudre ses problèmes de performance courants nécessite une connaissance approfondie couvrant les spécialités suivantes :

  • Infrastructure : Tous les systèmes, déploiements dédiés, plateformes cloud, instances et services se comportent de manière très différente et j'ai vu des entreprises dépenser des fortunes sur des serveurs bare metal de factures d'hébergement mensuelles alors qu'aucun d'eux n'avait de sens par rapport au nombre d'utilisateurs et d'opérations impliqués.
  • DevOps : La façon dont le CPU, la mémoire et le stockage I/O sont consommés est primordiale et si souvent négligée ou simplement ignorée alors que certaines des causes profondes de performance surgissent parfois du mauvais mode de virtualisation, ou des mauvais réglages du noyau ou de l'allocation CPU ou de l'utilisation de la mémoire, etc... etc... 
  • Codage Python Odoo : La plupart des codes disponibles sur le store Odoo App ou écrits par des développeurs Odoo standard se concentrent sur les aspects fonctionnels. Très peu sont soumis à des tests de charge ou même correctement évalués en ce qui concerne la mesure de leurs impacts potentiels sur un système de production de taille moyenne à grande. Une fois qu'il n'y a pas d'erreur dans les journaux et que l'utilisateur final a validé que la démo / test / UAT est réussi, les modules sont mis en production. Les problèmes de performance surgiront plus tard. La vérité est : écrire le même module avec une approche centrée sur la performance nécessite beaucoup plus d'expertise puisqu'il nécessite une compréhension complète de ce que l'ORM Odoo fait réellement de manière asynchrone avec la base de données et le stockage de fichiers qu'il opère et comment les travailleurs Python consomment le code.
  • Connaissance de PostgreSQL : PostgreSQL est une véritable bête impressionnante dont les capacités vont de pair avec sa complexité. Il existe des centaines de façons de le configurer et des centaines de réglages qui nécessitent une attention particulière ; mais la plupart des systèmes de production que je rencontre sont déployés sur des installations génériques du paquet communautaire ou en utilisant des offres standard AWS ou GCP et Azure qui fonctionnent mal car elles sont déployées avec leurs réglages généraux standards.   

Alors, nous y voilà, ayant besoin d'une analyse systématique dédiée combinant une expertise complète en infrastructure et en full-stack : le gant a été jeté. Mais plutôt que de laisser les humains le ramasser et passer des centaines d'heures facturables à réparer partiellement des déploiements un par un, chez Portcities, nous avons décidé de tirer parti de l'IA en lui enseignant tout ce qu'elle doit savoir pour qu'elle puisse faire en quelques minutes ce que les meilleurs ingénieurs de nos équipes n'oseraient même pas envisager de faire en quelques semaines.

CHAT GPT : LE DÉFI DE LA CONSTRUCTION DE L'INTELLIGENCE

Lorsque nous avons commencé à jouer avec ChatGPT, nous avons vite réalisé que bien que l'IA était capable de faire des merveilles en expliquant et en résolvant des sujets standards, elle était très limitée une fois que nous avons commencé à lui donner des tâches plus complexes. 

Bien que les résultats n'étaient en aucun cas satisfaisants, les efforts consécutifs ont eu un coût élevé : plus de raisonnement, plus de mauvaises réponses, plus d'excuses, plus de re-runs, etc.

Nous devenions stupides et nous faisions le tour.

Nous avons rapidement appris de nos erreurs et réalisé que la seule façon d'exploiter l'efficacité de l'IA était d'appliquer les règles suivantes :

  • Construire des modèles d'IA résilients incluant des flux de parcours prédéterminés verrouillés afin de donner la structure de raisonnement adéquate dès le départ et de contrôler toute digression inutile et vainement créative.
  • Améliorer l'assistance de l'IA avec une syntaxe cohérente afin d'éviter les « malentendus » typiques conduisant à une mauvaise interprétation et à des recommandations inutiles.
  • Augmenter les connaissances de l'IA en indiquant des codes, des exemples et des publications pertinents qui améliorent les meilleures pratiques.
  • Nourrir l'IA avec des cas utilisés rencontrés lors de chaque session d'analyse et de dépannage. Chaque base de données est accompagnée de nouveaux cas et défis inattendus. Tirer parti de ceux-ci est une merveilleuse opportunité d'apprendre et d'améliorer une méthode de détection de modèles dont la pertinence frappera systématiquement dans le mille lors de la formulation des meilleures recommandations. 

Nous avons testé de nombreuses IA différentes avant de conclure qu'elles nécessitaient toutes la même approche rationalisée guidée par ces mêmes principes fondamentaux. Au bout du compte, il ne s'agit pas du chien, mais plutôt de la manière dont vous enseignez au chien.

COLLECTE DES RÉCOMPENSES

Enfin, après des mois de recherche et développement approfondis et de tests, le voici : BRAIN 0.1 est né. 

Nous avons décidé de l'exécuter sur un large déploiement Odoo 16 affecté par des problèmes de performance moyens à sévères sur une base de données contenant environ 2 ans de données opérationnelles. Voici les résultats en un mot :

Gains de performance générale


Gains de performance généraux d'Odoo après la mise en œuvre de Run-Odoo Brain

BRAIN AI a comparé le temps de réponse moyen du backend Odoo avant et après l'optimisation et a mesuré que le temps d'exécution moyen avait diminué de 1184 ms à 293 ms après l'avoir confirmé avec les journaux. Cela signifie essentiellement que la vitesse a augmenté d'un facteur de X4. 

Évaluation des améliorations de performance par fonctionnalité / module


📒 Comptabilité et Finance

Modules : compte, compte_rapports, compte_comptable, l10n_*

Améliorations : Liste des factures, rapprochement, rapports financiers, performance du tableau de bord.


👥 Ressources humaines et paie

Modules: hr, hr_expense, hr_payroll, hr_holidays, hr_attendance

Améliorations: Accès plus rapide aux dossiers des employés, suivi des dépenses et génération de bulletins de paie.


🛒 Ventes et CRM

Modules: vente, crm, contacts

Améliorations : recherche de clients, réactivité aux devis et à la liste des commandes.


📦 Inventaire et Achat

Modules : stock, achat, produit

Améliorations : recherche de produit, opérations de transfert, navigation dans les commandes d'achat.


🌐 Site Web, Portail et Marketing

Modules : site web, portail, mail

Améliorations : recherche de portail, chargement du site web, performance du chatter/message.


🔐 Contrôle d'accès et système

Modules : base, web, paramètres

Améliorations : chargement d'interface utilisateur plus rapide, vérifications de permission, évaluation des règles d'accès.


🛠️ Technique / Travaux en arrière-plan

Modules : base_automation, queue_job, bus

Améliorations : Tâches Cron, file d'attente asynchrone, accès à la journalisation/événements.


Résumé des améliorations de performance


Résumé des améliorations de performance après la mise en œuvre de Run-Odoo Brain

Actions et livrables

Pour résumer :

  • Un cycle d'exécution de 22 minutes.
  • 12 actions exécutées au niveau de l'infrastructure
  • 680 actions exécutées au niveau de la base de données
  • 23 paramètres de base de données modifiés
  • 3 paramètres de configuration Odoo changés
  • 16 recommandations de codage et d'infrastructure pour améliorer davantage
  • Production d'un rapport détaillé complet de 460 pages décrivant les changements.

C'est un solide exemple même si nous venons d'avoir, en écrivant cet article, une autre victoire sur un grand déploiement avec une augmentation de vitesse stupéfiante de 17,5 X, déplaçant le discours d'Odoo de « Nous sommes sur le point d'abandonner » à « Nous allons étendre ce déploiement et l'utiliser comme notre nouvelle colonne vertébrale ».

Et pourtant, en tant que CTO de groupe et initiateur de Brain, je ne suis toujours pas satisfait de son intelligence « pro-active ». Il doit apprendre davantage et « expérimenter » plus de données. Une évaluation honnête à ce stade serait de dire qu'il gère et corrige à peine 30 à 40 % de ce que nous voulons qu'il soit compétent à long terme. En effet, « c'est en forgeant qu'on devient forgeron », comme on dit.  

AUTRE CHOSE SUR LA FEUILLE DE ROUTE DU PRODUIT


Au vu des résultats quotidiens que nous obtenons désormais avec Brain, nous sommes maintenant absolument convaincus que l'implication de l'IA dans le processus d'optimisation était la bonne décision. L'IA BRAIN sera bientôt disponible pour tous les déploiements hébergés sur notre plateforme d'hébergement PurpleCloud et deviendra un atout majeur pour tout client de taille moyenne à grande nécessitant un SLA irréprochable et une expérience utilisateur qualitative.

Entre-temps, puisque les problèmes de performance sont un problème qui évolue tout au long du cycle de vie du déploiement et des mises à jour d'Odoo, nous changeons de cap pour non seulement permettre une utilisation ponctuelle « à la demande » de Brain sur tout déploiement, mais aussi intégrer l'IA DE BRAIN en tant que service permanent se comportant très semblablement à un agent dont la fonction serait la « version améliorée » d'un contrôle de santé qui :

  • Surveille, détecte les problèmes et la lenteur en temps réel.
  • Implémente des contre-mesures de manière dynamique.
  • Auto-rapport sur les comportements des utilisateurs, les problèmes et les résolutions.
  • Fait des recommandations

Découvrez des performances Odoo inégalées – contactez-nous pour explorer dès aujourd'hui la plateforme PurpleCloud propulsée par l'IA Brain !

Odoo: Votre logiciel open source pour la gestion des stocks
Transformez votre gestion des stocks avec le logiciel open source Odoo