Hautes performances
& TYPO3
2
QUI SUIS-JE ?
ROMAIN LELEU
Responsable Technique
Direction Technique Groupe Smile
T3Uni 2015
Hautes performances & TYPO3...
3
PERFORMANCES
De vitesse !
 Essentiellement le temps entre une requête et :
o l’affichage « au dessus de la ligne de flo...
4
PERFORMANCES
Plus de clients
Selon Akamai 40% des internautes n’attendent pas 3 secondes.
Le mobile impose des contraint...
5
PERFORMANCES
Votre « site » ? Mais encore…
T3Uni 2015
Hautes performances & TYPO3
MON SITE EST LENT…
Pour obtenir de bonnes performances
il faut s’intéresser à tous les
maillons de la chaine
7
OPTIMISER LE
T3Uni 2015
Hautes performances & TYPO3
FRONTEND
8
OPTIMISER LE FRONTEND
Des ressources externes - souvent bloquantes
 Impliquent des requêtes réseau supplémentaires
 Le...
9
OPTIMISER LE FRONTEND
TYPO3 propose beaucoup de réglages
 config.compressJs // config.compressCss
 config.concatenateJ...
10
FRONTEND
Images = temps de chargement à surveiller
Les points d’attention
 Format de fichier: JPEG & PNG en priorité
...
11
FRONTEND
Exploiter le cache des navigateurs
 Librairies JS depuis les CDN publics
 Définir les en-têtes:
o « Expires ...
12
FRONTEND
Permet de ne pas recharger une page complète
Single Page Application (SPA)  idéal pour un flux JSON
EID & Wid...
13
OPTIMISER
T3Uni 2015
Hautes performances & TYPO3
TYPO3
14
OPTIMISER TYPO3
TYPO3 propose un cache efficace
Il est indispensable de l’exploiter et de comprendre son fonctionnement...
15
OPTIMISER TYPO3
Définir des politiques de cache différentes dans une même page
T3Uni 2015
Hautes performances & TYPO3
L...
16
OPTIMISER TYPO3
Différents content objects
 USER/USER_INT & COA/COA_INT
 A la base du cache par blocs
stdWrap.cache
G...
17
OPTIMISER TYPO3
Certaines versions sont plus performantes que d’autres
Version 7.1 et supérieures
 Suppression du « co...
18
OPTIMISER TYPO3
Désactiver les sessions Frontend
Désactiver les FeGroup et les FeUser
 Pas d’authentification ? Pourqu...
19
OPTIMISER TYPO3
Désactiver les caches
 TSFE->set_no_cache()
 ?no_cache=1
 USER_INT à la place d’un USER avec un cHas...
20
OPTIMISER
T3Uni 2015
Hautes performances & TYPO3
L’INFRASTRUCTURE
21
OPTIMISER L’INFRASTRUCTURE
Apache c’est lourd, remplaçons le par Nginx
 Fausse bonne idée !
o Cela ne change rien sur ...
22
OPTIMISER L’INFRASTRUCTURE
Plus PHP est récent plus il va vite.
 Moins de consommation mémoire, plus de vitesse
 PHP ...
23
OPTIMISER L’INFRASTRUCTURE
T3Uni 2015
Hautes performances & TYPO3
PHP – CACHE D’OPCODE ?
24
OPTIMISER L’INFRASTRUCTURE
MySQL 5.7 = gain de performance
 Moteur InnoDB largement amélioré
 IOPS: 2x plus que 5.6 /...
25
OPTIMISER L’INFRASTRUCTURE
Varnish
 Son but principal: décharger le serveur HTTP
o Supporte plusieurs milliers de requ...
26
OPTIMISER L’INFRASTRUCTURE
Où dans l’infrastructure ?
T3Uni 2015
Hautes performances & TYPO3
PROXY CACHE HTTP
27
OPTIMISER L’INFRASTRUCTURE
Quelle logique ?
T3Uni 2015
Hautes performances & TYPO3
PROXY CACHE HTTP
28
OPTIMISER L’INFRASTRUCTURE
Rapprocher le contenu du visiteur
Répondre plus vite
Répartir la charge
Quelques solutions
...
29
OPTIMISER L’INFRASTRUCTURE
Scaling horizontal
 Améliore aussi la disponibilité en cas de panne
 Ajouter des serveurs ...
30
T3Uni 2015
Hautes performances & TYPO3
ANALYSER
& TESTER
31
TESTER & ANALYSER
La première étape avant d’agir
 Pour mieux cibler nos efforts
 Pour quantifier les gains
Se placer ...
32
TESTER & ANALYSER
Analyse
 PageSpeed (Google)
 Yslow (Yahoo)
 GTMetrix
 Webpagetest.org
 PingDom
 Profilers PHP: ...
33
TESTER & ANALYSER
T3Uni 2015
Hautes performances & TYPO3
LES BONS OUTILS – MESURES AVEC GTMETRIX
34
TESTER & ANALYSER
T3Uni 2015
Hautes performances & TYPO3
LES BONS OUTILS – PROFILING PHP
C’est bien tout ça
mais par où commencer ?
36
HAUTES PERFORMANCES & TYPO3
Viser les macro-optimisations en premier
 Donne les résultats les plus visibles, rapidemen...
37
HAUTES PERFORMANCES & TYPO3
Wiki TYPO3
 http://wiki.typo3.org/Performance_tuning
Mailing List « TYPO3 Performance »
 ...
QUESTIONS ?
Prochain SlideShare
Chargement dans…5
×

TYPO3 et hautes performances - T3UNI 2015

1 786 vues

Publié le

Découvrez les défis et les possibilités d'intégration du CMS TYPO3 dans une architecture hautes performances.

Au delà des principes et concepts généraux liés aux performances, nous y abordons les optimisations frontend, d'architecture, d'hébergement et bien évidemment l'optimisation de TYPO3.

Nous y évoquons enfin les bonnes pratiques et nos préconisations dans la mise en place de ces solutions.

Ce document a été présenté lors de la T3UNI 15 à Annecy.

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 786
Sur SlideShare
0
Issues des intégrations
0
Intégrations
384
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

TYPO3 et hautes performances - T3UNI 2015

  1. 1. Hautes performances & TYPO3
  2. 2. 2 QUI SUIS-JE ? ROMAIN LELEU Responsable Technique Direction Technique Groupe Smile T3Uni 2015 Hautes performances & TYPO3 Partenaire GOLD & Des collaborateurs experts et certifiés T3UNI FR, T3CON EU, Code Sprint
  3. 3. 3 PERFORMANCES De vitesse !  Essentiellement le temps entre une requête et : o l’affichage « au dessus de la ligne de flottaison » o l’affichage complet de la réponse De résistance aux pics de charge  Période de solde ? Actualité chaude ? Ces 2 facteurs sont intimement liés Le temps est relatif, avec des seuils psychologiques  < 100ms = instantané  ~ 1sec = chargement perceptible  > 2sec = attente = frustration  9.58sec = une éternité T3Uni 2015 Hautes performances & TYPO3 DE QUOI PARLE-T-ON ?
  4. 4. 4 PERFORMANCES Plus de clients Selon Akamai 40% des internautes n’attendent pas 3 secondes. Le mobile impose des contraintes supplémentaires. S’adresser à des zones géographiques plus larges. Plus de satisfaction Meilleure image de marque. Donner l’envie de revenir. Meilleur référencement Critère de référencement Google depuis 2010. Moins de ressources consommées = économies Dépenses d’hébergement réduites. T3Uni 2015 Hautes performances & TYPO3 POURQUOI ?
  5. 5. 5 PERFORMANCES Votre « site » ? Mais encore… T3Uni 2015 Hautes performances & TYPO3 MON SITE EST LENT…
  6. 6. Pour obtenir de bonnes performances il faut s’intéresser à tous les maillons de la chaine
  7. 7. 7 OPTIMISER LE T3Uni 2015 Hautes performances & TYPO3 FRONTEND
  8. 8. 8 OPTIMISER LE FRONTEND Des ressources externes - souvent bloquantes  Impliquent des requêtes réseau supplémentaires  Le navigateur doit attendre leur réception pour pouvoir « comprendre », charger la ressource suivante et enfin afficher la page Organiser et retravailler ces ressources  Réduire l’accès à des fichiers externes o concaténation, utiliser les CDN publics (CDNJS Cloudflare, Google)  Réduire leur taille o cascade, url relatives, minification, compression  Intégrer le minimum vital directement dans le corps de la page Décaler le chargement du reste o Balises <link> & <script> en fin de page o Attribut « async » T3Uni 2015 Hautes performances & TYPO3 CSS & JS
  9. 9. 9 OPTIMISER LE FRONTEND TYPO3 propose beaucoup de réglages  config.compressJs // config.compressCss  config.concatenateJs // config.concatenateCss // config.concatenateJsAndCss  page { includeJS { async disableCompression excludeFromConcatenation } includeJSFooter includeJSLibs includeJSFooterlibs jsInline jsFooterInline includeCSS includeCSSLibs }  $GLOBALS['TYPO3_CONF_VARS']['FE']['compressionLevel'] Et pourtant certains cas ne sont pas intégrables facilement   Heureusement les extensions et le Typoscript sont là T3Uni 2015 Hautes performances & TYPO3 CSS & JS
  10. 10. 10 FRONTEND Images = temps de chargement à surveiller Les points d’attention  Format de fichier: JPEG & PNG en priorité  Beaucoup de ressources: sprite CSS  Dimensions des images selon la cible  Demain: WebP ? TYPO3 propose des outils complets  Conversion de format  Redimensionnement  Suppression des meta-data  Responsive image T3Uni 2015 Hautes performances & TYPO3 IMAGES
  11. 11. 11 FRONTEND Exploiter le cache des navigateurs  Librairies JS depuis les CDN publics  Définir les en-têtes: o « Expires » ou « Cache-control » o « Etag » ou « Last-Modified »  Configurer l’envoi des en-têtes dans TYPO3 o Typoscript: config.sendCacheHeader  TYPO3 ajoute automatiquement un timestamp aux ressources générées  pas de problème d’invalidation de cache /typo3temp/compressor/merged-8cf49e3.css?1435048000 T3Uni 2015 Hautes performances & TYPO3 MISE EN CACHE
  12. 12. 12 FRONTEND Permet de ne pas recharger une page complète Single Page Application (SPA)  idéal pour un flux JSON EID & Widget: Bootstrap du noyau plus léger  Consommation CPU et mémoire réduite  N’activera que ce qui est demandé o Base de données o User  Simplicité d’utilisation Exemple: <f:widget.paginate> T3Uni 2015 Hautes performances & TYPO3 PAGE TYPE, EID & WIDGET
  13. 13. 13 OPTIMISER T3Uni 2015 Hautes performances & TYPO3 TYPO3
  14. 14. 14 OPTIMISER TYPO3 TYPO3 propose un cache efficace Il est indispensable de l’exploiter et de comprendre son fonctionnement Différents types de cache  Cache de configuration  Cache de code (TSconfig: options.clearCache.system = 1 )  Cache de page Cache de page = page + blocs Exploiter correctement les USER/USER_INT et le cHash Tout est expliqué dans la doc TYPO3 ! Configurer les caches  Durée  Backend: fichiers, SQL, Redis, APC, Memcached T3Uni 2015 Hautes performances & TYPO3 LE CACHE - PRINCIPES
  15. 15. 15 OPTIMISER TYPO3 Définir des politiques de cache différentes dans une même page T3Uni 2015 Hautes performances & TYPO3 LE CACHE – PAR BLOCS ?
  16. 16. 16 OPTIMISER TYPO3 Différents content objects  USER/USER_INT & COA/COA_INT  A la base du cache par blocs stdWrap.cache Gestion des clés, des tags et de la durée HMENU.cachePeriod Menu = beaucoup de typolink = lent 24h par défaut, peut souvent être étendu ViewHelper render.cache (VHS) {v:render.cache(identity: [mixed], content: [mixed], onError: 'NULL', graceful: 1)} nc_static_filecache Créé une version HTML statique de la page. Mod Rewrite sert ces fichiers en priorité. Ne fonctionne que sur des pages entièrement en cache (pas de USER_INT !). T3Uni 2015 Hautes performances & TYPO3 LE CACHE – OUTILS
  17. 17. 17 OPTIMISER TYPO3 Certaines versions sont plus performantes que d’autres Version 7.1 et supérieures  Suppression du « code mort » et des alias de classes  Autoloader PSR-4 de Composer (backporté en 6.2.10)  Frameworks javascript plus légers  ViewHelpers compilables  Compatibilité avec les versions de PHP 5.5 et supérieures  Compression et concaténation CSS/JS améliorées T3Uni 2015 Hautes performances & TYPO3 LE BON NOYAU
  18. 18. 18 OPTIMISER TYPO3 Désactiver les sessions Frontend Désactiver les FeGroup et les FeUser  Pas d’authentification ? Pourquoi s’embêter ! Désactiver les extensions « lourdes »  Workspaces  Versionning  Dbal  Compatibility6 Désactiver les logs les plus détaillées en production  Deprecation Log T3Uni 2015 Hautes performances & TYPO3 RÉDUIRE L’EMPREINTE DU NOYAU
  19. 19. 19 OPTIMISER TYPO3 Désactiver les caches  TSFE->set_no_cache()  ?no_cache=1  USER_INT à la place d’un USER avec un cHash Conditions Typoscripts  Chaque cas d’une condition = un hash différent = un cache différent   Remplacer le baseURL et ses conditions par un « config.absRefPrefix » Le mauvais code PHP  Développements spécifiques  Extensions communautaires non auditées  Erreurs, Warnings et Notices sont couteux en ressources T3Uni 2015 Hautes performances & TYPO3 CES CHOSES À ÉVITER
  20. 20. 20 OPTIMISER T3Uni 2015 Hautes performances & TYPO3 L’INFRASTRUCTURE
  21. 21. 21 OPTIMISER L’INFRASTRUCTURE Apache c’est lourd, remplaçons le par Nginx  Fausse bonne idée ! o Cela ne change rien sur les pages TYPO3 (et le PHP en général) o Apache 2.4 se permet même d’aller un peu plus vite à condition de désactiver le support des .htaccess  Oui mais les fichiers statiques ? Il y a mieux que Nginx pour ça… Configurer mod_expires et mod_deflate Pré-requis essentiels pour une bonne gestion des ressources Frontend. TYPO3 fournis quelques exemples dans sont fichiers .htaccess. Désactiver le support des .htaccess T3Uni 2015 Hautes performances & TYPO3 APACHE
  22. 22. 22 OPTIMISER L’INFRASTRUCTURE Plus PHP est récent plus il va vite.  Moins de consommation mémoire, plus de vitesse  PHP 5.6 = ♥  PHP 7 = PHP NG = ♥ ♥ ♥ o Wordpress est 2 fois plus rapide, 75% de consommation CPU en moins o Plus rapide que HHVM ! 39% d’amélioration sur Laravel o Disponibilité annoncée pour octobre 2015 (sources: Zend.com) Cache d’opcode  APC / Opcache selon la version de PHP  De x2 à x10 en temps d’exécution PHP-FPM = fastCGI sans les défauts Surveiller les logs  Chaque log est couteux. Eviter les erreurs/warning/notice. T3Uni 2015 Hautes performances & TYPO3 PHP
  23. 23. 23 OPTIMISER L’INFRASTRUCTURE T3Uni 2015 Hautes performances & TYPO3 PHP – CACHE D’OPCODE ?
  24. 24. 24 OPTIMISER L’INFRASTRUCTURE MySQL 5.7 = gain de performance  Moteur InnoDB largement amélioré  IOPS: 2x plus que 5.6 // 3x plus que 5.5 (iops = input/output per second) (source: Sysbench)  Sharding facilité par « Fabric » et une réplication améliorée Configuration et hardware adaptés  Allouer la mémoire nécessaire aux buffers et index  SSD / FusionIO & RAM conséquente Développements spécifiques  Penser à ajouter des index pertinents !  Activer l’extension indexed_search_mysql Analyser les requêtes et surveiller les logs  En particulier le Slow Query Maria DB et Percona sont des alternatives à surveiller T3Uni 2015 Hautes performances & TYPO3 MYSQL
  25. 25. 25 OPTIMISER L’INFRASTRUCTURE Varnish  Son but principal: décharger le serveur HTTP o Supporte plusieurs milliers de requêtes par seconde  Load balancing / Failover  WAF (un peu seulement) Conjuguer TYPO3 et ESI  ESI = Edge Side Include o <esi:include src="index$(GEO{'country_code'}|'US').html" alt="indexUS.html" ttl="2h" maxwait="5000"/> o Peut contenir des règles de calcul avancées  Le mécanisme colle au principe du cache par bloc de TYPO3 Plusieurs extensions TYPO3 facilitent la gestion du cache  moc_varnish, varnish, vcc, proxycachemanager T3Uni 2015 Hautes performances & TYPO3 PROXY CACHE HTTP
  26. 26. 26 OPTIMISER L’INFRASTRUCTURE Où dans l’infrastructure ? T3Uni 2015 Hautes performances & TYPO3 PROXY CACHE HTTP
  27. 27. 27 OPTIMISER L’INFRASTRUCTURE Quelle logique ? T3Uni 2015 Hautes performances & TYPO3 PROXY CACHE HTTP
  28. 28. 28 OPTIMISER L’INFRASTRUCTURE Rapprocher le contenu du visiteur Répondre plus vite Répartir la charge Quelques solutions  Akamai FastDNS & AuraCDN  Amazon Route53 & CloudFront  CloudFlare  Extension TYPO3: smile_cdn Défaut principal: vidage du cache pas toujours facile  A réserver aux ressources statiques plutôt qu’aux pages Solutions gratuites  CDN publics pour les Javascripts  Utiliser un domaine différent pour servir les ressources statiques + varnish T3Uni 2015 Hautes performances & TYPO3 CDN & DNS
  29. 29. 29 OPTIMISER L’INFRASTRUCTURE Scaling horizontal  Améliore aussi la disponibilité en cas de panne  Ajouter des serveurs web o Gestion des sessions PHP dans Redis o Synchronisation du système de fichiers (SAN)  Ajouter des serveurs MySQL o Répartition Master/Slave o Diriger les requêtes SELECT en priorité vers les Slaves  MySQL Proxy  Backend MySQL spécial pour TYPO3  Solutions Cloud type Amazon (EC2 + S3 + RBS) Scaling vertical  Ne pas rester sur des vieilles machines !  Peu complexe à mettre en place T3Uni 2015 Hautes performances & TYPO3 SCALING
  30. 30. 30 T3Uni 2015 Hautes performances & TYPO3 ANALYSER & TESTER
  31. 31. 31 TESTER & ANALYSER La première étape avant d’agir  Pour mieux cibler nos efforts  Pour quantifier les gains Se placer dans un environnement adapté  Stable  Permettant de faire varier un seul paramètre à la fois  Des outils suffisamment puissants pour simuler une charge importante  Le bon outil pour le bon test T3Uni 2015 Hautes performances & TYPO3 AVANT TOUTE CHOSE…
  32. 32. 32 TESTER & ANALYSER Analyse  PageSpeed (Google)  Yslow (Yahoo)  GTMetrix  Webpagetest.org  PingDom  Profilers PHP: BlackFire / Xhprof / Xdebug  Et bien sur les logs des applications ! Monitoring  New Relic Montée en charge  jMeter /ApacheBench / Siege / Tsung T3Uni 2015 Hautes performances & TYPO3 LES BONS OUTILS
  33. 33. 33 TESTER & ANALYSER T3Uni 2015 Hautes performances & TYPO3 LES BONS OUTILS – MESURES AVEC GTMETRIX
  34. 34. 34 TESTER & ANALYSER T3Uni 2015 Hautes performances & TYPO3 LES BONS OUTILS – PROFILING PHP
  35. 35. C’est bien tout ça mais par où commencer ?
  36. 36. 36 HAUTES PERFORMANCES & TYPO3 Viser les macro-optimisations en premier  Donne les résultats les plus visibles, rapidement  Même s’il est tentant de ne creuser qu’une direction Identifier les pages critiques et leur point de blocage  La page d’accueil concentre la plupart des hits  Elle est souvent le point de départ Tester, analyser et surveiller en continu  Le site et les visiteurs évoluent: de nouveaux blocages peuvent apparaitre Chercher la simplicité: KISS Exploiter le cache TYPO3 et Varnish ! T3Uni 2015 Hautes performances & TYPO3 PAR OÙ COMMENCER ?
  37. 37. 37 HAUTES PERFORMANCES & TYPO3 Wiki TYPO3  http://wiki.typo3.org/Performance_tuning Mailing List « TYPO3 Performance »  http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-performance Slack  https://forger.typo3.org/slack Et pout tout le reste Google, StackOverflow, SlideShare… T3Uni 2015 Hautes performances & TYPO3 OÙ TROUVER LES INFOS ?
  38. 38. QUESTIONS ?

×