Brian Doll, manager of software development at Sheet Music Plus shares his tips on preparing your site optimal application performance, capacity and scalability during the peak season.
http://bit.ly/vM336
2. Agenda Why application performance is important? What’s at stake? About SheetMusicPlus.com Tips for optimizing your online store Special “Get Ready for the Holidays” Promotion
3. Why Application Performance is Important to Your Business 30% of online shoppers abandon slow or unreliable sites In 2008 holiday season, 36% of users encountered web performance problems that led to abandonment Specific problems encountered Application slow while shopping Application froze/crashed Unable to make a purchase at first attempt Website down/unavailable Apparent successful transaction failed to complete
4. What’s at Stake? $50 Billion a year is lost in cart abandonment 48% will go to purchase from another online source 79% are less likely to visit the site again 44% of affected customers tell others about their poor experience 46% form a negative impression of the company
6. SMP: Quick Stats 12 year old online business Shipping to 170+ countries Over 600k SKUs, 1.5M songs All hosts are virtualized with VMWare Citrix Netscaler 14 Rails application servers (Apache + Passenger) 5 memcached servers 3 Solr servers (search, faceted navigation) 3 MySQL servers
8. Analyze your architecture What systems are involved in… displaying a product detail page your checkout process searching your catalog registering as a new user How does your application respond to failure of any of your system connections? search servers offline payment gateway unresponsive email server overloaded DNS lookup failures
9. Analyze your business How do new and returning customers use your application? What is your ratio of new and returning customers? How might holiday traffic impact that ratio? How might an increase in sales negatively impact the customer experience? How fresh is your inventory online? How might order status information be affected? What is the average response time for your call center?
10. Metrics for everything New Relic RPM Application performance, systems metrics, custom metrics with dashboards New Relic RPM for Java (Solr search servers) Memory profiling, garbage collection, throughput, performance MySQL Enterprise Monitor MySQL performance, slow queries, explain, replication delay, configuration Cacti (based on RRDtool) Host servers, VMs, Memcached stats, network, anything you can think of Google Analytics Customer behavior, on-site search, conversion, other business metrics
11. Now you can optimize Identify a specific pain point Ensure you have verifiable metrics Deploy an initial optimization effort Measure the effects. Are you on the right path? Deploy the “final” optimization Document your optimization timeline Profit! Demonstrate the business value of your optimizations Repeat
12. Simple Optimizations Implement the circuit breaker pattern Don’t let system failures bring you down! (from Release It! By Michael Nygard) http://github.com/wsargent/circuit_breaker Cache page fragments for set periods of time For dynamic content that can be “stale” for some definable period of time http://github.com/rlivsey/timed_fragment_cache/ Content Delivery Network Essential for international customers; requires coordination with deploys Memcached Set up memcached and you’ll find more ways to use it every day New Relic RPM I would not run a Rails app in production without it
13. Embrace Change No code freeze! Take advantage of this increase in customer demand Implement new business strategies to adapt to changing demographics Focus on your ability to release change quickly Strive to release to production as frequently as your business can handle Ensure your releases are automated and repeatable Understand how your system behaves during a release Releases should be low ceremony, as a testament to how rigorous your software testing andbusiness approval processes are Add capacity on-demand How fast can you get a new app instance online and handling requests? Engine Yard Flex is an excellent model for how we should be thinking about our infrastructure, software dependencies and release processes
14. Get Ready for the Holidays Promotion New customers: any account opened before October 15 will get 25% off Current customers: Any upgrade – additional hosts or higher level of RPM service before October 15 gets 25% off Enter Promo Code: NR-HOHOHO
Notas del editor
There is a lot of information online about every imaginable scaling technique.Rails Lab, sponsored by New Relic, has videos on some of the most relevant issues facing Rails applications in generalBut what about you? What about your app? Which of these are important to you for this holiday season?
Others include monitoring site performance across the globe (selecting vendors, not happy with current alternatives)Once you understand how your application is behaving, and you can measure every aspect of your system and your business, you area ready to begin.
Talk about our recent performance fix, CEO now asks how our APDEX score is doing… business thinks about sales increases since specific optimizations went live, etc.