introduction à la webperf

57
Techniques d’accélération des pages Web Jean-Pierre VINCENT Consultant indépendant @theystolemynick Braincracking.org

Upload: jean-pierre-vincent

Post on 25-Dec-2014

826 views

Category:

Technology


1 download

DESCRIPTION

Comment accélérer ses pages Web ? Combien cela rapporte il, quels sont les outils Nous allons voir les techniques de base que les développeurs doivent connaître et quels sont les outils dont tout site moderne doit s'équiper pour assurer un minimum de qualité.

TRANSCRIPT

Page 1: Introduction à la webperf

Techniques d’accélération des pages Web

Jean-Pierre VINCENTConsultant indépendant

@theystolemynickBraincracking.org

Page 2: Introduction à la webperf

Bonjour, je m’appelle Jean-Pierre

l 13 ans de Web :l PHP, JavaScript, HTML5, CSSstartups, Yahoo!, houra.fr

Expert frontend indépendantl Veilleur :l braincracking.orgl @theystolemynick

Page 3: Introduction à la webperf

Performance frontend ?

Performances traditionnelles :- Tenir la charge- Délivrer vite- Techniques serveur

Performances Frontend- Vitesse d'affichage d'une page- Fluidité de l'interface- Techniques de développeur front

Page 4: Introduction à la webperf

Performance frontend

Rien Rien Premier affichage ! Chargé

Page 5: Introduction à la webperf

Pourquoi la performance ?

l Qualité perçue

l Ergonomie

l Référencement

l Coûts réseau

l Fun

$$

Page 6: Introduction à la webperf

Combien coûte une seconde ?

Page 7: Introduction à la webperf

Combien coûte une seconde ?

Tunnel d’achat :

1s = -7% de conversion

Tagman, 2012

Page 8: Introduction à la webperf

Combien coûte une seconde ?

Vidéo :

1s = -6% de vue

Akamai 2012

Page 9: Introduction à la webperf

Combien coûte une seconde ?

e-commerce

1 s = - 50 % de conversion

Walmart 2012

Page 10: Introduction à la webperf

Combien coûte une seconde ?

Search

l Bing : 1 s = l - 3 % de CAl Yahoo! : 1 s = l + 10 % de rebond

Études Bing et Google Velocity 2009 : http://velocityconf.com/velocity2009/public/schedule/detail/8523

Page 11: Introduction à la webperf

Combien coûte une seconde ?

Mobile

l 1 s = -10% de pages vues

l Après 4 s : 60% d'abandon

/

http://www.themediabriefing.com/article/2012-10-02/speed-is-a-feature-why-a-slow-mobile-web-experience-means-lost-revenuehttp://www.strangeloopnetworks.com/resources/infographics/2012-state-of-mobile-ecommerce-performance/poster

Page 12: Introduction à la webperf

Pourquoi la performance ?

l SEOl1 critère de référencement

chez GooglelInfluence le taux de crawl

l Métrique : temps « onload »

lMesurée par les utilisateurs

http://googlewebmastercentral.blogspot.fr/2010/04/using-site-speed-in-web-search-ranking.html

Page 13: Introduction à la webperf

l Charger un site de 1,5 Mo ?

l Facile avec la fibre !

Toujours utile ?

Page 14: Introduction à la webperf

Les utilisateurs

Sources 2012 : Akamai, Degrouptest, 60 Millions de consommateurs, ARCEP, Cedexis

ADSL Mobiles

Débit 4, 8 Mb/s 2,5 Mb/s

Latence 95 ms 200 ms

Temps de chargement

Page 15: Introduction à la webperf

l Débit moyen : 5 Mb/s

l 25% des utilisateurs ont moins de 2,5 Mb/s

Répartition des débits (ligne fixe)

Les utilisateurs

Page 16: Introduction à la webperf

ADSL Mobiles

Débit 2,5 Mb/s 2,5 Mb/s

Latence 110 ms 200 ms+25% de perte

Connexion réseau à cibler :

Navigateurs à cibler :IE 8Safari iOSAndroid 2.3.x et 4.x

Les utilisateurs

Page 17: Introduction à la webperf

l Le site moyenl 1,5 Mol 120 requêtesl 12 domaines

15 secondes de chargement

Page 18: Introduction à la webperf

Chantier Webperf

l Fixer des objectifs

l Mesurer pour l'utilisateur

l Coder !

l Surveiller

Page 19: Introduction à la webperf

Objectifs Utilisateurs

Interactivité avec la fonctionnalité < 5 s

Page 20: Introduction à la webperf

Mesurer l'accès à la fonctionnalité

l En JavaScriptl Google Analytics « User Timing »l Boomerang, autres outils de RUM

Page 21: Introduction à la webperf

Interactivité avec la fonctionnalité < 5 s

Premier rendu < 2 s

Objectifs Utilisateurs

Page 22: Introduction à la webperf

Mesurer le premier rendu

l En JavaScriptl Librairies RUM :l RequestTrackerl Boomerang JS

l Outils externesl WebPageTest.org

Page 23: Introduction à la webperf

Interactivité avec la fonctionnalité < 5 s

Premier rendu < 2 s

Réponse HTML < 1 s

Chargement de la page < 20 s ?

Objectifs SEO

Page 24: Introduction à la webperf

Mesurer le onload

l Pratiquement tous les outils

Page 25: Introduction à la webperf

Agir

Techniques passe partout :

l Configuration serveurl Cache serveur, cache clientl Chargement des fichiers

Page 26: Introduction à la webperf

Configuration serveur

1. Configuration du keep-alive :

2. Activer la compression

KeepAlive OnKeepAliveTimeout 5Timeout 10

SetOutputFilter DEFLATEAddOutputFilterByType DEFLATE text/html text/css text/plain application/x-javascript

Page 27: Introduction à la webperf

Configuration serveur

Vérifier avec WebPageTest

Page 28: Introduction à la webperf

Cache Serveur

l Fichiers platsl Mécanismes / plugin des CMSl memcachel Varnishl CDN…

Paramétrage du temps de cacheContenu personnalisé

Page 29: Introduction à la webperf

Cache serveur

Vérifier avec WebPageTest

Page 30: Introduction à la webperf

Agir

l Le chargement des fichiers ou le chemin critique

Page 31: Introduction à la webperf

Trouver le chemin critique

Chemin critique

1er rendu

Le chemin critique

Page 32: Introduction à la webperf

Côté client

l Redirectionsl CSSl Policesl JS

Ressources bloquantes :

Le chemin critique

Page 33: Introduction à la webperf

Redirections

l Limiter à 1 maxl Jamais côté clientl Surtout sur mobile

Le chemin critique

Page 34: Introduction à la webperf

CSS / JS

l Concaténation (2 fichiers max par type)

l Minification

Le chemin critique

Page 35: Introduction à la webperf

Polices

l Les limiterl Les valider :l poids,l utilisée,l compatible (Chrome XP)

Le chemin critique

Page 36: Introduction à la webperf

Le choix des armes

l <script src> en hautl <script src> en basl Inlinel defer l Asynchrone

Inclure JavaScript

Page 37: Introduction à la webperf

<script src> en haut

Si :l petit l concaténé l sans concurrence

l Etl HTML + CSS + JS + Fonts < 6 requêtes

Inclure JavaScript

Page 38: Introduction à la webperf

<script src> en bas

l Si :l Page légèrel Gestion des dépendancesl Pas de document.write()l Pas de iOS

Inclure JavaScript

Page 39: Introduction à la webperf

l Imagesl Iframel Objets flash / vidéo

Ressources gênantes :

Temps onload()

Page 40: Introduction à la webperf

Images

l Optimisations :

l Ne pas les charger !l Charger à la demandel Compression manuellel Compression automatique

Page 41: Introduction à la webperf

Remplacer la décoration

l Caractères unicode ►★✓⇢✎♥☎♻⚠☻☺⇨l Dégradésl Coins arrondisl Ombres sur texte et boîtesl Rotation de textel Opacité

l http://ikwebdesigner.com/special-characters/

Page 42: Introduction à la webperf

Chargement Just In Time

l Méthode de lazy-load :

l charger les images visibles

https://github.com/fasterize/lazyload

Page 43: Introduction à la webperf

Sprites

l Maintenance Outil : Sass + Compass

Page 44: Introduction à la webperf

Compression manuelle

l Connaître les formats

l PNG toujours meilleur que GIFl PNG : ultra efficace avec des aplats de couleurl JPG : mauvais pour le texte si il est en couleursl Jamais de PNG entrelacél PNG8 alphal WebP : mal supportél …

Page 45: Introduction à la webperf

Cache client

Page 46: Introduction à la webperf

Efficace mais :50% des sites oublient30% ont un TTL < 30 jours

Gérer son cache

Page 47: Introduction à la webperf

« Vide ton cache »

Sans cache : • Phases de recette interne • Environnements de développement

Cache agressif : • Cache utilisateur • Chaîne de cache réseau

Gérer son cache

Page 48: Introduction à la webperf

Invalidation des caches longs

l Maîtrise totale des URLl HTMLl CSSl JS

l Processus de compilationl URL rendues uniques par :

l Numéro de releasel Md5 du fichier

Expires : +1 anCache-control : publicVary : xxx

Mise en cache long :

Gérer son cache

X

Page 49: Introduction à la webperf

Gérer son cache

Surveiller : WebPagetest

Page 50: Introduction à la webperf

Pourquoi la performance ?

Un administrateur l système heureux

l

l

l Serveurs tiers

Page 51: Introduction à la webperf

SPOF

Dépendances à des serveurs tiers qui peuvent bloquer le rendu

Usual suspect :l http://platform.twitter.com/widgets.jsl https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js

l http://html5shiv.googlecode.com/svn/trunk/html5.js

Page 52: Introduction à la webperf

SPOF-O-Matic

Teste la fragilité aux ralentissements des serveurs tiersl démo

Page 53: Introduction à la webperf

SPOF

Surveiller : WebPagetest

Fixer : chargements asynchrones

Page 55: Introduction à la webperf

Passer des règles aux outils

l Règlesl Yahoo! Best Practices

l (35 règles)l Google PageSpeedl (31 règles)l Test Opquastl (41 règles)…l Jusqu'à 400+ pratiques

l Outilsl Analyse réseaul Profilingl Bonnes pratiquesl Monitoringl RUMl Intégration continue

Page 56: Introduction à la webperf

Questions ?

l Viens jouer :l braincracking.orgl @theystolemynick

Page 57: Introduction à la webperf

Crédits

l http://www.flickr.com/photos/themonnie/2495892146l http://www.flickr.com/photos/76657755@N04/7214596024/in/photostream/l http://www.flickr.com/photos/johannes_wl/8364284798/sizes/l/in/photostream/