Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish Gilles Guirand    @gandbox @kaliop http://www.gandbox....
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish PREAMBULE INSTALL SETTINGS FRONT-END TEMPLATES BACK OF...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish PREAMBULE eZ Days 2011 14 Octobre - Paris
Préambule aux mauvaises pratiques <ul><li>La vie du développeur débutant est fascinante </li></ul><ul><ul><li>« Je dois li...
Préambule aux mauvaises pratiques <ul><li>Quelle solution choisir ? </li></ul><ul><ul><li>« Bon je vais bricoler un truc c...
Préambule aux mauvaises pratiques <ul><li>Impact très lointain sur eZ Publish… chez les clients finaux, quelques années pl...
Préambule aux mauvaises pratiques <ul><li>Un bon business pour les SSII, un mauvais business pour eZ Publish </li></ul><ul...
<ul><li>Solutions ? </li></ul><ul><ul><li>Livres de références :  perfectible, mais ca existe (en anglais) </li></ul></ul>...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish INSTALL eZ Days 2011 14 Octobre - Paris
INSTALL <ul><ul><li>Ce que l’on peut voir :  Des combinaisons eZ Publish (hackés) / extensions non compatibles (hackés aus...
INSTALL <ul><ul><li>La page de téléchargement : que choisir ? </li></ul></ul>extensions
INSTALL <ul><ul><li>Option 1 : le package facile à installer, la 4.4 fuji </li></ul></ul>Prendre la version avec ezc (zeta...
INSTALL <ul><ul><li>Option 2 :  plus complexe , 4.2011 (=2011.4) ,  4.5 avec pas mal de correctif </li></ul></ul>Prendre l...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish SETTINGS eZ Days 2011 14 Octobre - Paris
SETTINGS :  DESIGN / SITEACCESS <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Des designs dans le rép...
SETTINGS :  URL <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>URL  à casse variable </li></ul></ul></...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish FRONT-END eZ Days 2011 14 Octobre - Paris
FRONT-END :  JAVASCRIPT / CSS <ul><ul><li>Ce que l’on peut voir :  Empilement de toutes inclusions JS / CSS front + back o...
FRONT-END :  ANONYMOUS ET POLICIES <ul><ul><li>Ce que l’on peut voir :  « anonymous » possède tous les droits de lectures ...
FRONT-END :  VUES FULL DES NŒUDS DE RANGEMENT <ul><ul><li>Ce que l’on peut voir :  des vues FULL pour des nœuds de rangeme...
FRONT-END :  LAYOUT/SET/… <ul><ul><li>Ce qu’on peut voir :  des  /layout/set/  un peu partout pour de l’AJAX, print, RSS, ...
FRONT-END :  LAYOUT/SET/… <ul><ul><li>Ce qu’il faudrait voir :  rien sur google, éviter l’utilisation de /layout/set/… </l...
FRONT-END :  EZJSCORE ET APPELS AJAX <ul><ul><li>Focus sur les appels AJAX avec ezjscore </li></ul></ul><ul><li>SUBTREE : ...
FRONT-END :  LAYOUT/SET/… <ul><ul><li>Ce qu’on peut voir :  des 404 personnalisées, avec tout le pagelayout autour (120 hi...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish TEMPLATE eZ Days 2011 14 Octobre - Paris
TEMPLATES :  DATA EN DUR <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>node_id , en dur, dans les tem...
TEMPLATES :  COMPLEXITE <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Des portions de site dans le  p...
TEMPLATES :  COMPLEXITE <ul><ul><li>Ce qu’il faudrait voir (1/2) : </li></ul></ul><ul><ul><ul><li>Des templates à l’algori...
TEMPLATES :  COMPLEXITE <ul><ul><li>Ce qu’il faudrait voir (2/2) : </li></ul></ul><ul><ul><ul><li>eZFind pour les fetch, f...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish BACK OFFICE eZ Days 2011 14 Octobre - Paris
BACK OFFICE <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Un  compte admin partagé  pour tout le mond...
BACK OFFICE <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Un cloisonnement strict entre les rôles « ...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish CACHE eZ Days 2011 14 Octobre - Paris
CACHE-BLOCK <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Des  clés de cache-block trop fines , et gé...
CACHE-BLOCK <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Si un cache block, n’a  qu’un seul état  (...
CACHE DE VUE <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Mise en cache de vue de  millions de combi...
CACHE DE VUE <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Plutôt ou  module  que des vues FULL avec...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish SCRIPTS / API eZ Days 2011 14 Octobre - Paris
API <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>SQL en dur  dans les scripts, handlers, modules… </...
Tour d'horizon des mauvaises & surtout  bonnes pratiques eZ Publish SURVIE DU SITE eZ Days 2011 14 Octobre - Paris
Survie du site <ul><ul><li>Ce que l’on peut voir (pas longtemps) : </li></ul></ul><ul><ul><ul><li>Des  bases de données qu...
Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>BDD :  Des CRON de nettoyages activés p...
Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>IMPORTS :  Une  utilisation optimisée d...
Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>MULTI-FRONTAL :  Oublier RSYNC… et util...
Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>ATTRIBUTS :  Déléguer l’ajout d’attribu...
<ul><li>Questions ??? </li></ul>@gandbox @kaliop http://www.gandbox.fr/ http://share.ez.no/
Prochain SlideShare
Chargement dans…5
×

20111006 bonnes pratiques-gi_g_v1

3 749 vues

Publié le

Talk eZ Day / Paris
Les mauvaises et surtout les bonnes pratiques eZ Publish

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

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

Aucune remarque pour cette diapositive

20111006 bonnes pratiques-gi_g_v1

  1. 1. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish Gilles Guirand @gandbox @kaliop http://www.gandbox.fr CTO at Kaliop eZ Publish Community project board member eZ Days 2011 14 Octobre - Paris
  2. 2. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish PREAMBULE INSTALL SETTINGS FRONT-END TEMPLATES BACK OFFICE / DROITS CACHE SCRIPTS / API SURVIE DU SITE eZ Days 2011 14 Octobre - Paris
  3. 3. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish PREAMBULE eZ Days 2011 14 Octobre - Paris
  4. 4. Préambule aux mauvaises pratiques <ul><li>La vie du développeur débutant est fascinante </li></ul><ul><ul><li>« Je dois livrer un export XML des articles pour demain… mais je trouve pas la table article, c’est quoi ce modèle SQL ? Il y aurait une API ? » </li></ul></ul><ul><ul><li>«  … et j’ai même pas checker mes tweets  ! » </li></ul></ul>« Je dois livrer un ‘ carrousel en bloc eZ Flow ’ dans 4 heure… mais c’est quoi eZ Flow ? »
  5. 5. Préambule aux mauvaises pratiques <ul><li>Quelle solution choisir ? </li></ul><ul><ul><li>« Bon je vais bricoler un truc crado, et je reviendrai dessus plus tard … … enfin après avoir dépiler les 50 tickets similaires … </li></ul></ul><ul><ul><li>… enfin, (jamais) </li></ul></ul><ul><ul><li>  » </li></ul></ul>
  6. 6. Préambule aux mauvaises pratiques <ul><li>Impact très lointain sur eZ Publish… chez les clients finaux, quelques années plus tard </li></ul><ul><ul><li>« Ca rame », « C’est buggé » </li></ul></ul><ul><ul><li>« Impossible de trouver des experts » </li></ul></ul><ul><ul><li>« Compliqué à installer » </li></ul></ul><ul><ul><li>« Compliqué et cher à héberger » </li></ul></ul><ul><ul><li>« Courbe d’apprentissage interminable » </li></ul></ul><ul><ul><li>« Faudrait acheter un support pour que ca marche ? » </li></ul></ul>
  7. 7. Préambule aux mauvaises pratiques <ul><li>Un bon business pour les SSII, un mauvais business pour eZ Publish </li></ul><ul><ul><li>«  CLIENT : Le commercial qui m’a vendu eZ Publish en remplacement de Plone me dit maintenant que c’est la faute de l’outil… et me dit que Drupal n’a pas tous ces problèmes !  » </li></ul></ul><ul><ul><li>«  COMMERCIAL : Je lui ai vendu des sites vite produits à pas cher, je vais maintenant lui vendre une bonne maintenance & une migration dans 1 an vers Drupal  » </li></ul></ul>???
  8. 8. <ul><li>Solutions ? </li></ul><ul><ul><li>Livres de références : perfectible, mais ca existe (en anglais) </li></ul></ul><ul><ul><li>Formation externe : qui a suivi une formation (éditeur) ? </li></ul></ul><ul><ul><li>Communauté active (forum, tutoriels, talks) : on y travaille </li></ul></ul>
  9. 9. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish INSTALL eZ Days 2011 14 Octobre - Paris
  10. 10. INSTALL <ul><ul><li>Ce que l’on peut voir : Des combinaisons eZ Publish (hackés) / extensions non compatibles (hackés aussi) </li></ul></ul><ul><ul><ul><li>Quelle version communautaire utiliser ? </li></ul></ul></ul><ul><ul><ul><li>Quelles extensions sont compatibles ? </li></ul></ul></ul>
  11. 11. INSTALL <ul><ul><li>La page de téléchargement : que choisir ? </li></ul></ul>extensions
  12. 12. INSTALL <ul><ul><li>Option 1 : le package facile à installer, la 4.4 fuji </li></ul></ul>Prendre la version avec ezc (zeta components) Prendre les extensions
  13. 13. INSTALL <ul><ul><li>Option 2 : plus complexe , 4.2011 (=2011.4) , 4.5 avec pas mal de correctif </li></ul></ul>Prendre les extensions de la 4.4 (quelques bugs simple à corriger avec &quot;ezpI18n::tr&quot; ) <ul><ul><li>Option 3 : pour les vrai sportifs , 2011.x dernières release sur share.ez.no + extensions sur github </li></ul></ul>Note : le eZ Publish sur Github n’est pas directement installable (version pré bundle), nécessite un jeu de settings
  14. 14. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish SETTINGS eZ Days 2011 14 Octobre - Paris
  15. 15. SETTINGS : DESIGN / SITEACCESS <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Des designs dans le répertoire racine /design </li></ul></ul></ul><ul><ul><ul><li>Des modifications directes de .ini </li></ul></ul></ul><ul><ul><ul><li>Des duplications de design identiques entre les siteaccess (langues) </li></ul></ul></ul><ul><ul><ul><li>Des projets avec 40 extensions, 1 extension par opérateur de template </li></ul></ul></ul><ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Extensions contenant les designs, factorisés pour les différents siteaccess </li></ul></ul></ul><ul><ul><ul><li>Collection d’opérateurs dans 1 seule extension </li></ul></ul></ul>
  16. 16. SETTINGS : URL <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>URL à casse variable </li></ul></ul></ul><ul><ul><ul><li>URL avec view parameters non encodés </li></ul></ul></ul><ul><ul><ul><li>URL avec des /index.php/ </li></ul></ul></ul><ul><ul><ul><li>http://monsite.com/index.php/Mon-Contenu/(facets)/Mes paramètres de façettes </li></ul></ul></ul><ul><ul><li>Ce qu’il faudrait voir : http://monsite.com/mon-contenu/(facets)/mes-parametres-de-facettes </li></ul></ul>
  17. 17. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish FRONT-END eZ Days 2011 14 Octobre - Paris
  18. 18. FRONT-END : JAVASCRIPT / CSS <ul><ul><li>Ce que l’on peut voir : Empilement de toutes inclusions JS / CSS front + back office + extensions… sur toutes les pages du front (404 de temps en temps) </li></ul></ul><ul><ul><li>Ce qu’il faudrait voir : 1 seul fichier JS / 1 seul fichier CSS « mergé » et compressé ( ezjscore ) </li></ul></ul>
  19. 19. FRONT-END : ANONYMOUS ET POLICIES <ul><ul><li>Ce que l’on peut voir : « anonymous » possède tous les droits de lectures et parfois plus… accès aux section « user », « setup », et aux modules eZ </li></ul></ul><ul><ul><li>Ce qu’il faudrait voir : accès refusé, affichage désactivé… </li></ul></ul>/content/view/full/15
  20. 20. FRONT-END : VUES FULL DES NŒUDS DE RANGEMENT <ul><ul><li>Ce que l’on peut voir : des vues FULL pour des nœuds de rangements : « folders » la plupart du temps « menu », « pied de page », « fichiers », « bloc »… </li></ul></ul><ul><ul><li>Ce qu’il faudrait voir : vrai vue FULL (sommaire), redirection, eZ Flow pour la gestion de blocs </li></ul></ul>
  21. 21. FRONT-END : LAYOUT/SET/… <ul><ul><li>Ce qu’on peut voir : des /layout/set/ un peu partout pour de l’AJAX, print, RSS, lightbox, popup… et donc des sites complets sur Google en « mini versions » </li></ul></ul><ul><li>16 000 pages indexées sur Google avec /layout/set/… </li></ul>
  22. 22. FRONT-END : LAYOUT/SET/… <ul><ul><li>Ce qu’il faudrait voir : rien sur google, éviter l’utilisation de /layout/set/… </li></ul></ul><ul><ul><li>Alternatives : </li></ul></ul><ul><ul><ul><li>Version imprimable : CSS print plutôt que le /layout/set/print </li></ul></ul></ul><ul><ul><ul><li>AJAX HTML / XML : Module, ou simple surcharge du pagelayout </li></ul></ul></ul><ul><ul><ul><li>AJAX JSON / XML : Ezjscore et appels direct de fonctions PHP (pas besoin d’un module) </li></ul></ul></ul>
  23. 23. FRONT-END : EZJSCORE ET APPELS AJAX <ul><ul><li>Focus sur les appels AJAX avec ezjscore </li></ul></ul><ul><li>SUBTREE : en XML :  /ezjscore/call/ezjscnode::subtree::2::10::0::published_date::1::?ContentType=xml </li></ul><ul><li>en JSON :  /ezjscore/call/ezjscnode::subtree::2::10::0::published_date::1::?ContentType=json </li></ul><ul><li>Les paramètres :  ...subtree::parent_node_id::limit::offset::sort::order OBJECT / NOEUD : Fetcher en XML / JSON un objet, un noeud... /ezjscore/call/ezjscnode::load::eznode_61::all?ContentType=xml /ezjscore/call/ezjscnode::load::ezobject_61::all?ContentType=xml </li></ul><ul><ul><li>Faites un appel à vos classes PHP : </li></ul></ul><ul><ul><ul><li>http://share.ez.no/learn/ez-publish/ezjscore-ez-publish-javascript-and-ajax-framework/(page)/9 </li></ul></ul></ul>
  24. 24. FRONT-END : LAYOUT/SET/… <ul><ul><li>Ce qu’on peut voir : des 404 personnalisées, avec tout le pagelayout autour (120 hits…). Nouveau site, nouvelle URL, pas de 301, les robots cherchent les 100000 anciennes pages, … </li></ul></ul><ul><ul><li>Ce qu’il faudrait voir : 404 épurés, le moins de réquêtes SQL et hits possible </li></ul></ul>
  25. 25. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish TEMPLATE eZ Days 2011 14 Octobre - Paris
  26. 26. TEMPLATES : DATA EN DUR <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>node_id , en dur, dans les templates </li></ul></ul></ul><ul><ul><ul><li>contentclass_id , en dur, dans les templates </li></ul></ul></ul><ul><ul><ul><li>textes non traduisibles </li></ul></ul></ul><ul><ul><li>Ce qu’il faudrait voir : textes traduisibles (préventif), node_id en settings globaux, contentclass identifier « textuel » en settings globaux </li></ul></ul>
  27. 27. TEMPLATES : COMPLEXITE <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Des portions de site dans le pagelayout.tpl (100 lignes de template pour savoir si le bandeau est bleu ou rouge) </li></ul></ul></ul><ul><ul><ul><li>Des templates de 500 lignes qui génèrent 650 requêtes SQL </li></ul></ul></ul><ul><ul><ul><li>Des rangements / inclusions / surcharges illisibles ( jeu de piste ) </li></ul></ul></ul>
  28. 28. TEMPLATES : COMPLEXITE <ul><ul><li>Ce qu’il faudrait voir (1/2) : </li></ul></ul><ul><ul><ul><li>Des templates à l’algorithmique simpliste, si cela devient complexe -> opérateur de template </li></ul></ul></ul><ul><ul><ul><li>Des conventions de nommage par vue ou par classe </li></ul></ul></ul><ul><ul><ul><ul><li>full/article.tpl, view/article.tpl </li></ul></ul></ul></ul><ul><ul><ul><ul><li>article/full.tpl, article/view.tpl </li></ul></ul></ul></ul><ul><ul><ul><li>Moins de 6 requêtes par page (1 voir 0 pour les meilleurs) </li></ul></ul></ul>
  29. 29. TEMPLATES : COMPLEXITE <ul><ul><li>Ce qu’il faudrait voir (2/2) : </li></ul></ul><ul><ul><ul><li>eZFind pour les fetch, filtres trop complexe (1 à 2 requêtes permet de couvrir tous les cas de figure) </li></ul></ul></ul><ul><ul><ul><li>Ezpagedata pour sortir les données du nœud vers le pagelayout.tpl (colonne de droite, couleur, menu sélectionné, title, bandeau…) </li></ul></ul></ul><ul><ul><ul><li>Ne pas charger le datamap , lorsque ce n’est pas utile (load_data_map = false()) dans les Fetch </li></ul></ul></ul>
  30. 30. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish BACK OFFICE eZ Days 2011 14 Octobre - Paris
  31. 31. BACK OFFICE <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Un compte admin partagé pour tout le monde : développeur, webmaster, rédacteurs… </li></ul></ul></ul><ul><ul><ul><li>Des webmaster autonomes dans le vidage de cache (tout les caches !), configuration des classes (ajouts de champs) & des droits (ajout de rôles) ! </li></ul></ul></ul>
  32. 32. BACK OFFICE <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Un cloisonnement strict entre les rôles « admin », «  webmaster  » : droit uniquement sur les sections « content », « media », « users » </li></ul></ul></ul><ul><ul><ul><li>Configuration de droits pour ne pas autoriser la création de nœuds dans des subtrees improbables : créer des « news » uniquement sous le dossier « dossier de news » </li></ul></ul></ul><ul><ul><ul><li>Ne pas utiliser massivement les «  folders  » mais créer des classes spécialisées </li></ul></ul></ul>
  33. 33. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish CACHE eZ Days 2011 14 Octobre - Paris
  34. 34. CACHE-BLOCK <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Des clés de cache-block trop fines , et générant un volume considérable de fichier (remplissage du disque -> plusieurs Go -> vidage de cache impossible) </li></ul></ul></ul><ul><ul><ul><li>Des subtree expiry sur le nœud 2 (tout le site) </li></ul></ul></ul><ul><ul><ul><li>Mauvais exemple : cache-block d’eZWebin </li></ul></ul></ul><ul><ul><ul><li>{cache-block keys=array( $module_result.uri, $basket_is_empty, $current_user.contentobject_id, $extra_cache_key )} </li></ul></ul></ul>
  35. 35. CACHE-BLOCK <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Si un cache block, n’a qu’un seul état (inclusion javascript), ne jamais le faire expirer </li></ul></ul></ul><ul><ul><ul><li>Si un cache block possède 5 états (couleur d’un bandeau, utiliser une clé à 5 valeurs </li></ul></ul></ul><ul><ul><ul><li>Eviter d’utiliser une clé par utilisateur (plutôt par groupe, ou utilisation AJAX pour les données de personnalisation : nom, prénom </li></ul></ul></ul><ul><ul><ul><li>D’une façon générale, réfléchir à chaque clé de cache-block , et ne pas utiliser les propositions par défaut de ezwebin (inadapté aux sites à gros volumes et fort trafic) </li></ul></ul></ul>
  36. 36. CACHE DE VUE <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>Mise en cache de vue de millions de combinaisons d’URL (filtres à facette), dont 90% sont uniquement explorées par Google bots </li></ul></ul></ul><ul><ul><ul><ul><li>http//monsite.com/(facet1)/value1/(facet2)/value2/(facet3)/value3/(…) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>http//monsite.com/(facet2)/value2/(facet1)/value1/(facet3)/value3/(…) </li></ul></ul></ul></ul><ul><ul><ul><li>Mise en cache de vue de menu, de droite, avec des mécanismes complexes de dangereux de vidage de cache : edithandler ou workflow qui vient vider tout le cache vue suite à une modif de colonne, bloc…) </li></ul></ul></ul>
  37. 37. CACHE DE VUE <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Plutôt ou module que des vues FULL avec 1 millions de combinaisons de paramètres </li></ul></ul></ul><ul><ul><ul><li>Si pas possible, utilisation de TTL=0 pour les 90% de combinaisons improbables (3 niveaux de paramètres), couplé à des cache-block pour les items de listes, et eZ Find pour le Fetch </li></ul></ul></ul><ul><ul><ul><li>Utilisation de ezpagedata pour l’extraction HTML des colonnes, et exposition dans le pagelayout.tpl </li></ul></ul></ul>
  38. 38. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish SCRIPTS / API eZ Days 2011 14 Octobre - Paris
  39. 39. API <ul><ul><li>Ce que l’on peut voir : </li></ul></ul><ul><ul><ul><li>SQL en dur dans les scripts, handlers, modules… </li></ul></ul></ul><ul><ul><ul><li>Hack Kernel / extensions , généralement pour des problématiques contournables </li></ul></ul></ul><ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>Utilisation de l’API pour les données natives, et persistent objet pour les tables SQL custom </li></ul></ul></ul><ul><ul><ul><li>Correctifs par des patch kernel stables (github), montée de version, PHP dans un handler ou un Workflow, Kernel override </li></ul></ul></ul>
  40. 40. Tour d'horizon des mauvaises & surtout bonnes pratiques eZ Publish SURVIE DU SITE eZ Days 2011 14 Octobre - Paris
  41. 41. Survie du site <ul><ul><li>Ce que l’on peut voir (pas longtemps) : </li></ul></ul><ul><ul><ul><li>Des bases de données qui grossissent à l’infinie (table session, cluster EZDB) </li></ul></ul></ul><ul><ul><ul><li>Des filesystems qui se remplissement à l’infinie (30Go de cache-block) </li></ul></ul></ul><ul><ul><ul><li>Des scripts d’imports qui durent 24h ou échouent </li></ul></ul></ul><ul><ul><ul><li>Du multi-frontal avec une synchronisation de cache rsync </li></ul></ul></ul><ul><ul><ul><li>Des vidages complets du cache par le Webmaster, ou le développeur suite à correctif </li></ul></ul></ul><ul><ul><ul><li>Des ajouts d’attributs sur des classes qui contiennent 1M d’objet </li></ul></ul></ul><ul><ul><ul><li>Des montages NFS dramatiquement lents </li></ul></ul></ul>
  42. 42. Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>BDD : Des CRON de nettoyages activés pour les sessions, brouillons, ou utilisation memcached pour les sessions utilisateurs (eZ 4.4+) </li></ul></ul></ul><ul><ul><ul><li>BDD : Une configuration fine du historylimit par classes de contenus (10 par défaut pour toutes les classes) </li></ul></ul></ul><ul><ul><ul><li>Disque : Des cache-block & cache de vues optimisés (déjà vu slides précédents) : choix pertinente de clés, limitation dans les view parameters </li></ul></ul></ul>
  43. 43. Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>IMPORTS : Une utilisation optimisée de l’API pour l’import de contenus : importer ce qui à vraiment changé (prétraitement), désactivation indexation, désactivation handlers, créer de nouvelles versions que si nécessaire, libérer la mémoire à chaque itération… </li></ul></ul></ul><ul><ul><ul><li>EXPORTS : Fetcher le datamap que si utile, libérer la mémoire à chaque itération, faire un append de fichier plutôt qu’un tableau en mémoire… </li></ul></ul></ul>
  44. 44. Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>MULTI-FRONTAL : Oublier RSYNC… et utiliser un cluster eZDBFS (plutôt que eZDB). Ne pas utiliser de cluster si un seul frontal… </li></ul></ul></ul><ul><ul><ul><li>MAJ DU CACHE : Ne jamais vider le cache complet si pas utile : utiliser les « tags » et « id ». Utiliser eztc.php pour forcer la recompilation de caches spécifiques (éviter la recompilation de caches de templates inchangés : admin). </li></ul></ul></ul>
  45. 45. Survie du site <ul><ul><li>Ce qu’il faudrait voir : </li></ul></ul><ul><ul><ul><li>ATTRIBUTS : Déléguer l’ajout d’attribut à un script (ezscriptmonitor), nettoyer au préalable les données inutiles pour limiter le nombre de INSERT (flatten.php) </li></ul></ul></ul><ul><ul><ul><li>NFS : Les performances eZ Publish sont intimement liés à performance des I/O. Si NFS trop lent pour X raisons réseaux, pas de NFS. </li></ul></ul></ul>
  46. 46. <ul><li>Questions ??? </li></ul>@gandbox @kaliop http://www.gandbox.fr/ http://share.ez.no/

×