Optimisation des performances
d’un site sous TYPO3


                 Aliénor.net : Agence web basée à Bordeaux

         ...
Plan


I – Présentation de TYPO3

II - Performance et limites du fonctionnement natif

III - Les solutions
Solution d'entreprise

Plus de 4000 extensions sur le TYPO3 Extension
Repository (TER)
Gestion multilingue, multidomaine
W...
Sites web basés sur TYPO3




            I – Présentation de TYPO3
   II - Performance et limites du fonctionnement natif...
Typoscript

Langage de configuration en arbre formant des
templates

Pas de fonctions (mais des références vers des
foncti...
Critiques apportées à TYPO3



L’utilisateur final: impression de lenteur.
L’administrateur système: charge serveur pouvan...
Performance et limites du
fonctionnement natif
Solutions au problème des
      performances


Deux pistes de réflexion:
    Gestion fine du cache
    Rendre le système p...
Fonctionnement de base du
    cache
Les objets typoscript (cObjects) formant un template se
divisent en deux :




       ...
Lors d’une requête sur une
page non présente en cache




               I – Présentation de TYPO3
 II - Performance et li...
Lors d’une requête sur une
page non présente en cache




               I – Présentation de TYPO3
 II - Performance et li...
Limite du fonctionnement natif



Toutes les requêtes, y compris celles concernant les
pages déjà en cache, passent par le...
Les solutions
Solution fournie par la communauté :
  nc_staticfilecache



Extension développée par Netcreators
Multiplie la vitesse de ...
Extension nc_staticfilecache


Enregistre le rendu dans un fichier HTML statique
Ce fichier est délivré directement par le...
Avantages de nc_staticfilecache


Suit le vidage de cache « standard » de TYPO3
Possibilité d’étendre les règles de livrai...
Mise en place de nc_staticfilecache


Nécessite Apache et mod_rewrite
Téléchargement et installation de l’extension :
   h...
Contraintes de nc_staticfilecache

Aucune page contenant des objets sans cache (_INT)
n’aura de cache statique

Solution p...
Si nc_staticfilecache ne peut être
 utilisé



Utilisation de Memcached : un système de cache
mémoire distribué
Permet de ...
Peaufiner le résultat : réduire le
    nombre de requêtes


Outils de fusion/minification de CSS et de JS
 scriptmerger : ...
Solutions architecturales


Utiliser eAccelerator pour améliorer les performances
PHP
Utiliser Nginx comme proxy pour déli...
Nouveaux systèmes de cache de
   TYPO3


Depuis la version 4.3 vers FLOW3

Utilisation de divers backend de cache : fichie...
Les bonnes pratiques
Bonne pratique #1


Tu ne désactiveras point le cache. Si tu rencontres des
problèmes de cache, ces méthodes sont à fuir :...
Bonne pratique #2



Tu adapteras la durée du cache à la typologie du projet
       Ex : minimum 1 jour pour un site de pu...
Bonne pratique #3




Tu auditeras les extensions utilisées
Avec l’aide de la communauté…




                      I – Pr...
Bonne pratique #4




Tu désinstalleras les extensions non utilisées, malgré le
mécanisme d’autoloading introduit dans TYP...
Bonne pratique #5



Tu diminueras la complexité des templates typoscript
Il est possible d’effectuer des tâches très comp...
Bonne pratique #6


Tu éviteras si possible de passer par le moteur de TYPO3
Les pages 404 ont-elle besoin de tout le mote...
Bonne pratique #7



Tu ajouteras des index aux tables SQL créées pour les
extensions développées, notamment si elles ont ...
Sources et lectures
http://wiki.typo3.org/index.php/Performance_tuning
http://typo3.org/development/articles/testing-and-
...
Prochain SlideShare
Chargement dans…5
×

Optimisation des performances d’un site sous TYPO3

4 785 vues

Publié le

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
4 785
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
39
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Optimisation des performances d’un site sous TYPO3

  1. 1. Optimisation des performances d’un site sous TYPO3 Aliénor.net : Agence web basée à Bordeaux Alexandre Gravel-Raymond, Développeur web a.gravel-raymond@alienor.net
  2. 2. Plan I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  3. 3. Solution d'entreprise Plus de 4000 extensions sur le TYPO3 Extension Repository (TER) Gestion multilingue, multidomaine Workflows Gestion fine des droits utilisateurs Rétrocompatibilité primordiale I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  4. 4. Sites web basés sur TYPO3 I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  5. 5. Typoscript Langage de configuration en arbre formant des templates Pas de fonctions (mais des références vers des fonctions PHP) Pas de variables (mais la possibilité d’utiliser un registre pour échanger des informations) I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  6. 6. Critiques apportées à TYPO3 L’utilisateur final: impression de lenteur. L’administrateur système: charge serveur pouvant devenir importante sur des sites complexes. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  7. 7. Performance et limites du fonctionnement natif
  8. 8. Solutions au problème des performances Deux pistes de réflexion: Gestion fine du cache Rendre le système plus léger I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  9. 9. Fonctionnement de base du cache Les objets typoscript (cObjects) formant un template se divisent en deux : I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  10. 10. Lors d’une requête sur une page non présente en cache I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  11. 11. Lors d’une requête sur une page non présente en cache I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  12. 12. Limite du fonctionnement natif Toutes les requêtes, y compris celles concernant les pages déjà en cache, passent par le moteur de TYPO3 Celui-ci est (très) gourmand en ressources serveur I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  13. 13. Les solutions
  14. 14. Solution fournie par la communauté : nc_staticfilecache Extension développée par Netcreators Multiplie la vitesse de livraison de certaines pages par 230 ! I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  15. 15. Extension nc_staticfilecache Enregistre le rendu dans un fichier HTML statique Ce fichier est délivré directement par le serveur web s’il existe Le moteur de TYPO3 n’est pas chargé ! Si le cache statique n’existe pas, le rendu se déroule normalement I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  16. 16. Avantages de nc_staticfilecache Suit le vidage de cache « standard » de TYPO3 Possibilité d’étendre les règles de livraison de cache statique : Ex : Cookie identifiant les utilisateurs devant avoir une version 100% dynamique Possibilité de désactiver pour une page donnée I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  17. 17. Mise en place de nc_staticfilecache Nécessite Apache et mod_rewrite Téléchargement et installation de l’extension : http://forge.typo3.org/projects/extension-nc_staticfilecache Règles de réécritures fournies dans le .htaccess Ajout du job cron effectuant la suppression des pages expirées I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  18. 18. Contraintes de nc_staticfilecache Aucune page contenant des objets sans cache (_INT) n’aura de cache statique Solution pour « personnaliser » le contenu d’une page : utiliser de l’AJAX ! Les requêtes POST sont exclues, pour que les formulaires soient dynamiques. Tous les paramètres de l’URL doivent être réécris (avec l’extension realurl ou cooluri) I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  19. 19. Si nc_staticfilecache ne peut être utilisé Utilisation de Memcached : un système de cache mémoire distribué Permet de mettre en cache le résultat de traitements complexes fréquemment effectués I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  20. 20. Peaufiner le résultat : réduire le nombre de requêtes Outils de fusion/minification de CSS et de JS scriptmerger : Configuration extensive, possibilité d’exclure des fichiers load_optimization : Compression HTML, seuls les fichiers ajoutés via l’API typoscript sont traités js_css_optimizer : Utilise la nouvelle API du moteur de rendu, gestion fine fichier par fichier minify : Simple d’utilisation I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  21. 21. Solutions architecturales Utiliser eAccelerator pour améliorer les performances PHP Utiliser Nginx comme proxy pour délivrer les fichiers statiques (plus léger qu’Apache) I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  22. 22. Nouveaux systèmes de cache de TYPO3 Depuis la version 4.3 vers FLOW3 Utilisation de divers backend de cache : fichiers, mémoire, MySQL Transparent pour le développeur, beaucoup plus flexible enetcache : Extension ajoutant une couche API pour les plugins. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  23. 23. Les bonnes pratiques
  24. 24. Bonne pratique #1 Tu ne désactiveras point le cache. Si tu rencontres des problèmes de cache, ces méthodes sont à fuir : www.example.com/?no_cache=1 $GLOBALS[‘TSFE’]->set_no_cache() ; config.no_cache = 1 (template typoscript) Case « Sans cache » cochée dans les propriétés de page I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  25. 25. Bonne pratique #2 Tu adapteras la durée du cache à la typologie du projet Ex : minimum 1 jour pour un site de publication « classique » Tu videras le cache d’une page donnée automatiquement lors d’une modification Dans le Page TSConfig : TCEMAIN.clearCacheCmd = 1,2,3 I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  26. 26. Bonne pratique #3 Tu auditeras les extensions utilisées Avec l’aide de la communauté… I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  27. 27. Bonne pratique #4 Tu désinstalleras les extensions non utilisées, malgré le mécanisme d’autoloading introduit dans TYPO3 4.3, pour éviter de charger inutilement du code PHP et typoscript I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  28. 28. Bonne pratique #5 Tu diminueras la complexité des templates typoscript Il est possible d’effectuer des tâches très complexes en pur typoscript, mais il est parfois plus efficace (et lisible) d’encapsuler la fonctionnalité dans une classe PHP. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  29. 29. Bonne pratique #6 Tu éviteras si possible de passer par le moteur de TYPO3 Les pages 404 ont-elle besoin de tout le moteur ? Préférer l'utilisation de la déclaration ErrorDocument dans un fichier .htaccess Les scripts AJAX peuvent être externalisés : Utiliser la méthode standard de TYPO3 : www.example.com/index.php?eID=mon_ajax Ne charge que les classes indispensables du coeur de TYPO3. I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  30. 30. Bonne pratique #7 Tu ajouteras des index aux tables SQL créées pour les extensions développées, notamment si elles ont été créées par le Kickstarter I – Présentation de TYPO3 II - Performance et limites du fonctionnement natif III - Les solutions
  31. 31. Sources et lectures http://wiki.typo3.org/index.php/Performance_tuning http://typo3.org/development/articles/testing-and- tuning-typo3-performance/ http://techblog.evo.pl/en/evo_nginx_boost-extension/ http://www.typofree.org/article/archive/2009/august/ title/enabling-nc-staticfilecache-in-typo3-nginx/ http://typo3.org/development/articles/using-cache- control-headers-in-typo3/

×