performance hosting on ninefold for spree stores and apps
Post on 21-Oct-2014
266 views
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
[email protected] @s4sharpie
Learn more.