Andi Gutmans is CEO and co-founder of Zend Technologies.
When we think of the mobile user experience, we tend to visualize the front end of a mobile application, whether it be finding ourselves on a map or playing with angry flying birds.
Meanwhile, the back-end servers and platforms that run our apps just don’t as easily jump to mind. What I have found over interactions with thousands of developers is that no one truly appreciates this hardworking back-end infrastructure and what it takes to run it effectively, until the moment it doesn’t work the way you expected.
Unfortunately, the most amazing front-end UI work will fall over if something in the supporting infrastructure breaks or simply stops working. And when a mobile app doesn’t work, users will avoid it.
Only 16 percent of users will try a failing app more than twice, according to one recent survey. Yet 62 percent of apps crashed, froze, or displayed an error in the six months between September 2012-March 2013. That’s a sobering statistic.
App failure comes with a steep price tag as well. The Royal Bank of Scotland had to pay its mobile customers £175 million in compensation and costs after the app failed for two million customers.
Amazon had to issue a public apology last Christmas Eve, when an Amazon Web Services outage caused Netflix to go down just in time for the holiday.
For businesses that rely heavily on delivering data to customers on an ongoing basis, such as e-commerce and telecommunications companies, downtime can cost up to $11,000 per minute, according to one recent study.
Time to harness the backend
Mobile apps pose a particular risk for breakage, because they are constantly pinging servers for information. This, along with more location and time dependent usage patterns, can create huge volumes of unpredictable traffic and sudden spikes in load. As a result, they strain your infrastructure more than more traditional web or desktop apps.
How can you ensure that your backend scales and performs continually, so that your app can continue to serve users regardless of load or demand? Here are some things for app owners to think about upfront to ensure their infrastructure is up to the task.
This is the ability to expand capacity as needed in an instantaneous and ideally an automated way. Theoretically, the technology exists to make your app spin up more instances on a private or the public cloud when needed. Practically, this isn’t simple to accomplish.
In order to achieve real elasticity, you need infrastructure that can simultaneously:
- Spin up an extra instance of your application
- Deploy all of the basic stack, code, and versioning you need for that instance
- Deploy the application onto the new stack and instance with all needed components automatically and without human intervention
In order to do that, you need an application platform that supports it and ideally that works in both private and public cloud so you have choice and consistency in deployment.
A common application platform will enable you to run your apps on multiple infrastructures, whether in-house, on the cloud or both, and provide the automation you need for true turnkey elasticity.
Mobile apps today are released quickly and iterated frequently. In order to deliver apps effectively, you must embrace DevOps practices. Automate and streamline the dev, test, staging, and production environments, easily troubleshoot if something isn’t working and enable rapid turnaround of fixes or product enhancements without impacting quality.
This is a situation known as agile delivery, which I’ve written about in the past. It’s crucial to have an uncomplicated way to manage apps on back and front together within your infrastructure and easily roll app versions back to previous iterations as needed. Otherwise, you risk chaos, both on the development and ops side.
Analytics & insights
Many mobile apps today run on API-based RESTful/JSON Web services architectures. Because API calls go out to — and data comes in from — multiple back-end API calls, it’s hard to get visibility to whether all the different pieces are working as they should.
Also, if there’s a problem, it’s hard to track down the source. Which of your API calls isn’t delivering what it is supposed to? Where in the process of calling on multiple systems did your flow break? Which server or process is slowing your app’s response times down?
You need a way to gain insight and intelligence into what’s happening to deliver the full functionality of your app at any given time. Analytics can also help you see problems before users experience them. With each app connecting more and more devices, platforms, and APIs, it’s best to get acquainted with analytics sooner rather than later.
Appreciate the backend
Needless to say, the mobile user experience is dependent as much if not more on the back-end infrastructure you choose as the front end mobile user interface. My recommendation is to make it a priority to streamline the agile delivery process and monitor all of your application’s moving parts so you can support your desired flawless front-end user experience.
Andi Gutmans is CEO and co-founder of Zend Technologies. Founded in 1999, Zend was instrumental in establishing PHP. Today, Zend helps organizations create and implement back-end services for mobile and web applications. Zend Server and Zend Studio are deployed at more than 40,000 companies worldwide.