<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.jsmansart.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Jean-Sébastien Mansart .com - Tag - performances</title>
  <link>http://www.jsmansart.com/</link>
  <atom:link href="http://www.jsmansart.com/feed/tag/performances/rss2" rel="self" type="application/rss+xml"/>
  <description>Le blog de Jean-Sébastien Mansart à propos du web, des performances, de l'ergonomie et de l'accessibilité</description>
  <language>fr</language>
  <pubDate>Sun, 15 Nov 2009 12:10:11 +0100</pubDate>
  <copyright>Jean-Sébastien Mansart</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Mon best-of Paris Web 2008 : Performances web</title>
    <link>http://www.jsmansart.com/post/mon-best-of-paris-web-2008-performances-web</link>
    <guid isPermaLink="false">urn:md5:5c54ae124e50492a72769762d6462c36</guid>
    <pubDate>Tue, 13 Jan 2009 19:39:00 +0100</pubDate>
    <dc:creator>Jean-Sébastien Mansart</dc:creator>
        <category>web</category>
        <category>performances</category><category>pw2008</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/logos/.paris-web-logo_t.jpg&quot; alt=&quot;Paris Web&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;Paris Web&quot; /&gt; On continue &lt;a href=&quot;http://www.jsmansart.com/tag/pw2008&quot; hreflang=&quot;fr&quot;&gt;la série amorcée  hier sur les conférences de Paris Web 2008&lt;/a&gt; avec la présentation d'Eric Daspet et de Nicole Sullivan sur les &lt;strong&gt;&lt;a href=&quot;http://www.jsmansart.com/tag/performances&quot; hreflang=&quot;fr&quot;&gt;performances&lt;/a&gt;&lt;/strong&gt; &lt;strong&gt;web&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;J'ai déjà eu l'occasion de vous parler des &lt;a href=&quot;http://www.jsmansart.com/post/performances-d-un-site-web&quot; hreflang=&quot;fr&quot;&gt;performances&lt;/a&gt;, j'en reparlerai sûrement lors de &lt;a href=&quot;http://performance.survol.fr/2009/01/apercu-de-yslow-20/&quot; hreflang=&quot;fr&quot;&gt;la sortie de la v2 de YSlow&lt;/a&gt;, mais pour le moment, je vous laisse avec la vidéo.&lt;/p&gt;


&lt;p&gt;Cette conférence est une introduction aux &lt;strong&gt;performances&lt;/strong&gt;, elle est très bien faite et montre les points sur lesquels il faut se concentrer.&lt;/p&gt;

&lt;div class=&quot;external-media&quot; style=&quot;margin: 1em auto; text-align: center;&quot;&gt;
&lt;object type=&quot;application/x-shockwave-flash&quot; data=&quot;http://www.dailymotion.com/swf/k1eXbtZjPR443xSaqh&amp;amp;related=0&quot; width=&quot;400&quot; height=&quot;316&quot;&gt;
  &lt;param name=&quot;movie&quot; value=&quot;http://www.dailymotion.com/swf/k1eXbtZjPR443xSaqh&amp;amp;related=0&quot; /&gt;
  &lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;
  &lt;param name=&quot;FlashVars&quot; value=&quot;playerMode=embedded&quot; /&gt;
&lt;/object&gt;
&lt;br /&gt;&lt;a href=&quot;http://www.dailymotion.com/video/x7op91_eric-daspet-nicole-sullivan-perform_tech&quot;&gt;Eric Daspet et Nicole Sullivan - Performance Web côté client&lt;/a&gt;
&lt;/div&gt;



&lt;p&gt;J'ai pu participer aussi à l'atelier proposé par &lt;a href=&quot;http://performance.survol.fr/&quot; hreflang=&quot;fr&quot;&gt;Eric Daspet&lt;/a&gt; et &lt;a href=&quot;http://www.stubbornella.org/content/&quot; hreflang=&quot;fr&quot;&gt;Nicole Sullivan&lt;/a&gt;, jai ainsi pu approfondir les concepts et poser des questions en choisissant des exemples concrets.&lt;/p&gt;


&lt;p&gt;Vous avez mis en places des préconisations &lt;a href=&quot;http://www.jsmansart.com/post/performances-d-un-site-web&quot; hreflang=&quot;fr&quot;&gt;dont je vous parlais&lt;/a&gt; ?&lt;/p&gt;    &lt;hr /&gt;&lt;p&gt;&lt;small&gt;Article original &#233;crit par Jean-S&#233;bastien Mansart et publi&#233; sur &lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien
 Mansart .com&lt;/a&gt; | &lt;a href='http://www.jsmansart.com/post/mon-best-of-paris-web-2008-performances-web'&gt;Lien direct vers l'article&lt;/a&gt; | Si vous lisez cet article dans son int&#233;gralit&#233; sur un autre site que
&lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien Mansart .com&lt;/a&gt; c'est qu'il a &#233;t&#233; reproduit ill&#233;galement et sans autorisation. Merci de le sig
naler &#224; son auteur original &lt;a href='mailto:jean-sebastien.mansart@laposte.net'&gt;en cliquant ici&lt;/a&gt; | &amp;copy; jsmansart.com.&lt;/small&gt;
    </description>
    
    
    
      </item>
    
  <item>
    <title>Performances d'un site web</title>
    <link>http://www.jsmansart.com/post/performances-d-un-site-web</link>
    <guid isPermaLink="false">urn:md5:948078f30b29dc77150100563960337e</guid>
    <pubDate>Sun, 23 Nov 2008 11:00:00 +0100</pubDate>
    <dc:creator>Jean-Sébastien Mansart</dc:creator>
        <category>web</category>
        <category>accessibilite</category><category>optimisation</category><category>performances</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/logos/.graphique-montee-en-fleche_t.jpg&quot; alt=&quot;graphique-montee-en-fleche.jpg&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; /&gt; Depuis quelques mois je m'intéresse à deux points particuliers d'un site web : l'&lt;strong&gt;&lt;a href=&quot;http://www.jsmansart.com/tag/accessibilite&quot; hreflang=&quot;fr&quot;&gt;accessibilité&lt;/a&gt;&lt;/strong&gt; et les &lt;strong&gt;&lt;a href=&quot;http://www.jsmansart.com/tag/performances&quot; hreflang=&quot;fr&quot;&gt;performances&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;
Les &lt;strong&gt;performances&lt;/strong&gt; &lt;strong&gt;web&lt;/strong&gt; ne sont pas combien de visiteurs un site web a réussi à convertir en acheteur, mais plutôt la rapidité de réponse et d'affichage d'un site dans le navigateur de l'internaute.&lt;/p&gt;    &lt;p&gt;Dans le domaine des &lt;strong&gt;performances&lt;/strong&gt; &lt;strong&gt;web&lt;/strong&gt;, en français, il n'existe pas beaucoup de lecture sur internet. Cependant deux blogs traitent du sujet.&lt;/p&gt;


&lt;p&gt;Le premier est celui d'Eric Daspet : &lt;a href=&quot;http://performance.survol.fr&quot; hreflang=&quot;fr&quot;&gt;Performances web&lt;/a&gt;, et le second, celui de &lt;a href=&quot;http://www.stubbornella.org/content/&quot; hreflang=&quot;fr&quot;&gt;Nicole Sullivan&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Je lis celui d'Eric Daspet depuis plusieurs mois, et quand j'ai le temps, je me penche d'un peu plus près sur les conseils qu'il donne et regarde ce que je peux mettre en place de mon coté.&lt;/p&gt;


&lt;h2&gt;Pourquoi se préoccuper des performances des sites web ?&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;C'est vrai après tout, tout le monde a une connexion de ouf...&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Tout le monde ? Pas forcément. Et des fois, tout se joue pour quelques centaines de millisecondes.&lt;/p&gt;


&lt;blockquote&gt;&lt;p&gt;Perdre 500ms c’est perdre 20% de traffic pour Google (ou pourquoi il n’y a que dix résultats par page dans les recherches).&lt;br /&gt;
Perdre 100ms c’est perdre 1% de ventes pour Amazon.&lt;br /&gt;
Réduire de 25% le poids de la page c’est gagner 25% d’utilisateurs à moyen terme pour Google.&lt;br /&gt;
&lt;em&gt;&lt;a href=&quot;http://performance.survol.fr/2008/06/a-quoi-ca-sert/&quot; hreflang=&quot;fr&quot;&gt;Eric Daspet - A quoi ça sert ?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Pour un petit blog comme le mien, ce n'est rien, je n'ai pas un besoin vital de me préoccuper de cet aspect.&lt;br /&gt;
Non.&lt;/p&gt;


&lt;p&gt;Je m'en sers comme &amp;quot;bac à sable&amp;quot;. Je peux tester certaines pratiques, certaines techniques, afin de voir comment les intégrer dans mon travail, les partager avec mes collègues et leur faire comprendre que c'est un point tout aussi important que l'accessibilité ou que la couleur du bouton que veut le client.&lt;/p&gt;


&lt;h2&gt;Que peut-on faire facilement ?&lt;/h2&gt;


&lt;p&gt;Dans un premier temps, j'ai donc installé &lt;a href=&quot;http://developer.yahoo.com/yslow/&quot; hreflang=&quot;fr&quot;&gt;YSlow&lt;/a&gt;, un plugin pour firefox qui vient en surcouche de firebug.&lt;/p&gt;


&lt;p&gt;YSlow m'a donné un petit D, soit 58 sur 100. Et mon site se chargeait en 3 secondes.&lt;/p&gt;


&lt;p&gt;J'ai regardé point par point ce que je pouvais faire, et après avoir lu de la doc un peu partout, j'ai commencé par &lt;strong&gt;réduire le poids des images&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;Pour ça, il existe un site web fabuleux, créé par Nicole Sullivan et Stoyan Stefanov : &lt;a href=&quot;http://smushit.com/&quot; hreflang=&quot;en&quot;&gt;smushit&lt;/a&gt;. Il suffit de donner l'url de la page, et le service s'occupe de tout. Au final il vous rend un fichier zip avec toutes les images optimisées et, point important, les optimisations ne sont pas destructives. Votre image sera identique pixel par pixel à celle d'origine.&lt;/p&gt;


&lt;p&gt;J'ai ensuite tenté de &lt;strong&gt;réduire le nombre de requêtes HTTP&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;Pour réduire le nombre de requêtes HTTP, on peut :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;merger les CSS&lt;/li&gt;
&lt;li&gt;merger les JS&lt;/li&gt;
&lt;li&gt;privilégier les &lt;a href=&quot;http://www.alistapart.com/articles/sprites/&quot; hreflang=&quot;en&quot;&gt;CSS Sprites&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je n'ai pas été très chanceux sur ce coup, je voulais à tout prix faire un maximum de CSS Sprites, mais dans mon cas, ce n'était pas possible, je n'ai réussi qu'à réduire d'une image le nombre d'images CSS.&lt;/p&gt;


&lt;p&gt;J'ai tout de même réussi à merger les trois feuilles de styles pour n'en faire plus qu'une seule, et je l'ai ensuite optimisée avec &lt;a href=&quot;http://www.codebeautifier.com/&quot; hreflang=&quot;fr&quot;&gt;code beautifier&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour les fichiers JavaScript, rien à faire de ce côté là, utilisant dotclear, je préfère laisser les fichiers JS tels quels.&lt;/p&gt;


&lt;p&gt;En troisième action, j'ai demandé à mon hébergeur de configurer le &lt;strong&gt;mod_expires d'apache&lt;/strong&gt;.&lt;/p&gt;


&lt;p&gt;mod_expires permet de spécifier une date d'expiration du contenu. Tant que la date n'aura pas expirée, votre navigateur ne rechargera pas le contenu en question. Les gains en cache plein sont assez impressionnants.&lt;/p&gt;


&lt;p&gt;Vous pouvez régler la date d'expiration par type de contenu, et vous pouvez le faire soit dans la configuration générale d'apache, soit dans votre vhost ou votre .htacess.&lt;/p&gt;


&lt;p&gt;Voici par exemple ce que j'utilise :&lt;/p&gt;


&lt;p&gt;&lt;code&gt;ExpiresActive on&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ExpiresDefault access plus 10 years&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ExpiresByType text/html now&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ExpiresByType text/xml now&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;On active le mode expires, par défaut tous les types de contenus expirent dans 10 ans, par contre, le HTML et le XML expirent immédiatement, ce qui évite de vider son cache quand un nouvel article est publié sur le site et sur le flux RSS par exemple.&lt;/p&gt;


&lt;p&gt;Au final, avec ces quelques petites choses, avec un cache vide, mon site (d'après mes tests) se charge en 1s, et avec le cache plein en 0,5s. Ce qui me fait maintenant une note C, soit 79 sur 100.&lt;br /&gt;
On remarquera aussi qu'avec le cache vide, 26 requêtes sont nécessaires, alors qu'une fois le cache plein, il ne suffit plus que d'une seule requête : la page HTML.&lt;/p&gt;


&lt;p&gt;Prochainement, avec mon hébergeur, nous devrions mettre en place le mod_gzip qui permet de compresser à la volée le contenu, et ainsi réduire la consommation en bande passante et, normalement, accélérer l'affichage des pages. Car plus c'est gros, plus c'est lent.&lt;/p&gt;


&lt;p&gt;Tout ce travail porte ses fruits, j'ai déjà commencé à modifier la configuration apache de nos serveurs de production, et les graphistes regardent de près smushit et le format PNG-8 qui est beaucoup plus performant que le GIF.&lt;/p&gt;


&lt;p&gt;Les &lt;strong&gt;performances&lt;/strong&gt; &lt;strong&gt;web&lt;/strong&gt;, c'est comme l'&lt;strong&gt;accessibilité&lt;/strong&gt;, toujours en mouvement. On n'est jamais fixé, il y a toujours à faire, c'est pour ça que j'aime le web !&lt;/p&gt;


&lt;p&gt;A suivre donc...&lt;/p&gt;    &lt;hr /&gt;&lt;p&gt;&lt;small&gt;Article original &#233;crit par Jean-S&#233;bastien Mansart et publi&#233; sur &lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien
 Mansart .com&lt;/a&gt; | &lt;a href='http://www.jsmansart.com/post/performances-d-un-site-web'&gt;Lien direct vers l'article&lt;/a&gt; | Si vous lisez cet article dans son int&#233;gralit&#233; sur un autre site que
&lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien Mansart .com&lt;/a&gt; c'est qu'il a &#233;t&#233; reproduit ill&#233;galement et sans autorisation. Merci de le sig
naler &#224; son auteur original &lt;a href='mailto:jean-sebastien.mansart@laposte.net'&gt;en cliquant ici&lt;/a&gt; | &amp;copy; jsmansart.com.&lt;/small&gt;
    </description>
    
    
    
      </item>
    
  <item>
    <title>Optimisation d'un site Plone</title>
    <link>http://www.jsmansart.com/post/Optimisation-dun-site-Plone</link>
    <guid isPermaLink="false">urn:md5:e19f79f31d1a470c90cb83a58ed8dbd6</guid>
    <pubDate>Tue, 24 Jul 2007 11:12:00 +0200</pubDate>
    <dc:creator>Jean-Sébastien Mansart</dc:creator>
        <category>Plone</category>
        <category>optimisation</category><category>performances</category><category>plone</category><category>python</category><category>zope</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/logos/plone.jpg&quot; alt=&quot;Plone&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; /&gt; Un site web Plone est plus lourd et plus lent qu'un site développé (correctement) en PHP/MySQL. C'est un fait. Forcément, il n'y a pas toute la machinerie Zope derrière : gestion des droits, groupes et utilisateurs, moteur de worklows, etc... Un site développé en PHP/MySQL peut ne prendre que quelques lignes de code, alors que le même site fait avec Zope / Plone sera beaucoup plus gros, et de ce fait, gourmand en ressources.&lt;br /&gt;
Pour un petit site, la différence n'est pas énorme, par contre, si le site commence à être conséquent, optimiser son code devient crucial.&lt;/p&gt;


&lt;p&gt;Pour optimiser un site Plone, on peut identifier trois phases :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Utiliser de bonnes pratiques de développement&lt;/li&gt;
&lt;li&gt;Répartir la charge&lt;/li&gt;
&lt;li&gt;Mettre en place un système de cache&lt;/li&gt;
&lt;/ol&gt;    &lt;h2&gt;Utiliser de bonnes pratiques de développement&lt;/h2&gt;


&lt;h4&gt;Le portal_catalog&lt;/h4&gt;


&lt;p&gt;Lorsque l'on veut accéder à un objet, Zope doit &amp;quot;réveiller&amp;quot; cet objet, malheureusement, &amp;quot;réveiller&amp;quot; un objet est très coûteux. Cela l'est encore plus lorsque l'on veut afficher une liste et que chaque objet de cette liste est &amp;quot;réveillé&amp;quot;.&lt;/p&gt;


&lt;p&gt;Pour éviter de &amp;quot;réveiller&amp;quot; inutilement les objets, Plone dispose d'un catalogue : le portal_catalog.&lt;br /&gt;
Il permet d'indexer les objets (index) et de stocker certains champs des objets (metadata). Pour afficher une liste d'objets avec leur titre et un lien vers l'objet en lui même, plus besoin de &amp;quot;réveiller&amp;quot; tous les objets de la liste.&lt;br /&gt;
Les index vont vous servir lors des recherches dans le catalogue, alors que les metadata permettent d'accéder aux données de l'objet sans avoir à le &amp;quot;réveiller&amp;quot;. Il est très simple de rajouter des index et des metadata dans le portal_catalog, que ce soit directement depuis la ZMI ou programmatiquement.&lt;/p&gt;


&lt;p&gt;Au lieu de : &lt;br /&gt;
&lt;code&gt;&amp;lt;a tal:attributes=&amp;quot;href python:item.getObject().absolute_url()&amp;quot; tal:content=&amp;quot;item.getObject().title_or_id&amp;quot;&amp;gt;Mon Objet&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Préférez plutôt : &lt;br /&gt;
&lt;code&gt;&amp;lt;a tal:attributes=&amp;quot;href item/getURL&amp;quot; tal:content=&amp;quot;item/Title&amp;quot;&amp;gt;Mon objet&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;


&lt;h4&gt;Les scripts python&lt;/h4&gt;


&lt;p&gt;Lorsque vous créez des scripts python, au lieu de passer par la ZMI qui va faire plusieurs vérifications à chaque instructions, stockez les directement sur le File System, dans votre produit. Non seulement vous gagnerez en performance, mais en aussi en productivité. C'est beaucoup plus simple d'éditer un script python depuis son éditeur de texte favoris que depuis un formulaire web.&lt;/p&gt;


&lt;p&gt;Une autre méthode est de créer un tool, ou d'utiliser les vues Zope 3 (via Five)&lt;/p&gt;


&lt;h2&gt;Répartir la charge&lt;/h2&gt;


&lt;p&gt;De base, nous avons une instance Zope avec sa ZODB (Zope Object Data Base). L'instance Zope reçoit les requêtes HTTP, effectue le rendu de la page et s'occupe de stocker les objets dans la ZODB.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/optimisation%20plone/requete_zope_simple.jpg&quot; alt=&quot;instance zope simple&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;br /&gt;
&lt;em&gt;image provenant de la présentation de &lt;a href=&quot;http://www.pilotsystems.net/&quot; hreflang=&quot;fr&quot;&gt;Pilot Systems&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;


&lt;h4&gt;Une installation simple&lt;/h4&gt;


&lt;p&gt;Une façon d'optimiser très simplement un site Plone est de mettre un serveur Apache en frontal devant l'instance Zope. Cette installation est suffisante pour les petits site à faible trafic. Par contre, il n'y a pas de tolérance de panne, et la montée en charge reste faible. Les performances du site ne sont que très faiblement accrues.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/optimisation%20plone/apache_et_zope.jpg&quot; alt=&quot;apache + zope&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;br /&gt;
&lt;em&gt;image provenant de la présentation de &lt;a href=&quot;http://www.pilotsystems.net/&quot; hreflang=&quot;fr&quot;&gt;Pilot Systems&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;


&lt;h4&gt;Répartition de charge avec ZEO&lt;/h4&gt;


&lt;p&gt;ZEO (Zope Enterprise Object), permet de diviser Zope en deux :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une partie serveur pour stocker les données&lt;/li&gt;
&lt;li&gt;Une partie cliente pour effectuer le rendu des pages et recevoir les requêtes HTTP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/optimisation%20plone/requete_zeo.jpg&quot; alt=&quot;ZEO&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;br /&gt;
&lt;em&gt;image provenant de la présentation de &lt;a href=&quot;http://www.pilotsystems.net/&quot; hreflang=&quot;fr&quot;&gt;Pilot Systems&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;L'avantage ici, est que l'on peut créer autant de clients que l'on veut. Le serveur ZEO peut être sur une machine physique différente des autres clients ZEO, et chaque client peut aussi être sur une machine physique différente.&lt;br /&gt;
Les clients sont tous relié au serveur ZEO. On peut répondre très facilement à une monté en charge : il suffit de rajouter des clients ZEO.&lt;/p&gt;


&lt;p&gt;On peut dédier un client (ou plusieurs) pour l'administration du site, et ainsi améliorer les performances pour l'administration du site, sans dégrader les performances coté &amp;quot;publique&amp;quot;.&lt;/p&gt;


&lt;h2&gt;Mettre en place un système de cache&lt;/h2&gt;


&lt;p&gt;La première solution est de mettre en place un serveur SQUID qui permet de gérer du cache. Il limite les requêtes vers les clients ZEO en retournant les pages en cache.&lt;/p&gt;


&lt;p&gt;En complément de SQUID, Pound permet de répartir la charge entre les différents clients ZEO, (à noter que SQUID peut le faire aussi). Si un des clients ZEO n'est plus accessible, Pound redirige automatiquement les requêtes vers un autre client disponible.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/optimisation%20plone/squid_pound_et_zeo.jpg&quot; alt=&quot;squid + pound + zeo&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;br /&gt;
&lt;em&gt;image provenant de la présentation de &lt;a href=&quot;http://www.pilotsystems.net/&quot; hreflang=&quot;fr&quot;&gt;Pilot Systems&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Cette infrastructure est optimum, elle permet d'avoir un site complètement optimisé, avec très peu de requêtes traitées par Zope, le cache se situant en amont.&lt;br /&gt;
Si une panne survient sur un des clients ZEO, les autres prennent le relais, cela nous permet de réparer le client défectueux sans que les utilisateurs soient pénalisés.&lt;br /&gt;
Si l'audience du site augmente, il suffit de rajouter un ou plusieurs clients ZEO.&lt;/p&gt;


&lt;p&gt;L'optimisation d'un site Plone passe par beaucoup d'étape, que ce soit au niveau de l'infrastructure comme du code produit. Heureusement, pour l'infrastructure, on peut commencer juste par avoir un apache en frontal, puis ajouter des clients ZEO et un SQUID si le besoin se fait ressentir.&lt;br /&gt;
Il est par contre plus fastidieux de revenir sur du code produit, il faut donc tout de suite adopter de &lt;a href=&quot;http://plone.org/documentation/tutorial/best-practices&quot; hreflang=&quot;en&quot;&gt;bonnes pratiques de programmation&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Merci à Sylvain Viollon de &lt;a href=&quot;http://www.pilotsystems.net/&quot; hreflang=&quot;fr&quot;&gt;Pilot Systems&lt;/a&gt; pour &lt;a href=&quot;http://www.solutionslinux.fr/document_conferencier/45deb3e86a362.pdf&quot; hreflang=&quot;fr&quot;&gt;sa présentation&lt;/a&gt; lors des Solutions Linux 2007.&lt;/p&gt;    &lt;hr /&gt;&lt;p&gt;&lt;small&gt;Article original &#233;crit par Jean-S&#233;bastien Mansart et publi&#233; sur &lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien
 Mansart .com&lt;/a&gt; | &lt;a href='http://www.jsmansart.com/post/Optimisation-dun-site-Plone'&gt;Lien direct vers l'article&lt;/a&gt; | Si vous lisez cet article dans son int&#233;gralit&#233; sur un autre site que
&lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien Mansart .com&lt;/a&gt; c'est qu'il a &#233;t&#233; reproduit ill&#233;galement et sans autorisation. Merci de le sig
naler &#224; son auteur original &lt;a href='mailto:jean-sebastien.mansart@laposte.net'&gt;en cliquant ici&lt;/a&gt; | &amp;copy; jsmansart.com.&lt;/small&gt;
    </description>
    
    
    
      </item>
    
</channel>
</rss>
