par Matthéo, Lead Developer au sein de l’Agence Dn’D

En tant qu’agence partenaire de Magento, Dn’D accorde une importance primordiale au respect des bonnes pratiques de la solution, tout en portant une attention particulière aux problématiques liées à la sécurité et à la performance. C’est ce pourquoi nous nous sommes intéressés à Blackfire : en plus d’être simple d’utilisation, cette solution de profiling PHP est d’une très grande efficacité.

Découvrez dès maintenant les contributions de Dn’D pour la solution Blackfire afin d’améliorer vos performances sur Magento 2 !

Présentation de Blackfire

Blackfire est un outil qui instrumente les applications PHP pour recueillir des données sur les ressources serveur consommées comme la mémoire, le temps CPU (= le temps de calcul de vos programmes) et les opérations Input/Output. Blackfire peut être utilisé à n’importe quelle étape du cycle de vie de votre application : pendant le développement, le test, la production, pour profiler, tester, déboguer et optimiser ses performances.
Au-delà des outils de profiling existants (et de manière plus pro-active qu’en utilisant les APM), Blackfire vous aidera à définir et à atteindre les attentes de performances de votre application par des assertions. Dès la première ligne de code de votre application, tout comme vous écrivez des tests unitaires ou des tests d’intégration, vous pourrez écrire des tests de performance et exécuter des scénarios de test.

Mieux encore, vous pourrez automatiser les tests à l’aide d’intégrations en vous appuyant de vos outils de développement actuels, tester périodiquement des scénarios, intégrer automatiquement les scénarios de test avec d’autres outils et recevoir des notifications lorsque des rapports de construction sont disponibles. En termes de références, Blackfire a été utilisé par certains projets PHP populaires tels que ownCloud, Drupal, Symfony et Laravel pour améliorer leurs performances.


présentation de la solution de profiling Blackfire

Les contributions de Dn’D pour Blackfire

Blackfire dispose d’un add-on spécifique à Magento 2 contenant les bonnes pratiques de la plateforme autour de trois axes :

  • La performance
  • La sécurité
  • La qualité

 
Nous avons donc décidé de contribuer à la solution avec trois nouvelles recommandations :

  • The Magento 2 Profiler should not be called on production mode
  • The Magento 2 DB Logger should not be called on production mode
  • OPcache « save_comments » should be enabled on Magento 2

 

1. The Magento 2 Profiler should not be called on production mode

Le profiler de Magento permet d’analyser les performances de la plateforme. Cet outil doit être désactivé sur les environnements de production pour les raisons suivantes :

  • Performance : le profiler va stocker toutes les informations à afficher dans l’output durant le runtime de l’applicatif. Cela prend donc de la mémoire et du temps de traitement.
  • Sécurité : le profiler va afficher des informations pouvant être sensibles, telles que :
    • Les classes PHP
    • Les fichiers de template
    • Les observers et event
    • Les layouts
    • Les controllers
  •  
    Vous pouvez le désactiver via cette ligne de commande : bin/magento dev:profiler:disable

    2. The Magento 2 DB Logger should not be called on production mode

    Le DB Logger de Magento permet d’analyser toutes les requêtes SQL de la plateforme. Cet outil doit être désactivé sur les environnements de production pour les raisons suivantes :
     

  • Performance : le logger va écrire dans un fichier toutes les requêtes SQL exécutées sur la plateforme ainsi que le détail de tout le processus PHP ayant mené à la requête.
  • Sécurité : des informations sensibles peuvent être contenues dans les requêtes et dans le détail du processus PHP.

 
Vous pouvez le désactiver via cette ligne de commande : bin/magento dev:query-log:disable

OPcache « save_comments » should be enabled on Magento 2

L’option opcache.save_comments permet à OPcache de garder les commentaires du code dans le cache. Cette option doit être activée sur tous les environnements pour les raisons suivantes :

  • Qualité : de nombreuses applications dont Magento se basent sur ces commentaires dans leur logique interne. Il est donc important de les garder activées pour garantir un bon fonctionnement de la plateforme.

 
Vous pouvez activer cette option avec la ligne suivante : opcache.save_comments=1

Conclusion

L’expertise de Dn’D sur Magento couplée aux champs de compétences détenus par Blackfire en terme d’amélioration de code vous permettra de détenir une plateforme E-Commerce dont le code est suffisamment performant et rapide pour développer votre activité en toute efficacité.

N’hésitez pas à nous faire parvenir vos remarques et vos retours sur ces améliorations, nous serions heureux de perfectionner la solution Blackfire en y apportant davantage d’évolutions afin de répondre aux besoins de l’écosystème E-Commerce !

Vous avez aimé ?

0