retour d'expérience varnish cache chez eurosport
TRANSCRIPT
1
Varnish Cache chez Eurosport -
Retour d’expérience
Benjamin Baumann
10/05/2016
2
Intro Varnish basique Varnish réel Questions
INTRODUCTION
3
Intro Varnish basique Varnish réel Questions
Benjamin Baumann
architecte de solutions @Eurosport, ex-devops
@Zentiltoutou
https://github.com/bbaumann
http://stackoverflow.com/users/409748/benjamin-baumann
https://fr.linkedin.com/in/benjamin-baumann-133033a4
4
Intro Varnish basique Varnish réel Questions
Varnish en quelques mots
• Reverse proxy
• Focus sur le cache des objets
• Décharge les serveurs web
• Peu gourmand en CPU
• Besoin de RAM/disque
• Versions 3.0/4.1
• Efficace
« Varnish? Ca marche super bien : on l’a mis en place il y a deux ans et on n’y a pas touché depuis » entendu au Meetup #1
9
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
10
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
• Serveurs physiques
• 8 CPUs • 16Go RAM • 2.3To de carte Fusion IO
• Filtre les requêtes inutiles (50-80%)
• Configuration très basique
11
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
12
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
13
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
14
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
Regardons la conf https://github.com/bbaumann/varnish-startup/blob/master/default.vcl
15
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
Quelques ajustements :
16
Intro Varnish basique Varnish réel Questions
Varnish Basique : cas de la VOD
Quelques ajustements :
17
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : cas du web
18
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : cas du web
• Varnish 3.0 (historique)
• En place depuis 2010
• 2 couches à cause de la limitation du
nombre de ports éphémères
• But = décharger les serveurs webs des requêtes inutiles
• Akamai puis Varnish servent d’entonnoir à requêtes
19
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : cas du web
• 22% de hit ! • En + d’akamai
• 1%-2% CPU • Sur 4 «brouettes» • 50+ backend
servers • 15 backends
20
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
Tweaks System
• Limiter l’espace Transient (ttl < 10sec)
• Augmenter le range des ports éphémères • HTTP 1.1 : Keep Alive
Limite les pbs de ports éphémères • Conf habituelle :
21
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
BP conf Varnish
• Limiter les Methodes HTTP
• C’est l’applicatif le maître des TTL Toujours tester si Cache Control existe avant
de le paramétrer Ne pas toucher au ttl sauf cas exceptionnel
22
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
BP conf Varnish
• Ne pas faire de conf monolithique
• Ne pas cacher les requêtes incachables (POST, authentification, cookie…)
23
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
BP conf Varnish
• Gérer une mini API de Ban/Purge
24
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
BP conf Varnish
• Espacer suffisamment les healthcheck/probe
25
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
BP conf Varnish
• Utiliser le Grace Time et le Saint Mode à bon escient
- Grace Time Temps supplémentaire de cache après le TTL - SaintMode Sert l’objet « grace » plutôt que requêter le backend
26
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Tweaks & BP
BP conf Varnish • Monitorer
- Hit/Miss Ratio - Nuked objects - Nombre de threads - Conso CPU
27
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Limitations
• Varnish 3.0 supprime le header If-Modified-Since
• Pas de revalidation du cache avec IMS
• Absence d’Offload SSL
• Taille RAM limite ce qu’on cache
• Mode filesystem = gros fichier, attention aux nuked
28
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Autres usages
• Interdire l’accès à certains bots • Ne pas cacher les crawls des bots
• Quick fix (astreinte) • Créer un « bouchon » pour réparer une application
29
Intro Varnish basique Varnish réel Analyse
Tweaks et BP Limites Usages exotiques
Questions
Varnish Avancé : Autres usages
• Standardiser les requêtes entrantes et sortantes
(Accept Encoding, suppression de headers)
30
Intro Varnish basique Varnish réel Questions
Conclusion
• Usage basique
- peu à faire « marche tout seul » - 50% à 80% d’offload
• Usage avancé
- 22% offload, économie de 10-20 serveurs applicatifs
- Permet de tenir les pics de charge - Gestion niveau 7 (HTTP) pour devops/astreinte - Outil en plus de ce qui existe dans l’infra (LB
HAProxy, F5, Citrix Netscaler… CDN Akamai, Level3 …)
• Attention, serveur intermédiaire jamais transparent
31
Intro Varnish basique Varnish réel Questions
@Zentiltoutou