Mobile vs. Legacy Backend Systems: Mobile Wins by KO
By Steve Feloney | June 5, 2015
Since 2007 mobile applications and their usage have been growing at a dizzying pace. Over 60% of internet traffic now comes from mobile devices. That means your customers are interacting with you via mobile devices. Legacy backend systems haven’t kept up with the pace of mobile growth. Many backends fall down/fail on a regular basis because of mobile activity. But interestingly many enterprises haven not taken the necessary steps to improve their systems to handle the change in user activity. Why? It’s a mixture of denial and misunderstanding.
Prior to the mobile revolution, companies spent millions of dollars load testing their applications, and in turn their backend systems, to ensure a good customer experience and availability of the system. They use these same techniques today.
Companies “know” how many users or transactions their system can take at any one time. Well . . . they think they know. If all their users were still on fast connected WANs, they know. But companies are still very slow to understand that mobile connectivity is not the same in speed, bandwidth, and quality as wired WAN connections. They don’t understand that just shifting, not adding, shifting, just 10% of their users from desktop to mobile can increase backend resources by 100%! Why is this? Because of slow and “noisy” connectivity, backend resources that would only be in use for a few milliseconds are now being in use for hundreds of milliseconds to seconds. This includes connections to web servers, databases, content management systems, etc. The result is that the backend systems cannot handle the same load for which they were designed.
In my experience, enterprises are slow to realize this. They believe a transaction is a transaction, especially if they hit the same website from mobile as well as desktop (which is a very very bad idea, by the way, but that issue is for a different day). Because of the differences in mobile connections, the backend systems’ cpus, memory, cache, queues all get exhausted significantly quicker. Remember I said that only a shift of 10% of your users can cause such a disruption. What is a shift of 60% doing?
Let’s take Southwest Airlines recent website woes as an example. They had increased load because of their airfare flash sale and their systems couldn’t handle it.
Are we to believe that Southwest didn’t load test their systems before the sale? Of course they tested it. Chances are, though, that they didn’t properly performance test based on mobile devices. Both their desktop and mobile applications use the same website and web services and I am willing to bet that the site meltdown is because of the excess mobile users and not because of the desktop users.
What can you do to help discover the deficiencies in your data centers? Change the way you load test. Don’t just load test from desktops. Don’t just test for “x” number of transactions/sec. It is time to test the way your users arrive. Load test from a mobile perspective. Does that mean getting thousands of mobile devices and running them simultaneously? You could, but I wouldn’t recommend it. It means you need to record the activity from mobile devices and then run the load through simulators that will effectively change the network to LTE, 4G, 3G, with strong and weak connections. Doing this will help properly stress your backend systems for the actual expected load. Then you can take steps at improving your data center so that you can improve your customers’ experience.
The first step is acknowledging that you have a problem. Once you do that, the rest will eventually fall into place. We’d be happy to have a conversation about it.