As e-commerce continues to expand its reach beyond the traditional browser onto connected devices—smartphones, tablets, laptops, etc.—ensuring your business is ready to handle peak season traffic is an inevitable consideration.
It is critical to plan appropriately beginning in the July/August timeframe and ensure the right parties are involved—not just your technical team, but other key business stakeholders and partners within your overall digital ecosystem. This will help you maximize holiday results, reduce risk, and lower everyone’s stress levels.
We compiled some platform-agnostic topics applicable to anyone with a peak season structure and bucketed them into core pillar areas to help get you started on your holiday checklist and plan. If you would like a customized plan, reach out to us.
No matter how ready you think your website is to handle peak holiday traffic, aligning on an agreed-upon internal and external communication plan is critical.
Several things to consider:
- External – What will be the email cadence for customers? Will they be staggered? Will you plan for promotions throughout peak season to help massage demand? Is the technical team aware of this schedule and prepared to respond for increased load and click-through rates?
- Internal – What is the cadence for touch-points throughout the holiday with key stakeholders? Daily checkpoint bridges and extended calls for true peak hours? Ongoing update emails every few hours? What will be the format of these communications? Will it include a readout summary of volumes of orders and customers, distilled application monitoring metrics, review and signoff of marketing content?
- Work with business teams to understand and plot volume projections for revenue, traffic, times, etc. based on analytics team advisement.
- Hold a ‘kick-off’ call/s with all parties involved to review the high-level plan, roles and responsibilities, foster teamwork and garner excitement for success!
- Review/develop social media campaigns
- Content lockdown/approval – ties in with code change freeze topic below
- No change policy – Will you institute a moratorium for any system updates after a certain date?
- Smooth out the demand with targeted timed specials
- Evergreen product planning and allocation
Support readiness & structure
- If something goes wrong, what is your escalation policy? Be sure to include it in a published rotation schedule with a backup and management escalation phone tree.
- Who needs to be available, and when? Set expectations that ‘on call’ means one should be able to login within five minutes of notice and start troubleshooting immediately.
- Do you have a list of key contact information for all third-party integration points for your environment so you can contact them at a moment’s notice? This includes fulfillment providers, CDN, networking and infrastructure, hosting providers (as applicable), security team leadership, payment processors, media asset delivery providers, call centers, monitoring teams, application support teams, application vendor and product teams, marketing and merchandising teams, etc.
- Is your support team well-versed in common scenarios or potential issues with critical pieces of your customer’s journey ie. checkout and/or payment processing? It may be worthwhile to invest in ‘tabletop exercises’ or drills for these issues, refresher sessions for top/common pervasive production issues that have defined workarounds and responses, critical system flows, runbook review, and role plays for a mock system down situation.
- Conduct disaster recover/failover in advance
- System backup – have files ready if needed for a restore i.e. EAR file or similar.
Security patches and fixes
It sounds simple, but make sure you allow yourself plenty of time to ensure your e-commerce environment is up to date across all tiers, including OS, firewalls, load balancers, databases, and application, web, and search servers—all of which need to have the most recent fix-packs and security updates. This requires coordination across multiple teams to get all of these applied and tested within the various environments, so don’t leave it to the last minute.
Questions to consider:
- Has a recent security scan been conducted, results analyzed, and those deemed a priority acted on?
- What about external pen testing for potential threats and vulnerabilities? WAF and Firewall policy audit?
Database pruning and optimization
A healthy database is perhaps the most critical component of your e-commerce site. If the database isn’t 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?
- Have you conducted purges for unnecessary data?
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 monitor the data tier and look at the right things. The bigger your database is, the harder it must work to return results. Have a data-pruning strategy in place to remove or archive outdated data to ensure your database doesn’t have to work harder than needed. Databases in general—and e-commerce databases and schemas in particular—are very complex. They require a specialized skill-set, so make sure you have an expert specific to your e-commerce platform, not just your database platform.
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 risk to site performance. Carefully evaluate the balance and consider implementing a code/change leading up to Black Friday.
You are likely planning a lot of content change activity through the holiday weekend, including promotion changes, marketing landing pages, email blasts, and social media campaigns. Don’t complicate matters with environmental changes or code deployments unless they are absolutely necessary. And if they are, plan extra time for testing.
Performance testing & tuning
Performance testing and tuning can be difficult, time consuming and costly. Don’t wait until October to decide you need to run a load test—instead, build it into your day-to-day operations and consider both “back-end” and “front-end” implications. This may require solution architects and/or user experience/interface architects.
Consider these questions:
- Do you have a performance test environment?
- Does it match your production environment?
- Do you baseline performance test every release?
- Are you generating your traffic externally?
- Are your test scripts/scenarios based on actual analytics data?
- How are your page load times? Is there opportunity through minification or other to optimize this?
- Are there jobs and system updates that are resource-intensive? Consider placing certain jobs on hold or scheduling them to run at more strategic times to alleviate taxing the system.
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.
Involve your analytics team in the design of your test scenarios so your test is as similar as possible to your actual production traffic patterns. Give special consideration to the areas of your site with the heaviest performance impact. User registrations, add to cart, checkout, and search are good starting points. You won’t know how your website will perform under load if you don’t include these activities in your test with accurate scenarios.
Visibility into all components of your e-commerce website from various perspectives is essential. If you can’t see how each tier of the environment is performing, your first alert to a website problem may be your customers calling to complain.
These are good questions to ask your operations team:
- Are all endpoints monitored for availability, including third-party calls?
- Do you have real-time visibility into the health of your JVM?
- How fast are searches returning results?
- Are system jobs colliding or overrunning expected timeframes, causing a domino-effect?
- What is the slowest running query to your database?
- What does your website load time look like from various geographies?
- How is your website performing for your end-users?
- Are all cert expiration dates in the future?
It is no longer sufficient to have basic environment monitoring (OS, CPU, utilization, memory, and I/O) and alerting. You should know each communication point between every 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 actually experience. The site may look great from your computer at work where everyone 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 users with different connected devices on different browsers and variable quality wireless network connections? You need to know how your website will perform under different circumstances.
Review your overall caching strategy, both at the web/app tier within your environment, as well as your content delivery network (CDN). You are using a CDN, right?
- What is your app tier cache hit 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 your app servers make to the database is costly in terms of performance. Take advantage of your platform’s ability to cache these requests. As part of your performance testing for each release, include some profiling to ensure you haven’t inadvertently added or changed something to cause 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. It’s amazing how much you can improve your user experience with some simple optimizations.
- Are your images optimized?
- Are they minified?
- Are assets loading in the proper order to speed page rendering?
- Have you completed a thorough review of all API calls?
Pay attention to third-party calls that live outside your datacenter and your operational control. Monitor them so you know what their overall performance impact usually is to the website compared to 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 a Facebook “like” button? Marketing may say you do, but does it also need to show the number of “likes”? No? Great, turn it off.
Capture what goes well and what didn’t work as well so you can improve for next year. Conduct a post-holiday hindsight and debrief before December ends while the experience is still fresh in everyone’s minds.
Need more assistance preparing for the holidays? We can help!