This Nov. 29 will usher in a Black Friday the likes of which we’ve probably never seen before. The Jewish holiday of Hanukkah begins on Thanksgiving Day this year (a day people have now taken to calling Thanksgivukkah), converging with peak Christmas shopping on that fateful Friday in a perfect storm of holiday e-commerce.
Considering this potentially unprecedented online shopper load, now is a good time to reexamine your application performance management (APM) strategy.
“People need to get ready for the holiday season,” said Andreas Grabner, technology strategist at Compuware APM. “They need to invest early on in testing. More and more people are shopping online, and especially on tablets and smartphones.”
The mobile shopping boom
Compuware predicted in its DevOps Survival Guide for the 2013 shopping season that more than 50% of online customers will shop using mobile devices, so it’s essential for developers to extend testing to smartphones and tablets to make sure their apps and content are optimized.
For businesses relying heavily on holiday sales, like personalized gift retailer Things Remembered, load testing desktop and mobile website functionality becomes the most important step in preparation.
“The growth of tablets has shaken the computing industry to its core,” said Things Remembered senior vice president and CIO Mark Lilien. On Oct. 17, he talked in a Compuware-sponsored webinar about his company’s approach to load testing for this holiday season.
“We actually have a code freeze before we start load testing,” Lilien said. “We allow developers to change content, but we stop changing features and fixing defects.”
Things Remembered, he explained, is a business extremely dependent on card-giving holidays. Essentially everything on thingsremembered.com is purchased as a gift for someone else, often with personalized embroidery or engravings. So in preparation for Black Friday and this year’s holiday season, the company will use Compuware to run roughly three-dozen scripts, or different procedures a customer might use as they browse the site.
“This season our forecast expects a greater amount of traffic, pages and entry points,” Lilien said. “So we take the forecast and cross it with the scripts. If an item is expected to comprise 9% of sales, the script will incorporate the item 9% of the time. We test promotions, too. If a promotion will be used in 10% of transactions, the scripts run in 10% of the time.”
#!Game-planning the rush
A holiday season often brings business demands of new features and promotions to an e-commerce site, but Compuware’s Grabner stressed the ability to quickly turn them on and off, in case a feature is bringing down app performance during a rush.
“If a feature isn’t producing more converted users, turn it off,” Grabner said. “You’ve already brought them into this process, you don’t want to lose them along the way. The last thing we want to see is abandoned shopping carts.”
He explained how APM solutions allow developers to analyze code and developmental architectural patterns. On the production side, they can monitor how every end user moves through the website. This is where performance-management solutions come into play, to figure out what’s going on in the code, he said. Developers receive immediate info for, say, a poorly implemented function, to either fix it right away or turn it off. You can’t solve every problem up front, so the site architecture needs to accommodate for changes, he said.
“Make sure you build the apps to scale horizontally, and select an architecture which allows you to add additional hardware resources on-demand,” said Grabner. “Make sure the app supports artificial scaling.”
Good development is good for business
Things Remembered’s Lilien sees this Black Friday as an opportunity. If this year’s heightened holiday shopping season is a success, it bodes well for online shopping in the future.
The National Retail Federation expects U.S. sales to rise 3.9% to US$602.1 billion this November and December, up from the 3.5% increase seen in 2012 and the 3.3% average growth over the past decade. The NRF is projecting an even greater increase in online holiday shopping, expected to increase 13-15% to as much as $82 billion compared to an 11.1% increase during the 2012 holiday season.
“If more suppliers are prepared for peak volume, it’s better for everybody,” Lilien said. “If online shoppers see headlines the next day or apologies online about sites that went down during the Black Friday rush, the Internet as a commerce channel loses respect, and that’s a problem for everybody.
“A few years ago, the Internet had an expectation of broken links, and it affected everyone in e-commerce and [mobile commerce]. It’s like if you own a really great store, but you’re in a crime-ridden neighborhood. People might like your store, but they might get mugged on the way home. If you’re in a better neighborhood, your store will do better.”
Testing and APM strategies are about as sure a bet as online shopping sites have going up against the rush on Black Friday, but as prepared as Things Remembered is, Lilien can’t help but be a tad bit worried.
“I’m excited for Black Friday because every business wants to maximize revenue, but it’s hard not to be nervous too,” he said. “I deal with my anxiety by testing thingsremembered.com in every way possible. If I wasn’t at least a little nervous about this year, I wouldn’t be human.”
#!Top 8 application performance landmines
Grabner explained that when Compuware takes on an e-commerce client and begins load testing, it almost always run into the same core problems, making them “land mines” that slow down site performance or crash apps.
1. Bloated Web front ends: Developers should use caching, compression and content distribution networks to put every added image, function and feature through the wringer, looking for inefficiencies that could lead to performance degradation.
2. Slow third-party content: Third-party services are a necessary evil, but keep plans in place to manage third parties in case of an outage. You can put settings in place to remove third-party tags, images and content from your site entirely during peak traffic, or move content and rich media to a secondary cloud provider.
3. Wrong framework usage: Frameworks are often not optimized for your particular app usage. Developers tend to include enterprise frameworks without proper validation, so remember to configure the frameworks with the right cache strategy and API functions. Watch out for updates to functionality, performance and stability to make sure the changes are right for your implemented framework.
4. Network infrastructure problems: Identifying network problems is tricky, but one way is to check the network and server time outliers compared to the values of the baseline traffic. A proactive application performance-management strategy is responding right away to alerts triggered by the APM tool when key measures go outside of the usual range.
5. Cloud gotchas: Hardware that isn’t designed to scale in a cloud environment won’t be in a position to benefit from the cloud. The cloud isn’t an endless resource pool of CPU, Memory or Disk On-Demand, but it does provide many other services. Though without understanding its key components such as storage and messaging, it’ll be tough to take advantage of them.
6. Too many database calls: This is the most frequently recurring land mine, as a single Web request queries thousands of database statements eating all the memory. This can come in the form of access patterns across modern and legacy servers, or individual statements taking too long to execute. Not to mention misconfigured pools or app code that hold onto connections too long. In these cases, don’t focus only on tweaking indices to optimize statements. It’s more important to analyze whether these queries can be optimized from within the app.
7. Big Data not optimized: You can’t process more data by simply adding additional resources to speed up data processing. Inefficient queries will impact performance, so optimize Big Data technologies such as Cassandra, Hadoop or MongoDB to eliminate calls executing additional queries. It’ll reduce round trips and improve overall transaction performance.
8. Undetected memory leaks: Memory issues with class loading, large classes or native memory are often the result of single objects consuming a lot of memory, with information kept in memory for no apparent reason. To plug the leaks, suspend transactions that have long-running garbage collection processing, and optimize memory by tweaking garbage collection settings.