SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
SPIP

•  Gestion de la performance dans SPIP
  – Préoccupa)on	
  historique	
  
     •  Intrinsèquement	
  lié	
  aux	
  objec)fs	
  du	
  projet	
  
        (indépendance	
  des	
  u)lisateurs	
  /	
  prestas	
  techniques)	
  
     •  par	
  la	
  typologie	
  majoritaire	
  des	
  u)lisateurs	
  
        Associa)ons	
  à	
  budgets	
  contraints,	
  hébergement	
  bas	
  
        coût,	
  pas	
  d’exper)se	
  pour	
  meEre	
  en	
  place	
  des	
  solu)ons
                                                                                    	
  
        sur	
  mesure	
  
PERFORMANCE CÔTÉ SERVEUR
2 NIVEAUX DE CACHE

•  Cache des squelettes (templates)
   compilés
  – SqueleEes	
  compilés	
  et	
  stockés	
  en	
  PHP	
  
  – BOUCLE	
  traduites	
  en	
  requêtes	
  SQL	
  incluant	
  un	
  
    certain	
  nombre	
  d’op)misa)ons	
  automa)ques	
  
2 NIVEAUX DE CACHE

•  Cache des pages servies
  – Produit	
  à	
  par)r	
  du	
  squeleEe	
  compilé	
  et	
  des	
  
    données	
  SQL	
  
  – Stockées	
  sous	
  forme	
  PHP	
  car	
  peuvent	
  contenir	
  des	
  
    éléments	
  dynamiques	
  (formulaire)	
  et	
  des	
  
    inclusions	
  :	
  
      •  Cache	
  par	
  morceaux	
  de	
  page	
  et	
  non	
  par	
  page	
  
      •  Permet	
  des	
  mises	
  à	
  jour	
  par)elles	
  
  – SPIP	
  na)vement	
  peu	
  gourmand	
  en	
  ressources	
  SQL	
  
CACHES SESSIONNÉS

•  Gestion native des caches par session
  – Possibilité	
  de	
  dis)nguer	
  le	
  cache	
  par	
  un	
  marqueur	
  
    de	
  session	
  
  – Permet	
  de	
  définir	
  la	
  granularité	
  	
  du	
  cache	
  :	
  
      •  Niveau	
  «	
  u)lisateur	
  »	
  si	
  besoin	
  (un	
  u)lisateur=un	
  
         cache)	
  
      •  Possible	
  par	
  groupe	
  d’u)lisateur	
  aussi	
  
  – Granularité	
  par	
  page	
  
      •  Pages	
  avec	
  cache	
  niveau	
  session	
  
      •  Pages	
  avec	
  cache	
  commun	
  à	
  tous	
  les	
  visiteurs	
  
CALCUL ASYNC. DU CACHE (PLUGIN)

•  Ne pas faire attendre un visiteur lorsque le
   cache n’est pas « à jour »
  – Lui	
  envoyer	
  le	
  cache	
  disponible	
  (froid)	
  
  – Lancer	
  la	
  mise	
  à	
  jour	
  de	
  la	
  page	
  en	
  tâche	
  de	
  fond	
  
    par	
  un	
  calcul	
  asynchrone	
  
  – Améliore	
  significa)vement	
  l’expérience	
  u)lisateur	
  
  – Plugin	
  cache-­‐cool	
  hEp://plugins.spip.net/
    cache_cool	
  
CACHE STATIQUE (PLUGIN)

•  Cache statique HTML (3ème niveau de
   cache)
  – Plugins	
  FastCache	
  (hEp://plugins.spip.net/
    fastcache)	
  ou	
  Expresso	
  
  – Nécessite	
  une	
  exper)se	
  plus	
  importante	
  
    (défini)on	
  des	
  règles	
  d’invalida)on	
  dans	
  les	
  
    squeleEes)	
  
MEMOIZATION (PLUGIN)

•  Mémoization
  – Stockage	
  en	
  mémoire	
  de	
  résultats	
  de	
  tâche	
  
    répé))ves	
  
  – U)lise	
  au	
  choix	
  APC,	
  Xcache,	
  MemCache	
  
  – Permet	
  aussi	
  le	
  stockage	
  en	
  mémoire	
  du	
  Cache	
  
  – Nécessite	
  configura)on	
  serveur	
  adaptée	
  
  – Plugin	
  Memoiza)on	
  (hEp://plugins.spip.net/
    memoiza)on)	
  
REVERSE PROXY (VARNISH+PLUGIN)

•  Un plugin SPIP
  – Permet	
  de	
  définir	
  des	
  règles	
  d’invalida)on	
  Varnish	
  
    dans	
  les	
  squeleEes	
  
  – Gère	
  la	
  purge	
  du	
  cache	
  Varnish	
  synchro	
  sur	
  
    demande	
  dans	
  le	
  back-­‐office	
  
  – Propose	
  une	
  configura)on	
  type	
  de	
  Varnish	
  qui	
  
    prend	
  en	
  compte	
  les	
  spécifictés	
  de	
  SPIP	
  (pas	
  de	
  
    cache	
  sur	
  le	
  backoffice,	
  sur	
  les	
  opéra)ons	
  
    techniques,	
  invalida)on	
  d’une	
  page	
  au	
  calcul	
  
    forcé…)	
  
  – hEp://zzz.rezo.net/Interfacer-­‐Varnish-­‐SPIP.html	
  
WEB-PERFORMANCE
(OU PERFORMANCE CÔTÉ
        CLIENT)
BONNES PRATIQUES

•  SPIP intègre nativement les bonnes
   pratiques WebPerf générales et
   applicables sans compétences spécifiques
•  Toujours dans l’approche de
   démocratisation des techniques
  – htaccess	
  par	
  défaut	
  avec	
  Expires	
  
  – Balises	
  <img>	
  générées	
  par	
  les	
  templates	
  
    intègrent	
  toujours	
  les	
  width	
  et	
  height	
  
MINIFIEUR HTML

•  Fonctionnalité native, activable par
   configuration dans le back-office
  – Peut-­‐être	
  u)lisé	
  en	
  complément	
  des	
  autres	
  
    techniques	
  
  – A	
  surtout	
  de	
  l’intérêt	
  sur	
  les	
  hébergements	
  bas	
  de	
  
    gamme	
  qui	
  n’intègrent	
  pas	
  de	
  compression	
  
    Apache	
  
TRAITEMENT AUTOMATISÉ DES IMAGES

•  Les images contribuées par les rédacteurs
   participent des problèmes de Webperf
  – Les	
  rédacteurs	
  ont	
  rarement	
  la	
  préoccupa)on	
  de	
  
    réduire	
  taille	
  et	
  poids	
  des	
  images	
  
  – Les	
  squeleEes	
  de	
  SPIP	
  proposent	
  des	
  filtres	
  de	
  
    traitement	
  d’image	
  
  – PermeEent	
  
      •  La	
  réduc)on	
  automa)sée	
  à	
  une	
  taille	
  maximum	
  
      •  L’op)misa)on	
  automa)sée	
  en	
  format&qualité	
  
MINIFIEUR+CONCATENEUR CSS

•  Fonctionnalité native, activable par
   configuration dans le back-office
  – 2	
  minifieurs	
  CSS	
  
      •  Un	
  minifieur	
  REGEXP	
  pour	
  les	
  CSS	
  simples	
  
      •  CSSTidy	
  basé	
  sur	
  un	
  parseur	
  CSS	
  pour	
  les	
  CSS	
  plus	
  
         complexes	
  
  – Agrège	
  toutes	
  les	
  CSS	
  du	
  head	
  en	
  une	
  seule,	
  en	
  
    tenant	
  compte	
  des	
  media	
  (u)lisa)on	
  du	
  @media)	
  
  – Automa)sé/mis	
  en	
  cache	
  sur	
  toutes	
  les	
  pages	
  
      •  Intervient	
  à	
  la	
  mise	
  à	
  jour	
  du	
  <head>	
  uniquement	
  
      •  produit	
  un	
  fichier	
  CSS	
  sta)que	
  
MINIFIEUR+CONCATENEUR JS

•  Fonctionnalité native, activable par
   configuration dans le back-office
  – Minifieur	
  JS	
  intégré	
  na)vement	
  
  – U)lisa)on	
  du	
  Google	
  Closure	
  Compiler	
  ac)vable	
  
    en	
  sus	
  (meilleure	
  compression,	
  mais	
  dépendance	
  
    d’un	
  ou)l	
  )ers)	
  
  – Concaténa)on	
  en	
  un	
  seul	
  fichier	
  
  – Automa)sé/mis	
  en	
  cache	
  sur	
  toutes	
  les	
  pages	
  
      •  Intervient	
  à	
  la	
  mise	
  à	
  jour	
  du	
  <head>	
  uniquement	
  
      •  produit	
  un	
  fichier	
  JS	
  sta)que	
  
WEBPERF AVEC LES PLUGINS

•  La fabrication des pages par morceaux,
   dont certains du ressort des plugins
   complexifient l’optimisation
  – Bonne	
  pra)que	
  du	
  «	
  JS	
  en	
  pied	
  de	
  page	
  »	
  
    difficilement	
  applicable	
  (sauf	
  en	
  débrayant	
  tous	
  
    les	
  automa)smes)	
  
  – Challenges	
  techniques	
  qui	
  nécessitent	
  des	
  
    réponses	
  innovantes	
  
      •  jQl	
  hEp://www.yterium.net/jQl-­‐an-­‐asynchronous-­‐
         jQuery-­‐Loader	
  
WEBPERF AVEC LES PLUGINS

•  La Webperf des sites est souvent
   pénalisée par l’accumulation de
   fonctionnalités JS
  – Players	
  mul)media	
  (vidéo,	
  audio),	
  diaporama,	
  
    gadgets	
  sociaux,	
  cartographie…	
  
  – Toujours	
  préférer	
  un	
  plugin	
  plutôt	
  que	
  
    l’intégra)on	
  manuelle	
  
      •  Le	
  plugin	
  op)mise	
  l’intégra)on	
  au	
  CMS	
  
      •  Il	
  bénéficie	
  d’op)misa)ons	
  
  – Mais	
  aussi…	
  Bien	
  choisir	
  ses	
  plugins	
  

Contenu connexe

En vedette

Presentation d'un cms: SPIP
Presentation d'un cms: SPIPPresentation d'un cms: SPIP
Presentation d'un cms: SPIPclemespe
 
Initiation à SPIP
Initiation à SPIPInitiation à SPIP
Initiation à SPIPStrasWeb
 
S P I P Presentation 2007
S P I P  Presentation 2007S P I P  Presentation 2007
S P I P Presentation 2007denis.chatiron
 
Etre rédacteur d’un site spip
Etre rédacteur d’un site spipEtre rédacteur d’un site spip
Etre rédacteur d’un site spipCollège Assomption
 
Utiliser Spip : rédation d'articles simples et multimédia
Utiliser Spip : rédation d'articles simples et multimédiaUtiliser Spip : rédation d'articles simples et multimédia
Utiliser Spip : rédation d'articles simples et multimédiasophiebocquet
 
Formation spip st ex
Formation spip st exFormation spip st ex
Formation spip st exvguili
 
Reg francais 2012
Reg francais 2012Reg francais 2012
Reg francais 2012kamal kamal
 
تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...
تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...
تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...Muhammad Muawwad
 
عناصر دبلن كور / إعداد محمد عبدالحميد معوض
عناصر دبلن كور / إعداد محمد عبدالحميد معوضعناصر دبلن كور / إعداد محمد عبدالحميد معوض
عناصر دبلن كور / إعداد محمد عبدالحميد معوضMuhammad Muawwad
 
الميتاداتا و المصادر الرقمية
الميتاداتا و المصادر الرقميةالميتاداتا و المصادر الرقمية
الميتاداتا و المصادر الرقميةMohamed Ben Romdhane
 
Formation - P1 - Spip Utilisation
Formation - P1 - Spip UtilisationFormation - P1 - Spip Utilisation
Formation - P1 - Spip UtilisationPatrick Vincent
 
RDA - Vers le web sémantique. RDA en bref par Audray Sauvage
RDA - Vers le web sémantique. RDA en bref par Audray SauvageRDA - Vers le web sémantique. RDA en bref par Audray Sauvage
RDA - Vers le web sémantique. RDA en bref par Audray SauvageMichèle Furer-Benedetti
 
Formation rédacteur/administrateur de site sous SPIP
Formation rédacteur/administrateur de site sous SPIPFormation rédacteur/administrateur de site sous SPIP
Formation rédacteur/administrateur de site sous SPIPVoyelle Voyelle
 
Dublin Core
Dublin CoreDublin Core
Dublin Corejbcomte
 

En vedette (20)

Presentation d'un cms: SPIP
Presentation d'un cms: SPIPPresentation d'un cms: SPIP
Presentation d'un cms: SPIP
 
Initiation à SPIP
Initiation à SPIPInitiation à SPIP
Initiation à SPIP
 
S P I P Presentation 2007
S P I P  Presentation 2007S P I P  Presentation 2007
S P I P Presentation 2007
 
Etre rédacteur d’un site spip
Etre rédacteur d’un site spipEtre rédacteur d’un site spip
Etre rédacteur d’un site spip
 
Utiliser Spip : rédation d'articles simples et multimédia
Utiliser Spip : rédation d'articles simples et multimédiaUtiliser Spip : rédation d'articles simples et multimédia
Utiliser Spip : rédation d'articles simples et multimédia
 
Spip
SpipSpip
Spip
 
Formation spip st ex
Formation spip st exFormation spip st ex
Formation spip st ex
 
Reg francais 2012
Reg francais 2012Reg francais 2012
Reg francais 2012
 
SPIP
SPIPSPIP
SPIP
 
تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...
تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...
تحويل حقول تسجيلة مارك 21 الببليوجرافية إلى عناصر دبلن كور / إعداد محمد عبدال...
 
عناصر دبلن كور / إعداد محمد عبدالحميد معوض
عناصر دبلن كور / إعداد محمد عبدالحميد معوضعناصر دبلن كور / إعداد محمد عبدالحميد معوض
عناصر دبلن كور / إعداد محمد عبدالحميد معوض
 
الميتاداتا و المصادر الرقمية
الميتاداتا و المصادر الرقميةالميتاداتا و المصادر الرقمية
الميتاداتا و المصادر الرقمية
 
Formation - P1 - Spip Utilisation
Formation - P1 - Spip UtilisationFormation - P1 - Spip Utilisation
Formation - P1 - Spip Utilisation
 
RDA - Vers le web sémantique. RDA en bref par Audray Sauvage
RDA - Vers le web sémantique. RDA en bref par Audray SauvageRDA - Vers le web sémantique. RDA en bref par Audray Sauvage
RDA - Vers le web sémantique. RDA en bref par Audray Sauvage
 
Fiche Formation SPIP
Fiche Formation SPIPFiche Formation SPIP
Fiche Formation SPIP
 
Formation rédacteur/administrateur de site sous SPIP
Formation rédacteur/administrateur de site sous SPIPFormation rédacteur/administrateur de site sous SPIP
Formation rédacteur/administrateur de site sous SPIP
 
SPIP
SPIPSPIP
SPIP
 
Dublin Core
Dublin CoreDublin Core
Dublin Core
 
Open source presentation
Open source presentationOpen source presentation
Open source presentation
 
FRBR / RDA - Du modèle à la norme - Philippe Le Pape
FRBR / RDA - Du modèle à la norme - Philippe Le PapeFRBR / RDA - Du modèle à la norme - Philippe Le Pape
FRBR / RDA - Du modèle à la norme - Philippe Le Pape
 

Similaire à SPIP et la gestion de la performance

Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesChristophe Furmaniak
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm
 
Un Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CacheUn Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CachePierre Lannoy
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Christophe Laporte
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftLeTesteur
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheAurelien Navarre
 
Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Aurelien Navarre
 
IBM FlashSystem : Les bonnes raisons de passer au Flash
IBM FlashSystem : Les bonnes raisons de passer au Flash IBM FlashSystem : Les bonnes raisons de passer au Flash
IBM FlashSystem : Les bonnes raisons de passer au Flash Solutions IT et Business
 
Direct memory @ devoxxfr
Direct memory @ devoxxfrDirect memory @ devoxxfr
Direct memory @ devoxxfrOlivier Lamy
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
ppt1.pptx
ppt1.pptxppt1.pptx
ppt1.pptxadiouf2
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 

Similaire à SPIP et la gestion de la performance (20)

Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft Hyperconvergence
 
Un Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CacheUn Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du Cache
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoft
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
 
Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13
 
IBM FlashSystem : Les bonnes raisons de passer au Flash
IBM FlashSystem : Les bonnes raisons de passer au Flash IBM FlashSystem : Les bonnes raisons de passer au Flash
IBM FlashSystem : Les bonnes raisons de passer au Flash
 
Systematic, toolchain JS
Systematic, toolchain JSSystematic, toolchain JS
Systematic, toolchain JS
 
Direct memory @ devoxxfr
Direct memory @ devoxxfrDirect memory @ devoxxfr
Direct memory @ devoxxfr
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
ppt1.pptx
ppt1.pptxppt1.pptx
ppt1.pptx
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 

SPIP et la gestion de la performance

  • 1. SPIP •  Gestion de la performance dans SPIP – Préoccupa)on  historique   •  Intrinsèquement  lié  aux  objec)fs  du  projet   (indépendance  des  u)lisateurs  /  prestas  techniques)   •  par  la  typologie  majoritaire  des  u)lisateurs   Associa)ons  à  budgets  contraints,  hébergement  bas   coût,  pas  d’exper)se  pour  meEre  en  place  des  solu)ons   sur  mesure  
  • 3. 2 NIVEAUX DE CACHE •  Cache des squelettes (templates) compilés – SqueleEes  compilés  et  stockés  en  PHP   – BOUCLE  traduites  en  requêtes  SQL  incluant  un   certain  nombre  d’op)misa)ons  automa)ques  
  • 4. 2 NIVEAUX DE CACHE •  Cache des pages servies – Produit  à  par)r  du  squeleEe  compilé  et  des   données  SQL   – Stockées  sous  forme  PHP  car  peuvent  contenir  des   éléments  dynamiques  (formulaire)  et  des   inclusions  :   •  Cache  par  morceaux  de  page  et  non  par  page   •  Permet  des  mises  à  jour  par)elles   – SPIP  na)vement  peu  gourmand  en  ressources  SQL  
  • 5. CACHES SESSIONNÉS •  Gestion native des caches par session – Possibilité  de  dis)nguer  le  cache  par  un  marqueur   de  session   – Permet  de  définir  la  granularité    du  cache  :   •  Niveau  «  u)lisateur  »  si  besoin  (un  u)lisateur=un   cache)   •  Possible  par  groupe  d’u)lisateur  aussi   – Granularité  par  page   •  Pages  avec  cache  niveau  session   •  Pages  avec  cache  commun  à  tous  les  visiteurs  
  • 6. CALCUL ASYNC. DU CACHE (PLUGIN) •  Ne pas faire attendre un visiteur lorsque le cache n’est pas « à jour » – Lui  envoyer  le  cache  disponible  (froid)   – Lancer  la  mise  à  jour  de  la  page  en  tâche  de  fond   par  un  calcul  asynchrone   – Améliore  significa)vement  l’expérience  u)lisateur   – Plugin  cache-­‐cool  hEp://plugins.spip.net/ cache_cool  
  • 7. CACHE STATIQUE (PLUGIN) •  Cache statique HTML (3ème niveau de cache) – Plugins  FastCache  (hEp://plugins.spip.net/ fastcache)  ou  Expresso   – Nécessite  une  exper)se  plus  importante   (défini)on  des  règles  d’invalida)on  dans  les   squeleEes)  
  • 8. MEMOIZATION (PLUGIN) •  Mémoization – Stockage  en  mémoire  de  résultats  de  tâche   répé))ves   – U)lise  au  choix  APC,  Xcache,  MemCache   – Permet  aussi  le  stockage  en  mémoire  du  Cache   – Nécessite  configura)on  serveur  adaptée   – Plugin  Memoiza)on  (hEp://plugins.spip.net/ memoiza)on)  
  • 9. REVERSE PROXY (VARNISH+PLUGIN) •  Un plugin SPIP – Permet  de  définir  des  règles  d’invalida)on  Varnish   dans  les  squeleEes   – Gère  la  purge  du  cache  Varnish  synchro  sur   demande  dans  le  back-­‐office   – Propose  une  configura)on  type  de  Varnish  qui   prend  en  compte  les  spécifictés  de  SPIP  (pas  de   cache  sur  le  backoffice,  sur  les  opéra)ons   techniques,  invalida)on  d’une  page  au  calcul   forcé…)   – hEp://zzz.rezo.net/Interfacer-­‐Varnish-­‐SPIP.html  
  • 11. BONNES PRATIQUES •  SPIP intègre nativement les bonnes pratiques WebPerf générales et applicables sans compétences spécifiques •  Toujours dans l’approche de démocratisation des techniques – htaccess  par  défaut  avec  Expires   – Balises  <img>  générées  par  les  templates   intègrent  toujours  les  width  et  height  
  • 12. MINIFIEUR HTML •  Fonctionnalité native, activable par configuration dans le back-office – Peut-­‐être  u)lisé  en  complément  des  autres   techniques   – A  surtout  de  l’intérêt  sur  les  hébergements  bas  de   gamme  qui  n’intègrent  pas  de  compression   Apache  
  • 13. TRAITEMENT AUTOMATISÉ DES IMAGES •  Les images contribuées par les rédacteurs participent des problèmes de Webperf – Les  rédacteurs  ont  rarement  la  préoccupa)on  de   réduire  taille  et  poids  des  images   – Les  squeleEes  de  SPIP  proposent  des  filtres  de   traitement  d’image   – PermeEent   •  La  réduc)on  automa)sée  à  une  taille  maximum   •  L’op)misa)on  automa)sée  en  format&qualité  
  • 14. MINIFIEUR+CONCATENEUR CSS •  Fonctionnalité native, activable par configuration dans le back-office – 2  minifieurs  CSS   •  Un  minifieur  REGEXP  pour  les  CSS  simples   •  CSSTidy  basé  sur  un  parseur  CSS  pour  les  CSS  plus   complexes   – Agrège  toutes  les  CSS  du  head  en  une  seule,  en   tenant  compte  des  media  (u)lisa)on  du  @media)   – Automa)sé/mis  en  cache  sur  toutes  les  pages   •  Intervient  à  la  mise  à  jour  du  <head>  uniquement   •  produit  un  fichier  CSS  sta)que  
  • 15. MINIFIEUR+CONCATENEUR JS •  Fonctionnalité native, activable par configuration dans le back-office – Minifieur  JS  intégré  na)vement   – U)lisa)on  du  Google  Closure  Compiler  ac)vable   en  sus  (meilleure  compression,  mais  dépendance   d’un  ou)l  )ers)   – Concaténa)on  en  un  seul  fichier   – Automa)sé/mis  en  cache  sur  toutes  les  pages   •  Intervient  à  la  mise  à  jour  du  <head>  uniquement   •  produit  un  fichier  JS  sta)que  
  • 16. WEBPERF AVEC LES PLUGINS •  La fabrication des pages par morceaux, dont certains du ressort des plugins complexifient l’optimisation – Bonne  pra)que  du  «  JS  en  pied  de  page  »   difficilement  applicable  (sauf  en  débrayant  tous   les  automa)smes)   – Challenges  techniques  qui  nécessitent  des   réponses  innovantes   •  jQl  hEp://www.yterium.net/jQl-­‐an-­‐asynchronous-­‐ jQuery-­‐Loader  
  • 17. WEBPERF AVEC LES PLUGINS •  La Webperf des sites est souvent pénalisée par l’accumulation de fonctionnalités JS – Players  mul)media  (vidéo,  audio),  diaporama,   gadgets  sociaux,  cartographie…   – Toujours  préférer  un  plugin  plutôt  que   l’intégra)on  manuelle   •  Le  plugin  op)mise  l’intégra)on  au  CMS   •  Il  bénéficie  d’op)misa)ons   – Mais  aussi…  Bien  choisir  ses  plugins