Application Performance Engineering

Subscribe to Application Performance Engineering: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Application Performance Engineering: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

A.P.E. Authors: Sarah Watkins, Yeshim Deniz, Stackify Blog, Larry Dragich, Lori MacVittie

Related Topics: SOA & WOA Magazine, Java Developer Magazine, AJAX and ContinuousAPM, Application Performance Engineering, Application Performance Management (APM)


Holiday Readiness for Your Online Channel: Eight Things to Consider

It is critical to plan appropriately and ensure that the right parties are involved

As e-commerce continues to widen its reach beyond the traditional browser onto connected devices - smartphones, tablets, laptops, etc. - ensuring that you are ready to handle peak season traffic has become a very important consideration for retailers. It is critical to plan appropriately and ensure that the right parties are involved - not just for your tech team, but for the business as well. Here are some topics to spark your thinking.

Communication Planning
No matter how ready your site is to handle peak holiday traffic, having a communication plan nailed down is critical. Consider:

  • Who needs to be available and when?
  • What is the cadence for touch-points throughout the holiday?
  • If something goes wrong, what is your escalation policy?

And this isn't just your technical team, either. You need to involve all stakeholders across the business and set proper expectations.

Security Patches and Fixes
It sounds simple, but make sure that you plan ahead and give yourself plenty of time to ensure your e-commerce environment is up to date across all tiers - OS, Firewall, Load Balancers, Application Servers, Web Servers, Databases and Search Servers all need to have the most recent fix-packs and security updates. It takes time to get all of these applied and tested within the various environments, so don't leave it to the last minute. Plan for it.

Database Pruning and Optimization
A healthy database is perhaps the most critical component of your e-commerce site. If the database is not performing, all the cache optimization in the world isn't going to get you through Black Friday. Optimization and data pruning should be a well-planned and ongoing activity, with additional focus added as the holiday season approaches.

  • Do you know how your database is performing?
  • Is your database as small as possible?
  • Do you have the right indexes on your tables?

If you don't know how your database performs under normal load, how can you know if it will perform on Black Friday or Cyber Monday? Make sure you are monitoring the data tier and looking at the right things.

The bigger your database is, the harder it has to work to return results. Have a data pruning strategy in place to remove or archive out-of-date data to ensure your database doesn't have to work harder than it needs.

Databases in general, and e-commerce databases and schemas in particular, are very complex. They require a specialized skill-set, so make sure you've got an expert, not just in your database platform of choice, but specific to your e-commerce platform as well. This is so important that I asked one of our experts for help with this section. She has a fantastic blog, which I encourage you to check out here: DB2Commerce.

Code / Change Freeze
Agile development methodologies with continuous integration and deployment capabilities are great, but as the holidays approach every change to the environment, no matter how well tested, opens up site performance to risk. Consider the balance carefully and think about implementing a code / change freeze in the weeks leading up to Black Friday.

You will likely already be planning a lot of change activity from a content perspective through the holiday weekend, from promotion changes to marketing landing pages to email blasts and social media campaigns. Don't complicate matters with environmental changes or code deployments unless they are absolutely necessary. If they are, plan extra time for testing.

Performance Testing and Tuning
Performance testing and tuning can be difficult, time-consuming, and costly. Build it into your day-to-day operations. Don't just wait for October to arrive and decide you need to run a load test.

  • Do you have a performance test environment?
  • Does it match your production environment?
  • Do you baseline test every release?
  • Are you generating your traffic externally?
  • Are your test scripts / scenarios based on actual analytics data?

If the answers to these questions are "no," you've got work to do. Testing in an environment that doesn't match your production environment, at least in a scaled way that you can extrapolate accurately from, is a waste of time.

Make sure you involve your analytics team in the design of your test scenarios so your test is as close to your actual production traffic patterns as possible. Give special consideration to the areas of your site that have the heaviest performance impact. User registrations, add to cart, checkout and search are good starting points. If you don't include these activities in your test with accurate scenarios, you won't know how your site will perform under load.

End-to-End Monitoring
Visibility into all components of your e-commerce site from all perspectives should be considered essential. If you can't see how each tier of the environment is performing, your first alert to a site problem may be your customers calling your call center to complain.

  • Are all endpoints monitored for availability, including third-party calls?
  • Do you have visibility in real-time into the health of your JVM?
  • How fast are searches returning results?
  • What is the slowest running query to your database?
  • What does your site load time look like from various geographies?
  • How is your site performing for your real end users?

These are just a few questions you should be asking your operations team. It is no longer sufficient to just have basic environment monitoring - OS CPU utilization, memory and I/O - and alerting. You need to know where all of the points of communication are between each component tier in the environment, how they are performing, and if there is a problem.

End user monitoring will open your eyes to what your users are actually experiencing. The site may look great from your work computer, where everyone in the building has a fast network connection, close proximity to where the site is hosted, and the same browser version. But what about users on older - or newer - browsers than what your IT department has imaged onto your laptop? Or what about users with different connected devices with different browsers and variable quality wireless network connections? You need to know how all of these perform. End user monitoring will give you this insight.

Caching Strategy
Review your overall caching strategy, both at the Web/App tier within your environment, as well as your CDN. You are using a CDN, right?

  • What is your app tier cache hit:miss ratio?
  • Are there unnecessary hits to origin from your CDN?
  • Is your site properly setting headers to take full advantage of client-side caching?

Every request that your app servers have to make to the database is costly in terms of performance. Make sure you take advantage of your platform's ability to cache these requests. As part of your performance testing for each release, include some profiling to make sure you haven't inadvertently added or changed something that causes un-cached requests back to the data tier.

Evaluate statistics and reports from your CDN and your web servers. Are there more requests hitting origin that you can offload and cache at the edge, closer to your customers? Nothing is closer to your end user than their browser, so make sure you're taking advantage of its cache as well.

Client Side Tuning / Third Party Calls
Evaluate your overall page weight and load times. You would be amazed how much you can improve your user experience with some simple optimizations.

  • Are your images optimized?
  • How many JavaScript files does the client need to load?
  • Are they minified?
  • Are assets loading in the proper order to speed page rendering?

Pay particular attention to third-party calls that live outside your datacenter and your operational control. Monitor them so you know what their overall performance impact is to the site under normal load so you will know when they are having problems that could bring your user's experience to a crawl. Have a way to turn them off if they are down or experiencing problems. Do you really need that Facebook "like" button? Marketing may say you really do, but does it need to show the number of "likes" already? No? Great, turn it off.

I'm excited for the 2013 peak holiday season for my clients, and I wish great success to you and yours. Capture what goes well and what isn't so great. Early December is a great time to review how Black Friday and Cyber Monday went this year and kick off planning for next year.

Read the original blog entry…

More Stories By Jon Anhold

Jon Anhold is a strategic-thinking Solution Architect focused on Infrastructure, Cloud & Managed Services, at Rosetta, a consulting–centered interactive agency helping to transform commerce for the connected world. In the five years he has been at Rosetta he has been heavily involved in many large-scale eCommerce implementation projects and ongoing application support engagements, including Coach, Luxottica Retail, h.h. gregg and others. Jon leads Rosetta’s Infrastructure Engineering Craft, and brings 15+ years of Enterprise IT and Internet infrastructure experience to his clients.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.