Usage patterns have much larger peaks. Most real-time applications face their first critical performance issues during periods of extreme load fluctuation. Every application developer’s nightmare is that some big event will happen and the load will cause all users to suffer performance problems. Coca-Cola experienced this very problem during a Super Bowl ad campaign that was so successful, it caused extreme load on its servers and took them down completely. Not only was this a Fortune 500 company with dedicated staff and user bases that make most application developers drool, but this problem happened on a desktop application!
How can application developers handle extreme spikes in user load?
Once a mobile application has been tuned to a level of high performance, released into the wild and starts to be used, development teams typically breathe a sigh of relief, However, today’s world is one of high connectivity and social media, meaning this should be the scariest time of any application’s lifecycle. A truly performant application with sudden and increasing user adoption can lead to a rather large scaling issue. Solving this problem before it becomes a problem is really the capstone to any high performing mobile application.
To use a real world example, imagine you came up with the next Uber, where you went from a concept, to an app in a single city, to a global name, all in a very short timeframe. These issues of scale can be managed much more easily today than ever before, simply using cloud technologies and services. Cloud technology like AWS provides a simple way to start small and grow with a user base, but comes at a cost. Focusing on an efficient server side solution is as important as the focus that is paid to the mobile application itself.
Even big companies struggle with this problem, not due to user growth, but simply due to additional mobile load spikes. During Black Friday weekend, Best Buy’s website crashed for 90 minutes. When asked about this, the company said:
“A concentrated spike in mobile traffic triggered issues that led us to shut down BestBuy.com in order to take proactive measures to restore full performance.”
Mobile application developers need to look not just at how their application can grow, but how it can handle concentrated numbers of users at the same time.
Building mobile applications that can provide a consistent experience with high availability assurances during spikes in user adoption is a challenge when evaluating a single server. Utilization of cloud technologies means this needs to be evaluated on a distributed system, potentially with global distribution as well. Server side applications should be able to rapidly connect and distribute data to several thousand clients quickly and easily. Finally, this scale should not strain data providers to a point of failure. While a server side application might scale accordingly, will the data provider scale just as well? This evaluation should be completed against a full, distributed stack, not just a singular instance or component. As a matter of reference, a single instance of Diffusion can scale to almost 90,000 concurrent clients without affecting the latency of each connection and provides a single source for your application data provider to update.
During testing, do not forget to utilize tools like JMeter to issue requests against server side applications. If the mobile application is utilizing a publish/ subscribe model or middleware, ensure there is access to some kind of load/performance testing tool or suite.
When integrating Diffusion with clients, Push Technology’s Professional Services team utilizes a suite of tools that have been developed specifically to test load and performance against real application data, not just benchmark or test data. Whichever solution works best for development teams, ensure that there is time to learn and/ or develop test applications.
The Diffusion Intelligent Data Platform manages, optimizes, and integrates data among devices, systems, and applications. Push Technology pioneered and is the sole provider of real-time delta-data streaming™ technology that powers mission-critical business applications worldwide. Leading brands use Push Technology to fuel revenue growth, customer engagement, and business operations. The products, Diffusion® and Diffusion Cloud™, are available on-premise, in-the-cloud, or in a hybrid configuration, to fit the specific business and infrastructure requirements of the applications operating in today’s mobile obsessed, everything connected world. Learn how Push Technology can reduce infrastructure costs, and increase speed, efficiency, and reliability, of your web, mobile, and IoT application.