Solutions d’API Odoo

Que faire lorsque l'API Odoo standard atteint sa limite et que les performances de la base de données diminuent.

Pourquoi consacrerons-nous un article entier aux solutions d'API Odoo ?

Au cours de ces dernières années, nous avons été témoins d'un nombre croissant d'exigences de la part des clients pour intégrer leur Odoo à des systèmes tiers en utilisant le système API Odoo et l'interface API XML-RPC Odoo.

Par ailleurs, nous avons également remarqué qu'à mesure que l'entreprise grandit et que les cas d'utilisation augmentent, les limites de l'API Odoo standard commencent à affecter la productivité de l’entreprise.

Ainsi, quelles sont les causes et que devriez-vous faire dans ce cas là ?

Odoo API Solutions

Limites de l'API Odoo standard


Lorsque l'on considère les performances de l'API "prête à l'emploi" d'Odoo, on se rend vite compte qu'elle ne peut pas gérer de gros flux de données ainsi qu’un volume de travail important. Par exemple, nos tests révèlent qu'il est difficile de créer plus de deux à trois bons de commande par seconde et par vendeur sans personnalisation, même  sur la version Enterprise Odoo 14 & 15

Cela est principalement dû au fait que les transactions POST (déplacement des transactions de tous les journaux vers grand livre) effectuées dans Odoo doivent encore être validées au niveau Odoo par les mécanismes ORM. Les mêmes problèmes se produisent avec les importations de données moyennes à volumineuses.

De nombreux projets ont échoué car les développeurs Odoo n'avaient pas bien évalué les besoins en termes de volume et de rapidité nécessaires dès le départ, tandis que les clients savent combien de bons de commande, de listes de prélèvement, de déménagements d'entrepôt et de factures ils généreraient au cours d’une année.

La situation sera d’autant plus pire que les développeurs d'applications pour smartphones pensent qu'ils peuvent utiliser l’API XML/RPC standard d'Odoo pour alimenter les applications des utilisateurs finaux avec des milliers de personnes connectées simultanément. Ils dépassent la capacité de l'ORM Odoo avec des applications B2C impliquant des milliers d'utilisateurs.


Une échelle différente implique une architecture différente


Il existe essentiellement trois manières différentes de gérer l'interface API.

1.  Approche standard et "légère" d'Odoo

L' approche standard et "légère" d'Odoo utilise l'API externe fournie par Odoo pour accéder aux fonctionnalités et aux données lors de l'intégration avec d'autres outils externes. Les développeurs peuvent y accéder via l'interface API XML-RPC Odoo, disponible dans plusieurs langages tels que Python, Java, PHP et Ruby.

e premier avantage de cette approche est qu'elle est facile à mettre en œuvre car tout le gros du travail a été fait par Odoo, avec une iciclaire. Cette approche a des résultats rapides et la cohérence des données est protégée par la validation ORM standard d'Odoo.

En adoptant cette approche, les utilisateurs s'appuient sur l'API (avec un architecture et implémentation standard) telle que fournie par Odoo sans aucune modification. Cependant, elle ne permet pas une grande intégration de données et seul un nombre limité d'utilisateurs simultanés est autorisé.

Points faibles
  • Elle ne peut accueillir qu'un nombre limité de transactions et d'utilisateurs simultanés sans défaillance.

  • Le système ne peut pas accepter au-delà d'une quantité limitée de données.

  • Elle n'est pas évolutive.


2.  Intégration API avancée

L'approche standard de l'API Odoo simplifie l'intégration, mais que se passe-t-il lorsque davantage de transactions doivent être traitées ? D'où la nécessité d'une intégration API avancée.

Cette approche va donc au-delà des fonctionnalités standard d'Odoo ORM. Pour que cette approche fonctionne, la logique d'accès aux données doit être repensée selon les lignes directrices suivantes:

  • Utiliser Odoo ORM pour créer/mettre à jour les modèles de données et les objets connectés

  • Implémenter un connecteur dédié et contourner les fonctionnalités Odoo XML/RPC si nécessaire

  • Remplacez les fonctionnalités de l'API standard d'Odoo par un autre moteur d'API pour plus de performances

  • Intégrer les processus de validation des données de l'ORM au nouveau API pour accélérer le temps de validation/réponse

Avantages et Inconvénients

L'intégration API avancée signifie qu'il est possible d'accueillir beaucoup plus d'utilisateurs simultanés potentiels que l'approche API standard. Cela signifie que davantage de volumes de données peuvent être traités par appel et au total. Et sans aucun doute, cette solution accepte plus de transactions sans affecter les performances.

Le premier inconvénient auquel les utilisateurs seront confrontés est de nouvelles piles technologiques introduites dans le projet, ce qui signifie qu'une plus grande expertise est requise pour effectuer le travail. Ainsi, alors que l'API Odoo reste la solution principale, l'architecture mise à niveau exige que l'ETL (Extract, Transform, Load) soit désormais réparti sur deux systèmes différents. Préserver la cohérence liée à l’ETL nécessite alors un niveau de rigueur plus élevé.

Rencontrez-vous des problèmes avec l'API Odoo standard ?

Odoo • Image and Text


3.  Solution API haute performance

Cette année, nos équipes ont livré un système d'architecture haute disponibilité dédié à un géant du marché sud-asiatique. Les performances initiales et les exigences de charge s'élèvent à 1500 insertions (requêtes POST) par seconde et à 10 000 téléchargements (requêtes GET) par seconde.

Avec une telle exigence, les capacités spécifiées des modules Odoo standard utilisant l'API XML-RPC Odoo standard ont été dépassées. Même une intégration API avancée ne suffirait pas car la pression imposée par les utilisateurs simultanés pourrait facilement perturber les performances et la capacité de la base de données Odoo lors de la gestion des transactions.

Pour cela, l’équipe de Port Cities a dû recourir aux technologies suivantes:

  • Architecture divisée Odoo/API

  • Service API démon (externe à Odoo) fonctionnant en mode multi-threading

  • Conformité du moteur API avec les mécanismes de load-balancing (ce qui nous offrait un potentiel de croissance quasi infini en terme de capacité)

  • Authentification et autorisations SQL intégrées

  • Types de données SQL et discrimination de type ORM

  • Bibliothèques C+ PostgreSQL dédiées

  • Shell Haskell et fichier exécutable binaire 

Grâce à cette nouvelle pile, nous avons amélioré les performances aux niveaux suivants:

  • L'authentification / autorisation se produit au niveau bas au lieu d'extraire les droits d'accès de l'ORM

  • La validation des données est en temps réel sans passer par l'ORM

  • Amélioration de la sécurité puisque le connecteur XML-RPC du back-end ERP n'est plus ouvert à l'accès public

Comme vous pouvez le voir, c'est assez impressionnant et les spécifications du système ne sont pas exagérées. Vous n'aurez besoin que d'un processeur avec au moins 1 Go de RAM et un SSD de 5 Go.

Le temps d'exécution de 1500 ordres de vente prend environ 3 secondes sur une architecture simple. Il chute jusqu'à 200 millisecondes lorsqu'ils sont répartis sur plusieurs cœurs/processeurs et des groupes d'instances ou des clusters d'instances gérés à charge équilibrée. En plus, plus vous ajoutez de cœurs et de threads, plus la capacité de l'API est grande.


Votre accès à une solution API haute performance


i les contraintes imposées par vos utilisateurs actuels perturbent les performances et la capacité de la base de données Odoo, il est temps que vous recherchiez une nouvelle solution. Port Cities est à votre disposition. Nous avons une équipe mondiale alimentée par plus de 170 experts Odoo avec une expérience dans la gestion des intégrations d'API hautes performances.

Contactez-nous ici.


6 septembre, 2022
AUTEUR
Solutions d’API Odoo
Denis Guillot
Group Technical Director
Denis is a technical expert with over 20 years of experience with ERP implementations. His specializations are in IT infrastructure, API integrations and high-volume transactions. He is the Director of Technology and oversees the Research & Development function at Port Cities.
Partager cet article

Want more free tips with Odoo?

Join our newsletter to stay updated!