performance hosting with ninefold for spree apps and stores
TRANSCRIPT
- 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.