Performance hosting on Ninefold for Spree Stores and Apps

Post on 21-Oct-2014

267 views 0 download

Tags:

description

Our relationship started when Ninefold chose Spree as the App to performance test our platform. We chose Spree because for Spree apps every millisecond matters. This is just the start of exciting work we are doing together. We discussed how Ninefold and Spree can bring better performance to Spree stores: Spree on the technology and Hub side, Ninefold from hosting. There are exciting opportunities to further test our respective technologies to continue to hone the overall performance. We will share this with you as we work through.

transcript

Lightning fast page load time with

Spree & Ninefold

Hi. I’m Andrew.

How you measure things makes a big

difference.

Why should you care about performance?

1. Do it for the users.

So, users, what do they even want?

Google asked.

“We want more results.”

More results = 500ms slower.

20% drop in traffic and revenue.

Bad performance can ruin your UX.

Improved load time by 400ms. Increased traffic by 9%.

http://www.slideshare.net/stoyan/yslow-20-presentation

Visitors experiencing the best 10% of load times viewed 3 times more pages

than those getting the worst 10%.

http://assets.en.oreilly.com/1/event/29/The%20Secret%20Weapons%20of%20the%20AOL%20Optimization%20Team%20Presentation.pdf

2. Do it for the money.

For every 100ms of load time improvement:

Sales increased by 1%.

https://sites.google.com/site/glinden/Home/StanfordDataMining.2006-11-28.ppt?attredirects=0

Load time: 6 seconds -> 1.2 seconds. Page views: up 25%. Revenue: up 12%.

http://www.slideshare.net/timmorrow/shopzilla-performance-by-design-2433735

47% of ecommerce consumers expect a page load of 2 seconds or less.

40% abandonment rate on pages that take more than 3 seconds to load.

http://blog.kissmetrics.com/loading-time/

What does good even look like?

Google again.

“Mate! We’re much quicker than that!”

Good. Only problem is…

The mean is a lie.

Stats 101: the Bell Curve.

The real world.

What does that even mean?

Every 100ms matters.

How can hosting help?

Proof needs testing.

First: find an app.

Why Spree?

- Ruby on Rails. - Performance matters. - Adoption through the roof.

Got the app: what next?

1. Set up a server. 2. Design a simulation. 3. Throw simulated

users at the server. 4. Measure the latency.

Tools.

Our tool chain.Chrome -> Developer tools provide data for the test plan. !ruby-jmeter -> Provides ruby-based testing DSL. -> Generates JMeter XML. !Flood.io -> Eats JMeter XML. -> Spin up a “Grid” of users following the XML-defined script. -> Measures and reports response times.

Capture click data.

JMeter.

JMeter.

JMeter.

Don’t cry.

There’s ruby-jmeter.

Our test plan.

Our test plan.

Running the test at scale.

Flood.io

- Requires some understanding of JMeter. !- Scales as big as you want to pay for. !

- Gives high-level and very granular results.

Flood.io

Apdex.t = acceptable response time

satisfied = response time < t tolerating = t < response time < 4t

frustrated = response time > 4t

!

Apdex [t] = (satisfied + (tolerating/2))/total requests

Why Apdex?

95th/99th percentile is based on the mean. We know the mean is a lie.

Apdex brings user experience to the table.

Happiness as a constant.Apdex [0.75] 0.95

Benchmarked against Heroku.

Higher threshold than we would

have liked.

Test parameters.• Choose 5 configurations that range from $100

per month to $1,000 per month.

• Run flood.io tests using a 60 second ramp up and a 300 second test duration.

• Vary the concurrent user count to discover the maximum number of users that can be serviced while maintaining an Apdex [0.75] 0.95

The results.

$0.00$

$100.00$

$200.00$

$300.00$

$400.00$

$500.00$

$600.00$

$700.00$

$800.00$

$900.00$

$1,000.00$

$1,100.00$

$1,200.00$

0$ 25$ 50$ 75$ 100$ 125$ 150$ 175$ 200$ 225$ 250$ 275$ 300$ 325$ 350$ 375$ 400$ 425$ 450$ 475$ 500$ 525$ 550$ 575$ 600$ 625$

Mon

thly(cost(for(te

st(con

figura2

on(

Maximum(concurrent(users(whilst(maintaining(Apdex(of(at(least(0.95((

How(much(does(it(cost(to(delight(my(customers?(

Heroku$2X$ Ninefold$

Smooth scaling.

$0.00$$100.00$$200.00$$300.00$$400.00$$500.00$$600.00$$700.00$$800.00$$900.00$

$1,000.00$$1,100.00$$1,200.00$$1,300.00$$1,400.00$$1,500.00$$1,600.00$$1,700.00$$1,800.00$$1,900.00$$2,000.00$$2,100.00$$2,200.00$$2,300.00$$2,400.00$$2,500.00$

0$ 25$ 50$ 75$ 100$ 125$ 150$ 175$ 200$ 225$ 250$ 275$ 300$ 325$ 350$ 375$ 400$ 425$ 450$ 475$ 500$ 525$ 550$ 575$ 600$ 625$ 650$ 675$ 700$ 725$ 750$ 775$ 800$

Mon

thly(cost(for(te

st(con

figura2

on(

Maximum(concurrent(users(whilst(maintaining(Apdex(of(at(least(0.95((

How(much(does(it(cost(to(delight(my(customers?(

Ninefold$ Heroku$PX$

Smooth pricing.

Consistent performance.

1 in 20 clicks.

How many clicks is your average user

journey (to checkout)?

Not 1 in 20 users.

What does this mean for you?

1. Every 100ms matters.

2. Consistency matters.

1. Test, scale, test again.

2. Test your options.

Spree cached 2-2.

Performance, engagement, sales.

Where should I host?

1. Consistent performance. 2. Lowest cost of ownership.

• Competitive VM pricing. • Lower sysadmin costs. • No PaaS premium.

With Ninefold of course…

3. Smooth scaling costs. 4. Easy deployment & scaling. 5. Just enough control.

With Ninefold of course…

www.ninefold.com/spree @ninefold

!

Schedule your individual demo

andrew.s@ninefold.com @s4sharpie

Learn more.