NXTWEB HHVM / TYPO3. Compatibilité & Performance. HHVM / TYPO3 : Compatibilité & Performance



Documents pareils
SECURITY ADVISORY VULNERABILITE SUR LES DONNEES CLIENTS MAGENTO

Cursus 2013 Déployer un Content Management System

ORACLE TUNING PACK 11G

Vous rappelez-vous des premiers sites Internet auxquels vous avez accédé?

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

eps Network Services Alarmes IHM

Gestion du centre de données et virtualisation

Sage 50 Comptabilité. Solutions logicielles en nuage, sur place et hybrides : Qu'est-ce qui convient le mieux à votre petite entreprise?

Conférence Développeurs Magento. 27 novembre 2013 mageconf.org

Notre vision, Votre croissance

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

L'attribution marketing :

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

Hébergement PHP. Comprendre pour bien choisir son hébergement

Mettre à jour PrestaShop

COMMENT LIRE UN DEVIS DE CREATION DE SITE WEB?

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Mysql. Les requêtes préparées Prepared statements

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Éditions QAD On Demand est disponible en trois éditions standard : QAD On Demand is delivered in three standard editions:

Utilisation d'outils de WebMapping OpenSource dans une collectivité territoriale Communauté de Communes de l'agglomération Saint-Loise (CCASL)

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

PLAN 1. A PROPOS 2. EXPERTISE 3. NOS RÉFÉRENCES 4. TECHNOLOGIES 5. CONTACT

Réduisez vos activités de maintenance SAP pour vous concentrer sur la valeur ajoutée

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Formation Magento Intégrateur / Designer

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

Gérer une forte charge avec ez Publish Obtenir la meilleure réactivité de publication. Solutions natives ez. Solution spécifique.

S informer et se développer avec internet

CCI DE SAÔNE-ET-LOIRE - ATELIER ENP 18 MAI La création de sites internet

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Peregrine. AssetCenter. Product Documentation. Solution Asset Tracking. Part No. DAC-441-FR38. Build 49

Sommaire. 1. Présentation de WordPress. 2. Hébergement et installation. 3. Prise en main, ajouter des contenus

Hélène CHEUTIN. Master 2 ISMAG

carburant au soleil et à l'eau Premiers essais d'une voiture s I.

Module de livraison DPD Magento

Programme CREATION SITE INTERNET (CMS Wordpress)

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

En quoi consiste le REFERENCEMENT de votre site?

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

La solution IBM Rational pour une ALM Agile

Perrothon Sandrine UV Visible. Spectrophotométrie d'absorption moléculaire Étude et dosage de la vitamine B 6

Fabien Pinckaers Geoff Gardiner. OpenERP. Tiny. Pour une. gestion d entreprise efficace et intégrée. Groupe Eyrolles, 2008, ISBN :

Examen technique des technologies de mise en cache

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Pourquoi? Pourquoi externaliser? Pour être flexible et réactif Pour réduire ses coûts sans perdre en qualité

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento 1.4 et supérieur. Version 1.5.1

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Optimisation WAN de classe Centre de Données

Catalogue Formations Jalios

Les salaires de L écosystème php en france. L Association Française des Utilisateurs de PHP (AFUP) le cabinet de recrutement spécialisé Agence-e

novatis Agence Web innovatrice

Vérifier la qualité de vos applications logicielle de manière continue

Les messages d erreur d'applidis Client

MANUEL D INSTALLATION du module Chronopost pour. version 1.0.5

Examen professionnel. Informatique, système d information. Réseaux et télécommunications

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Qu'est-ce que le BPM?

Proposition pour la création d un site de gestion de projet

Utiliser un CMS: Wordpress

Karim EL KHALIFA Web developer

CA Desktop Migration Manager

Comment gagner du temps dans la gestion de votre boutique prestashop? Conférence Webinar du jeudi 11 Décembre 2014

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

3 Les premiers résultats des plans d'actions

Formation Magento Utilisateur/Administrateur

FOIRE AUX QUESTIONS ACT! 2009

TNT Express. Magento

Accélérez la transition vers le cloud

Créer et gérer des catégories sur votre site Magento

SOMMAIRE 1. NOTRE AGENCE NOS PRESTATIONS NOTRE MÉTHODOLOGIE PROJET NOS OFFRES LES ATOUTS DE NOS OFFRES...

Déploiement d ESUP-ECM à l Université de Valenciennes. Retour fonctionnel d expérience

Professionnel, mettez en avant votre expertise!

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

COMPÉTENCES TECHNIQUES

Synthèse d'études de migration vers LibreOffice vs MS Office STARXPERT MAI 2013 AUTEUR

INFORMATIONS ET INSTALLATION DU THEME CENATA RESPONSIVE

Observation des modalités et performances d'accès à Internet

INTRODUCTION. A- Modélisation et paramétrage : CHAPITRE I : MODÉLISATION. I. Paramétrage de la position d un solide : (S1) O O1 X

TYPO3, le CMS de référence

1. Installation du Module

Guide de configuration

Modules ICI relais & EXAPAQ Predict v4.0

Développer une culture d efficience

IMPORTER GRATUITEMENT VOS RÉSULTATS D'INVENTAIRE OCS DANS LANDPARK

client. ECOUTE, SIMPLICITE, SERVICE... Pour ELCIA, l'accompagnement est la clé de la satisfaction ELCIA, le savoir-faire et l'écoute

multi process 25 RUE Benoît Malon ROANNE

Des millions de visiteurs avec France Télévisions

Les logiciels libres de gestion de contenus Internet / Extranet pour le secteur public. 24 septembre 2008

Découvrir Drupal au travers d un cas client

HP OpenView AssetCenter

Qualité du logiciel: Méthodes de test

Transcription:

NXTWEB HHVM / TYPO3 Compatibilité & Performance

Typo3, HHVM et Nxtweb en quelques mots Typo3 est un CMS utilisé par environ 500 000 sites web à travers le monde. Les promoteurs et utilisateurs de Typo3 mettent en avant sa flexibilité, son excellente internationalisation, sa maturité et ses performances. Typo3 est particulièrement adapté à la réalisation de sites d'entreprise ou de grands sites institutionnels. HHVM est un interpréteur PHP développé par les équipes de Facebook. Sa raison d'être est la diminution du temps de calcul consacré à l'exécution du code PHP. C'est un projet open-source, disponible sur github depuis 2010. Il a été conçu initialement pour exécuter le code du site Facebook et présentait à l'origine de nombreuses lacunes dans le traitement des CMS les plus courants. Peu à peu, pour un certain nombre de plateformes, HHVM s'est rapproché d'une iso-fonctionnalité totale avec son prédécesseur, l'interpréteur Zend. Côté performance, les résultats sont au rendez-vous. Il est aujourd'hui admis qu'hhvm est l'interpréteur PHP le plus efficace du marché. Nxtweb est une startup dont le coeur de métier est d'optimiser les performances des sites internet. Les gains en efficacité que nous obtenons bénéficient à tous les acteurs de la toile : propriétaires, développeurs, hébergeurs et utilisateurs. Par ailleurs, en diminuant drastiquement les besoins en ressources machine, notre action améliore nettement le bilan environnemental du web. Nxtweb a fait d'hhvm son principal outil d'optimisation. Nous corrigeons ses bugs résiduels et développons des extensions accélératrices dédiées. Autrement dit, nous sommes à même de mettre en place les sites Wordpress, Prestashop, Magento, etc... voire Typo3?, les plus rapides au monde. HHVM peut-il améliorer les performances des sites Typo3? Cette question n'est pas nouvelle. Dès avril 2014, au vu des résultats très positifs obtenus sur les plateformes concurrentes, les mainteneurs du CMS ont lancé plusieurs actions dans le but d'aboutir à la compatibilité HHVM de Typo3. Les dernières informations disponibles sur le sujet semblent indiquer que ce projet n'a pas été mené à bien. Pour nous forger notre propre opinion sur la question, nous avons décidé de reprendre le problème à zéro : en passant les tests de non-régression PHPUnit en mesurant la plus-value obtenue sur le frontend du site "The Official Introduction Package". Nous nous servons ici de Typo3 pour éclairer la nature de notre travail d optimisation et de maintenance fonctionnelle. Un travail sans doute un peu complexe à présenter autrement que par une étude de cas. Nous intervenons en effet à la croisée de l'outil HHVM, des CMS PHP et de leur utilisation dans la construction de sites web particuliers. Evaluer la compatibilité : Les tests unitaires Les promoteurs de Typo3 ont une démarche qualité très appréciable. Ils ont notamment créé une suite de tests de non-régression afin de valider le bon fonctionnement des évolutions successives.

En 2014, c'est très naturellement cette suite de tests qui a été utilisée pour établir un premier aperçu de la compatibilité HHVM de Typo3. On constate alors que 95,5% des 6458 tests de non-régression se terminent correctement. http://blog.macopedia.co/post/running-typo3-cms-on-hhvm-part2/#.vemkbmztmko La dernière log du testeur résume la situation d'alors : FAILURES! Tests: 6458, Assertions: 10675, Failures: 71, Errors: 45, Incomplete: 17, Skipped: 153. C 'est à dire que 95.57% des tests se sont bien déroulés, 1.1% ont échoué, 0.7% ont provoqué une erreur, 0.26% ont été incomplets et 2.37% n'ont pas été exécutés car non pertinents sur l'environnement utilisé. En août 2015, nous constatons que les dernières versions du testeur, de Typo3 et de HHVM produisent cette sortie : FAILURES! Tests: 7268, Assertions: 9379, Errors: 4, Failures: 6, Skipped: 144. Les tests en erreurs Ce sont des tests qui n'ont pu être menés à bien du fait d'une incompatibilité HHVM du code du testeur. Ces incompatibilités sont traitées au fil de l'eau par les développeurs Typo3. Pour pouvoir réaliser tous les tests nous avons : appliqué le patch https://github.com/sebastianbergmann/phpunit-mockobjects/commit/6e4f3076f790b391396778d11a3a5843313ac350 pour le test scanavailablepackageskeepsexistingpackageconfiguration, appliqué la modification suivante dans le fichier./typo3/sysext/core/tests/unit/package/packagemanagertest.php //patch nxtweb $packagestates = require('vfs://test/configuration/packagestates.php'); $packagestates = eval(substr(substr(file_get_contents('vfs://test/configuration/packagestates.php'),5),0, -2).";"); Les tests en echec Il s'agit de tests qui se sont déroulés entièrement mais dont le résultat ne correspond pas au résultat attendu. checkdatewithinvaliddatevalues with data set "Not Good" : correction par nxtweb du code hhvm checkdatewithinvaliddatevalues with data set "HH:ii yyyy-mm-dd" : correction par nxtweb du code hhvm scanavailablepackagestraversesthepackagesdirectoryandregisterspackagesitfinds Ces 3 cas d'erreurs correspondent à des incompatibilités réelles de HHVM avec le code Typo3. Nous avons corrigé, en une quarantaine de lignes, les portions de code HHVM fautives.

Les tests après corrections Nxtweb Après correction de l'outil de test et de HHVM par Nxtweb, il ne reste plus que 3 tests en échec : registeredextractorclasswithsamepriorityarereturnedinsameorderastheywereadded registeredfilerendererclasswithsamepriorityarereturnedinsameorderastheywereadded executevaluemodifierreturnsmodifiedresult Ces erreurs correspondent à des "faux positifs" (comportement attendu erroné) qui sont en cours de traitement par les développeurs Typo3 (https://forge.typo3.org/issues/65315 et https://forge.typo3.org/issues/65317) Conclusion A ce stade de notre étude, nous disposons donc du premier binaire HHVM 100% compatible avec les tests unitaires Typo3. Evaluer les performances Notre protocole de test est le suivant : Nous interrogeons toutes les urls du front office du site "Introduction package" avec 1, 3, 5, 10 et 50 concurrents et nous mesurons les paramètres suivants : cpu, mémoire, temps de réponse obtenus avec php 5.6 puis avec HHVM. Voici nos premiers résultats : Comparaison des consommations moyennes CPU (%) Consommation moyenne CPU (%) 100 50-27,5 % -25,5 % -29,6 % -35 % -46,5 % Nxtweb 3.8 2

Comparaison des consommations moyennes Mémoire RES Consommation moyenne Mémoire RES (Octets) 600 k 400 k +45,4 % +41,2 % +38,4 % +45,2 % +41,1 % -46,5 % Nxtweb 3.8 2 Comparaison des moyennes des temps de réponse 0,06 Temps de réponse moyen (sec) 0,04 /2-43,8 % -48,5 % /2,2 /2,1 Nxtweb 3.8

Aller au-delà Pour Nxtweb, les gains obtenus grâce à HHVM ne sont qu'un point de départ. Nous avons profilé les différents traitements du front Typo3 et avons créé un accélérateur HHVM dédié à ce CMS. Les gains obtenus par rapport à la version HHVM de base sont les suivants : Comparaison des consommations moyennes CPU (%) Consommation moyenne CPU (%) 60 40 20-16,3 % -12,9 % -27,2 % -28,2 % -24,1 % Nxtweb 3.8 OPT Nxtweb 3.8 Comparaison des moyennes des temps de réponse 0,03-19,8 % Temps de réponse moyen (sec) 0,02 20-31,7 % -20,6% -10% -31,7 % Nxtweb 3.8 OPT Nxtweb 3.8

Comparé à php 5.6, nous obtenons : Comparaison des consommations moyennes CPU (%) Consommation moyenne CPU (%) 100 50-39,3 % -35,1 % -48,8 % /2,1 / 2,5 Nxtweb 3.8 OPT Comparaison des moyennes des temps de réponse Temps de réponse moyen (sec) 0,06 0,04 20 /2,9 /2,4 /2,4 /2,6 /2,6 Nxtweb 3.8 OPT Conclusion A ce stade de nos tests, nous disposons, à configuration et paramétrage égals, du site Typo3 "Introduction package" le plus rapide au monde! ;-).

Bilan Nous avons montré que l'isofonctionnalité HHVM/Zend pour Typo3 est accessible dès aujourd'hui. qu HHVM divise plus ou moins par deux les consommations CPU et les temps de réponses du front Typo3 "Introduction Package". En ce qui concerne les performances et la consommation énergétique, faute de temps/budget, cette étude est très incomplète. Nous n'avons pas eu le loisir de bencher le backoffice. Il faut pourtant s'attendre sur cette partie de l'application à des résultats beaucoup plus positifs encore. En effet, plus les traitements php sont importants et plus l'écart se creuse entre HHVM et Zend. Or, les requêtes backoffice, qui ne peuvent bénéficier des mécanismes de cache qui réduisent au strict minimum les traitements front-office, sont très gourmandes en CPU. Pour certains clients de Nxtweb, tous CMS confondus, la plus value d'hhvm réside d'ailleurs dans l'accélération du backoffice : leurs gains de productivité pendant la phase d'intégration sont impressionnants. L'optimisation que nous avons réalisée est très sommaire. Avec un peu de temps et l'aide d'une expertise Typo3, il est certainement possible d'aller beaucoup plus loin. Toujours faute de temps, nous n'avons pas pu mesurer l'impact d'hhvm sur la consommation électrique du site Typo3. Nos précédents tests nous ont montré que la diminution de la consommation CPU moyenne donnait un ordre de grandeur de la diminution de consommation énergétique induite. On peut donc raisonnablement tabler sur une division par 2 de cette consommation. En résumé, nos tests ont porté sur une partie seulement d'un site Typo3 de démonstration. Il serait imprudent d'affirmer que nos conclusions s'appliquent à tous les front/back de tous les sites Typo3 aujourd'hui en production. Néanmoins, nous pensons avoir établi que la migration d'un site opérationnel a de grandes chances de s'avérer payante. Il est aujourd'hui admis que l'efficacité est un enjeu crucial pour les sites marchands. Il faut rappeler que les sites institutionnels ont également tout à gagner à améliorer leurs performances. Optimiser la réactivité d'un site institutionnel, c'est lui donner plus de visibilité, augmenter son trafic et le nombre de pages vues par visite. C'est également, en fluidifiant son utilisation, lui offrir une identité web dynamique et positive. Enfin, diminuer son impact environnemental, c'est participer à la révolution greenit et pouvoir revendiquer une démarche éco-responsable.