1. Lightning fast page load time with Spree & Ninefold
2. Hi. Im Andrew.
3. How you measure things makes a big difference.
4. Why should you care about performance?
5. 1. Do it for the users.
6. So, users, what do they even want?
7. Google asked.
8. We want more results.
9. More results = 500ms slower. 20% drop in traffic and
revenue.
10. Bad performance can ruin your UX.
11. Improved load time by 400ms. Increased traffic by 9%.
http://www.slideshare.net/stoyan/yslow-20-presentation
12. 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
13. 2. Do it for the money.
14. 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
15. Load time: 6 seconds -> 1.2 seconds. Page views: up 25%.
Revenue: up 12%.
http://www.slideshare.net/timmorrow/shopzilla-performance-by-design-2433735
16. 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/
17. What does good even look like?
18. Google again.
19. Mate! Were much quicker than that!
20. Good. Only problem is
21. The mean is a lie.
22. Stats 101: the Bell Curve.
23. The real world.
24. What does that even mean?
25. Every 100ms matters. How can hosting help?
26. Proof needs testing.
27. First: find an app.
28. Why Spree? - Ruby on Rails. - Performance matters. -
Adoption through the roof.
29. Got the app: what next?
30. 1. Set up a server. 2. Design a simulation. 3. Throw
simulated users at the server. 4. Measure the latency.
31. Tools.
32. 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.
33. Capture click data.
34. JMeter.
35. JMeter.
36. JMeter.
37. Dont cry. Theres ruby-jmeter.
38. Our test plan.
39. Our test plan.
40. Running the test at scale.
41. Flood.io - Requires some understanding of JMeter. - Scales
as big as you want to pay for. - Gives high-level and very granular
results.
42. Flood.io
43. 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
44. Why Apdex? 95th/99th percentile is based on the mean. We
know the mean is a lie. Apdex brings user experience to the
table.
45. Happiness as a constant. Apdex [0.75] 0.95 Benchmarked
against Heroku. Higher threshold than we would have liked.
46. 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
47. The results.
48. Smooth scaling.
49. Smooth pricing.
50. Consistent performance.
51. 1 in 20 clicks.
52. How many clicks is your average user journey (to
checkout)?
53. Not 1 in 20 users.
54. What does this mean for you?
55. 1. Every 100ms matters. 2. Consistency matters.
56. 1. Test, scale, test again. 2. Test your options.
57. Spree cached 2-2.
58. Performance, engagement, sales.
59. Where should I host?
60. 1. Consistent performance. Lowest cost of ownership.
Competitive VM pricing. Lower sysadmin costs. No PaaS premium. With
Ninefold of course
61. 3. Smooth scaling costs. Easy deployment & scaling.
Just enough control. With Ninefold of course
62. www.ninefold.com/spree @ninefold Schedule your individual
demo [email protected] @s4sharpie Learn more.