Don’t Mourn Lost Sales This Memorial Day
8 Infrastructure Tips to Keep Your Ecommerce Site Live During Busy Shopping Weekends
While we here in Portland are predicted to see mostly grey skies this Memorial Day, the outlook for retailers is bright and sunny.
According to a new study from IBM, consumer sentiment about holiday weekend shopping is 6.5 times more positive than last year. Consumer spending is predicted to be up — thanks in part to falling gas prices — with one research group predicting increases as high as 35% over 2011. And though Memorial Day is no match for Black Friday (despite the two holidays ranking equal in average savings offered), it’s still an important kickoff to summer shopping in consumers’ minds. While brick and mortar stores bulk up inventory and staffing to support Memorial Day sales seekers, ecommerce retailers face different preparation challenges to keep systems up and running efficiently during traffic spikes. Spending too much on infrastructure will just burn through your budget. Spending too little on infrastructure will irritate customers and tank your conversions. How do you balance those concerns? Play smarter, not harder — and optimize, optimize, optimize. First off, if your ecommerce platform isn’t running on a distributed cluster, fix that. Imbalances in resource demands will make it nearly impossible to design a perfect, monolithic system to run your web store. Distributed clusters can also decrease downtime from maintenance and failures. Once you’re running a distributed ecommerce site, prepare for a big weekend with the following…
1. Send emails in batches
Have an exciting sale or new merchandise? Don’t tell everybody at once! Literally treating your marketing messages as email “blasts” will only stress your infrastructure. Picture a steady, bubbling brook instead of Niagara Falls. Consider dividing your email list into groups—frequent buyers, frequent browsers, and everybody else. Your customers’ time zones or billing addresses are also useful divisors. Use the data from your previous sales and campaigns (you *are* tracking those, right?) as indicators for how many visitors come from the number of sent emails.
2. Avoid maintenance and editing
Administrative actions can invalidate database indexes, HTML caches, and just simply strain the resources of a server. Your team might be working hard, but your database might be working even harder — at the expense of conversions and customer satisfaction. Send an early notice to your team and set calendar reminders to wrap up work before the rush happens.
3. Add application hosts
Of all system resources, an ecommerce system’s CPUs are frequently the bottleneck. If you’re running a distributed cluster with a load balancer or reverse proxy, simply add more application hosts to support the increased rendering load of the front end.
4. Use read-only database hosts
If your database system is overloaded, it means you have a poor design, inadequate resources, or are just serving *a lot* of traffic. Large performance improvements can be had by switching to a master-slave configuration. Typically, the slaves are set to read only to decrease disk access times and database lock times.
5. Audit automated actions
Regularly scheduled maintenance tasks can produce a lot of processing overhead or even lock the database. Review all crontabs and third-party scanning for the load they produce and consider decreasing the frequency or temporarily disabling the actions.
6. Increase markup caching
Designs that output dates can be problematic for caching. When displayed as time ago, localized to a user’s time zone, or formatted to a user’s preference, dates and times cannot be cached. Implementing this formatting on the client side will allow longer caching periods and slightly decrease the complexity of page rendering.
7. Avoid randomization
Randomized content makes a content-driven site look even more dynamic and fresh, but it also decreases caching periods for pages. A better design contains all of the optional content and then offloads the randomization to the client side with JavaScript.
8. Increase session expiration times
Code that fires after sign in can be really stressful to your website. Extending the session expiration time to weeks or months can greatly decrease the frequency with which this occurs.
These 8 steps are a great start to prepare your system for the busy weekend, or any traffic surge. What other technology or marketing concerns do you face headed into the summer?
Image Credit: IBM
