Rum first london web perf meetup

45

Transcript of Rum first london web perf meetup

Page 1: Rum first   london web perf meetup
Page 2: Rum first   london web perf meetup

Who I Am

Cliff Crocker

VP Product

SOASTA, Inc.

@cliffcrocker

Page 3: Rum first   london web perf meetup

http://www.flickr.com/photos/luc/

Real Users

Page 4: Rum first   london web perf meetup

http://www.flickr.com/photos/spullara/

Happy Users

Page 5: Rum first   london web perf meetup

http://www.flickr.com/photos/sybrenstuvel/

Not SoHappy

Page 6: Rum first   london web perf meetup

RUM 101Real User Measurement (RUM) is a technology for collecting performance metrics directly from the browser of an end user.

• Involves instrumentation of the page with JavaScript

• Measurements are fired across the network to a collection point through a small request object (beacon)

<JS>MySite.com

<beacon>

Page 7: Rum first   london web perf meetup

Origins of RUM2005-6: Steve S. builds

JS tool to measure page load from the browser during a Yahoo! hackday

2008: Steve open sources ‘Episodes’. White pages open

sources ‘Jiffy’

2010: Yahoo! Open sources

‘boomerang.js’ the same day Navigation Timing is introduced

in IE9 beta

• http://stevesouders.com/episodes/• https://code.google.com/p/jiffy-web/• http://lognormal.github.com/boomerang/doc/• https://dvcs.w3.org/hg/webperf/raw-

file/tip/specs/NavigationTiming/Overview.html

Page 8: Rum first   london web perf meetup

This helped…

Page 9: Rum first   london web perf meetup

Navigation Timing API

• Exposes network level timing details to JavaScript

• DNS lookup, TCP connect, SSL handshake, First Byte time, and more

• For a given web request, you can tell exactly where the time was spent

• Supported by IE >= 9, Chrome >=6, Firefox >=7, Android Browser .=4.0, others

• No exposure into rendering times

Page 10: Rum first   london web perf meetup

C’mon Safari, be cool…

http://caniuse.com/nav-timing

~70% Browser Support

Page 11: Rum first   london web perf meetup

Why RUM is Awesome

• Reduces the level of convincing we have to do within our organization that ‘faster is better’

• The only way to measure perceived performance from your end user

• Easy to maintain

• Only getting better…– Check out:http://blog.patrickmeenan.com/2013/07/measuring-

performance-of-user-experience.html• User Timing for RUM and Synthetic

– Fun with resource timing: https://github.com/andydavies/waterfall

Page 12: Rum first   london web perf meetup

What gives??

No RUM

RUM • According to a study done in 2012* only 1 in 5 of the top ecommerce sites are using some form of RUM

*http://www.webperformancetoday.com/2012/11/13/real-user-monitoring-rum-ecommerce-sites/

Page 13: Rum first   london web perf meetup

Challenges with RUM

1. It’s a “data” problem

2. People don’t like change

3. Hard to “sell” internally

Page 14: Rum first   london web perf meetup

For a modest sized site, in a given day

1-3 Million Page Views

Perf Timing

User Agent

OS/Device

Geography

Page Segmentation

Bandwidth Classification

A/B Bucket

‘Other’

Page 15: Rum first   london web perf meetup
Page 16: Rum first   london web perf meetup

Many have advocated aggressive sampling of data…

Page 17: Rum first   london web perf meetup

~1% sample, looking at a period of about 3 hours for a given page segment (Checkout)

1% > checkout

Page 18: Rum first   london web perf meetup

Filtered to the United States…

1% > > checkout

Page 19: Rum first   london web perf meetup

Looking specifically at California…

1% > > > checkout

Page 20: Rum first   london web perf meetup

IE9 Browsers only.

1% > > > checkout

Page 21: Rum first   london web perf meetup

Looking at all traffic.

100% > checkout

Page 22: Rum first   london web perf meetup

All filters applied, identified bimodal distribution driven by backend time.

100% > > > checkout

> backend time

Page 23: Rum first   london web perf meetup

Sampled at 1%

Not sampled

Page 24: Rum first   london web perf meetup

To be fair…

Read: http://www.webperformancetoday.com/2013/03/06/big-

data-vs-big-enough-data/

Page 25: Rum first   london web perf meetup

Many use a batch solution…

Page 26: Rum first   london web perf meetup

• Batch processing large amounts of data has been a traditional approach for RUM

– Great for looking at historical data, trending, etc.

– Big Data is not necessarily Fast Data

• Not ‘Operational’

Page 27: Rum first   london web perf meetup

In order for RUM to be operationally relevant, you need the data in real-time

Page 28: Rum first   london web perf meetup

Synthetic vs. RUM

http://www.flickr.com/photos/myvector/

Page 29: Rum first   london web perf meetup

It is Not Either Or

• Synthetic and RUM coexist

• Important to understand:

– Geographic performance

– Object level detail (waterfall)

– Browser performance

– Competitive positioning

– Site coverage

Page 30: Rum first   london web perf meetup

Performance by Geography

RUM

Page 31: Rum first   london web perf meetup

????

Performance by Geography

Synthetic

Page 32: Rum first   london web perf meetup

Understanding Performance by Geography

• RUM provides better visibility into geographic variability (simply more data points from more locations)

RUM 1

Synthetic 0

Page 33: Rum first   london web perf meetup

Object Level Detail

RUM 1

Synthetic 1

Waterfall available for most major browsers available for synthetic monitoring (IE, FF (Commercial), Chrome, Safari)

Limited support for waterfall using resource timing (IE10 & Chrome stable) – using waterfall.js

Page 34: Rum first   london web perf meetup

Browser Coverage

RUM 2

Synthetic 1

SyntheticSupport for major browsers

Commercial (mainstream synthetic)

WebPagetestsupport

RUMSupport for any browser that executes JS

Page 35: Rum first   london web perf meetup

Competitive Positioning

RUM 2

Synthetic 2

Synthetic

Ability to measure competitors easily

RUM

More complex, no standard benchmarks (yet!)

Commercial offerings

WebPagetest.org

Page 36: Rum first   london web perf meetup

Site Coverage

RUM 3

Synthetic 2

Synthetic

Choose a ‘happy path’ or spot check

RUM

No blind spots!

http://scoutmastercg.com/wp-content/uploads/typimg/green_laser.png

http://www.flickr.com/photos/areese/with/4002609608/

Page 37: Rum first   london web perf meetup

Synthetic Monitoring

• Pros

– Technology is great

– Real Browsers (IE, Chrome, FF)

– Built in Alerting

– Waterfall analysis

– Screen shots & headers

– Object level detail

• Cons

– False Positives

– Impossible/impractical to measure everything

– Fixed number of browser/OS combinations

– Simulated bandwidth constraints at best

– Too few data points for statistical relevance

Page 38: Rum first   london web perf meetup

RUM

Cast a wide net• Identify key areas of concern• Understand real user impact• Tie this back to $$ (next)

Synthetic

Diagnostic tool• Identify issues in a ‘lab’• Reproduce a problem found with

RUM

http://www.flickr.com/photos/84338444@N00/with/3780079044/

http://www.flickr.com/photos/ezioman/

Page 39: Rum first   london web perf meetup

RUM in the Workplace

Page 40: Rum first   london web perf meetup

Studies show…

Page 41: Rum first   london web perf meetup

However, you have to look at your own data

Page 42: Rum first   london web perf meetup

Understand your KPIs and How to Track Them

• Retail: Order Conversion, Add to Cart Conversion, Revenue

• Media: In Line Display Ad Views, Comments,

• Other: Facebook likes/Social Media sharing

Page 43: Rum first   london web perf meetup

Bottom Line, if you want your business to care – then make it relevant for

them (speak their language)

Page 44: Rum first   london web perf meetup

Strategy for Success – RUM First

RUM First

• All the data (or statistically relevant sample)

• Real-time and historical

Supplement with

Synthetic

• Reduce measurements based on coverage with RUM

• Use for adhocdiagnostic & competitive benchmarking

Map to business

KPIs

• YOUR goals

• YOUR data

• Single source of truth

Page 45: Rum first   london web perf meetup

mPulse Litehttp://www.soasta.com/free/