20150126 latence 10 minutes - human talk

16
Enjeux de la latence applicative Janvier 2015

Transcript of 20150126 latence 10 minutes - human talk

Page 1: 20150126 latence   10 minutes - human talk

Enjeux de la latence

applicative

Janvier 2015

Page 2: 20150126 latence   10 minutes - human talk

Motwin

• Clients : Betclic, Consors Bank, BNP Paribas, CST, AXA, La Banque Postale

• 15 personnes (13 à Grenobles, 2 à Paris)

2

Motwin édite un logiciel d’optimisation d’APIs pour des applications sensibles au temps pour mobiles, objets connectés et web.

Page 3: 20150126 latence   10 minutes - human talk

Définitions / rappels

• Latence ≠ bande passante

– Latence réseau (RTD) = délai d’un aller-retour pour le plus petit paquet possible

– Bande passante = quantité total de données transférable en même temps

• Latence applicative : délai entre l’action d’un utilisateur et les conséquences de cette action

– Souvent l’affichage de nouvelles informations

3

Page 4: 20150126 latence   10 minutes - human talk

4

Notre cerveau

Sources : Public Library of Science, Appdynamics, “Timing responses to questions in dialogue”, Sofia Strömbergsson, Anna Hjalmarsson, Jens Edlund, David House - Department of Speech, Music and Hearing, KTH, Stockholm, Sweden

Nombres Arabes (150ms)

Comparaison (190ms)

Mouvement (330ms)

Correction d’erreur (470ms)

Temps de réaction :100 à 500 ms

Temps de réponse à une question entre humains :

100 à 500 ms

Mémoire court terme :500 ms

Mémoire sensorielleDurée : 0,5 max pour visuel

2 sec pour audio

Mémoire court-termeDurée : 30 secondes max

Mémoire long-terme

Temps de réponse moyenne à une question (milliseconde)

460

310

180

90

Question ouverte

Question à réponsesimple

Question dont laréponse est Oui/Non

Question incluant lesréponses possibles

Page 5: 20150126 latence   10 minutes - human talk

5

Effet du temps de réaction d’une application sur l’homme

5

Délai de réaction d’une application

Impact / sensation sur l’utilisateur

0,1 Secondes0,5 2 3 5 101 4

« Instantané »

Parfait (eq. Relation

humaine)

Sans attente

« Lent »40 à 60%

d’abandon sur le web desktop

« Très Lent »30 à 40%

d’abandon sur le web mobile

Perte d’attentionEnervementFatigue

Temps « normal »

Page 6: 20150126 latence   10 minutes - human talk

6

Pour Google, Amazon, Wallmart, Redhat, ebay, …

6Source : http://blog.radware.com/applicationdelivery/applicationaccelerationoptimization/2013/06/web-performance-poverty-line/

Source : http://www.ebaytechblog.com/2013/03/29/measuring-real-user-experience-with-site-speed-gauge/#.VFIHLvTF9CNSource : http://www.webperformancetoday.com/2011/11/08/velocity-faster-mobile-sites-business-kpis-case-studies/

- 100 ms = - 1% Revenue & - 5% pages vues

« If the display time increases500ms , research fell by 25% »

« If the display time increases by 100 ms, the revenue goes down to 1% »

Page 7: 20150126 latence   10 minutes - human talk

7

Le temps de communication

est une fonction de

La perception,

La latence,

Le débit,

La quantité de donnée ,

Le nombre de requêtes,

Le protocole.

Afficher des éléments rapidementProgrammation : flush , Post-load , pre-load

CDNAkamai Technologies, Edgecast, level 3, Amazon, OVH, CDNetworks

Mémoires CacheAu niveau serveur et devices

Préparer la mémoire cache en avance

InfrastructuresBande passante & CPU

CompresserGzip/deflate via accept-

encoding / content-encoding

Formats de données

Ex : JSON > HTML

Protocole de communication (binaire, push, websocket,SSE,…)

Qualité de programmationRéduire le nombre de request en les regroupant, Mettre les scripts après le

maximum de requests , Eviter les requêtes interdépendantes , Domain Sharding, Web : éviter les expressions CSS, les Redirects, ….

AdapterQuantité / qualité selon

le device

Page 8: 20150126 latence   10 minutes - human talk

Netflix UI

8

Page 9: 20150126 latence   10 minutes - human talk

Netflix solution (1/2)

9

Interface Table Doc JSON JSON Patch

Taille tableau dépend du device

JSON patch : standard de gestion des évolutions

d’un document par versionning

Simplification of Netflix (JSONG + Cache)

Page 10: 20150126 latence   10 minutes - human talk

Netflix solution (2/2)

10

Device Cache ServerApplication

First visit

Second visit or during first visit

1 request : JSON

JSON Patch= 0 Latency

Simplification of Netflix (JSONG + Cache)

Page 11: 20150126 latence   10 minutes - human talk

11

Pourquoi Google, ebay, Twitter, Facebook, Amazon :

protocoles full-duplex et des APIs de type push

(websocket, SPDY, MQTT,…)

Page 12: 20150126 latence   10 minutes - human talk

12

Latence réseau (RTD)4G = Fibre optique Trans-continental

0 100 200 300 400

EDGE/2G

3G

4G

Trans-continental optic fiber

Trans-country optic fiber

ADSL

In-town private network

Source : http://www.digitalsociety.org/2010/08/conflating-broadband-speed-with-internet-speed-is-misleading/http://www.dslreports.com/

Pour l’ADSL en HTTP la première donnée « utile » arrive après 40 ms, en 3G après 300 ms

Page 13: 20150126 latence   10 minutes - human talk

131313

« Hello !»« Yes ?! »

« Cool ! »

« I want this »« OK »« Here! »

HTTP1st page

2nd page« Hello !»

« Again?! »« Cool ! »

« I want this »« OK »« Here! »

1st page – Data refresh (*)

« Yeah … »

« Cool !»

« OK »« Here! »

« Hello !»« Yes ?! »

« I want this »« OK »« Tiens! »

1st page

2nd page

«I want this »

« Here! »

1st page – data refresh

« Here! »

Bidirectional protocol

Note: (* ) upgradeable scenario with long polling

Protocole « classique » versus protocole bidirectionnel (full-duplex)

« Hello !»

« I want this »

« Cool ? »

Page 14: 20150126 latence   10 minutes - human talk

14

Conclusions

• Au-delà de 2 secondes de temps de réaction, l’expérience utilisateur sera pauvre

• Pour créer un expérience émotionnelle, l’objectif est un temps de réaction de 500ms

• Il est quasiment impossible d’obtenir ces temps de réponse sur mobile sans mettre en œuvre des protocoles full-duplex

• Les grands investissent sur la latence … et plus il y aura d’applications rapides, plus les lentes seront mal vécues !

Page 15: 20150126 latence   10 minutes - human talk

15

Merci. Question [email protected]

@motwin_incwww.motwin.com

Prochain produit : www.streamdata.ioProxy aaS (API Poll JSON) {API Incremental Push}Beta testeur recherché !

Motwin news #1

Motwin news #2

Hackathon « Mobile Banking Factory ² ». 50000€ de prix pour des applications mobiles sur la « mobilité connectée » (CAStore, PSA, Uber, Orange, … et Motwin)

mobilebankingfactory2.bemyapp.com

Page 16: 20150126 latence   10 minutes - human talk

Beta : streamdata.io

16

APIHTTPPoll

JSON

APIPushJSON Patch

Provider

Proxy aaS

Motwin Clients / Applications

var streamdata.io = ProxyaaS (API JSON Poll) {JSON Patch Push}