Comment gérer un site à très haut trafic avec Drupal

Preview:

DESCRIPTION

Présentation faite lors d'une session à DrupalCamp Nantes en 2011. Par Maxime TOPOLOV de Adyax (http://www.adyax.com)@mtopolov@adyax_corp

Citation preview

Drupal et gros trafic

Par Maxime TOPOLOV (ADYAX)Twitter.com/mtopolovSkypeID : mtopolov

C’est les 60 sites Drupal en 2010…

Un CMS pour iPad

55 experts Drupal, 3M€ de CA

Trafic anonyme : même contenu pour tous les visiteurs.

Plus simple à gérer que le trafic connecté

Plus simple à gérer que le trafic connecté… juste avec Drupal …

Remplacer Drupal par Pressflow,Activer le cache

Installer et configurer Boosthttp://drupal.org/project/boost

Boost génère des fichiers HTML statiques, mais execute le boostrap Drupal…

Installer et configurer Elysia Cronhttp://drupal.org/project/elysia_cron

Elysia Cron permet de gérer toutes les taches attachées à hook_cron, paralleliser et désactiver certaines d’entre-elles…

Installer sur les fronts 6 instances memcached, configurer CacheRouter sur Drupal (http://drupal.org/project/cacherouter)

Configuration memcached conseillée : default : cache, cache_views, cache_update -> 256 Momenu : cache_menu -> 64 Mocontent : cache_views_data, cache_content, cache_page -> 128 Moblock : cache_block -> 64 Mofilter : cache_filter -> 64 Moform : cache_form -> 64 Mo

Mettre en place Varnish ! (http://drupal.org/project/varnish)

Installer Apache SOLR sur un serveur à part !

Exemple : IPSOS.FR Ngnix + Varnish + SOLR

http://gotdrupal.com/videos/drupal-performance-boosthttps://wiki.fourkitchens.com/display/PF/Configure+Varnish+for+Pressflowhttp://pressflow.orghttp://2bits.com/drupal-performance/improving-performance-drupals-cron-using-elysia-cron-module.htmlhttp://groups.drupal.org/node/21897/revisions/114963/viewhttp://coldfrontlabs.ca/blog/making-drupal-fly-apc-memcache-and-squidhttp://www.slideshare.net/akucharski/make-drupal-run-fast-increase-page-load-speed

À retenir : RAM, Varnish, Memcached, Ngnix, Apache SOLR

Trafic connecté = une partie des pages est unique pour chaque visiteur...

Exemple : panier d’une boutique. Facile, on l’enleve du VCL de Varnish ou de la configuration de boost, mais…

… le bloc panier s’affiche sur toutes les pages = impossible de cacher l’intégralité de la page.

… le bloc panier s’affiche sur toutes les pages = impossible de cacher l’intégralité de la page.

Solution : AuthCache ou Varnish ESI

Pour vous simplifier la vie avec AuthCache, utilisez notre module : Easy Authcache http://drupal.org/project/easy_authcache

Adyax va reverser une intégration Varnish ESI pour Panels d’ici peu ! Surveillez @adyax_corp

Le probleme principal de très gros trafics : MySQL + Drupal BootStrap

FreeRice.com = 20.000.000 pages vues / jour -> Varnish -> MongoDB + Pas de Drupal (pur PHP)

En tous cas, activez vos caches TRES TOT ! Ne le FAITES PAS au dernier moment !

… JAMAIS AU DERNIER MOMENT (signé - France.fr)