2. 1. QUI SOMMES NOUS ?
2. INTRODUCTION
3. FONCTIONNEMENT
SOMMAIRE
4. QUELQUES PIEGES A EVITER
5. UTILISATION AVANCEE
6. CONCLUSION
3. PRÉSENTATION DE L’AGENCE : QUI SOMMES NOUS ?
Agence SOON
100% ecommerce - 25 personnes
UX-UI, développement Magento, PIM
Aurélien GOUTAL
Directeur Technique
4. INTRODUCTION
Varnish est un proxy inverse (reverse-proxy) HTTP
Stockage en RAM adapté à la hausse de trafic
Son utilisation E-commerce nécessite une attention particulière :
- Zones personnalisées
- Pages à ne pas mettre en cache
- Persistance du cache
6. FONCTIONNEMENT EN DETAIL : LE VCL
Fichier de
configuration : VCL
Transformé en
language C et compilé
sur le serveur
Définition de routines
afin de personnaliser
le comportement
7. FONCTIONNEMENT EN DETAIL : LES ESI
ESI = Zones de
contenu dynamiques
AJAX – Asynchrone
Ou
ESI – Synchrone
8. FONCTIONNEMENT EN DETAIL : PERSISTANCE
Dernière pièce vendue
Produit épuisé (pushs, listings et fiche produit)
Actions en BO
Modifications devant êtres impactées en FO sans délai
Eléments statiques VS dynamiques
Durée de vie du cache différente en fonction des données à cacher
Les ESI
Blocs ESI header et Caching policy (bienvenue X, minicart, wishlist…)
9. QUELQUES PIEGES A EVITER
Form_key et la sécurité des formulaires
Login depuis le header, ajout panier
Cookie de session mal paramétré
Domaine et path
Pages mises en cache par erreur
Redirections TPE, modules spécifiques backoffice
Granularité insuffisante
Ventes privées, provenance emailing…
10. UTILISATION AVANCEE
Varnish 3 vs Varnish 4
Stale cache while revalidate
Utilisation des VMODS
GeoIP, DeviceDetect
Instances Varnish multiples
Mono-instance partagée sur plusieurs frontaux
ou Multi-instances avec partage Redis du cache
11. CONCLUSION
Etude au cas par cas pour la mise en place sur un projet
ESI à identifier, modules spécifiques FO & BO à analyser…
Souplesse d’utilisation & communauté très active
Vmods directory, extensions Magento, livres blanc…
Performances hors-pair
Benchmark simple avec Siege : 2,4pps SANS / 416,67pps AVEC !
Très haute scalabilité
Multi-instances avec partage Redis du cache entre les instances
Varnish est un serveur de cache populaire qui joue le rôle de proxy inverse ("reverse proxy") entre les serveurs d'applications (Web/HTTP dans notre cas) et les clients.
Il est utilisé par de très grands sites tel que : Wikipedia, Facebook, Pinterest, LeMonde, linternaute, JournalDuNet...
Mais son principal point fort, c'est qu'il peut stocker son cache dans la mémoire RAM de votre serveur ce qui permet de réduire considérablement vos Disk I/O lorsque vous avez une hausse de trafic.
L'utilisation de Varnish sur des projets ecommerce nescessite une attention particulière :
- Zones personalisées en fonction de la navigation de l'internaute : header, panier...
- Pages non cachées : panier, checkout, espace client...
- Perssistance du cache : produits épuisés à afficher comme tel sur listings et fiche produit, modifications en BO
Cas n° 1:
Un visiteur demande une page, une requête est donc envoyée au serveur.
Varnish intercepte cette requête et vérifie si la page demandée est dans son cache.
La page demandée n'est pas encore dans le cache de Varnish, il passe alors la requête au serveur web.
Le serveur web traite la requête et génère la page demandée puis l'envoie à Varnish.
Varnish récupère alors la page et la met en cache puis l'envoie au visiteur.
Cas n° 2:
Un autre visiteur (ou le même) demande la même page.
Il envoie donc une requête au serveur et Varnish traite la requête puis vérifie si la page demandée est dans son cache.
La page demandée est dans le cache de Varnish, il envoie alors directement la page demandée au visiteur, sans solliciter le serveur Web.