Optimisation des performances et scalabilité de site Web

<>
< Précédente> Suivante

14/12/2015

Optimisation des performances et scalabilité de site Web

Le projet :

Le site CommentReparer.com accueille 12000 visiteurs par jour avec 30000 pages vues.

En préparation d'un passage télévisé sur une chaîne nationale, un travail d'analyse et d'optimisation des performances a été lancé pour pouvoir accueillir un maximum de visiteurs pendant le "pic" de fréquentation.

L'objectif était multiple :
- maintenir le temps de chargement médian en dessous de 100ms (server-side)
- servir le maximum de pages depuis le cache (taux de hit/miss élevé)
- mettre en place plusieurs niveaux de cache pour éviter le rechargement des contenus depuis la base MySQL
- identifier les requêtes trop coûteuses, les optimiser ou retarder leur exécution



Mon intervention :

- Séparation des assets (images) avec un microservice de redimensionnement (Lumen) sur un serveur Nginx dédié
- Installation et mise en test d'un serveur de Cache distant (Varnish)
- Installation de cache de pages (Zend Cache) avec invalidation côté serveur par tags
- Installation de cache de vues (Memcache) avec invalidation par identifiant
- Installation d'outils de log des performances (InfluxDB, Grafana)
- Mise en place de graphes de suivi du cache (Cache Hits du cache de page, du cache de vues, Cache Misses, Pages non cachables)
- Mise en place de graphes de suivi du temps de chargement des pages avec percentiles (95e, 90e, 80e, Médiane)



 
© 2017