As more enterprises develop and manage mobile applications, they’ll choose the public cloud as their infrastructure backbone.
Compared to on-premises data centers, hosting mobile apps in the cloud — and especially the front end of consumer-facing applications — can offer organizations a number of benefits, said Ray Kelly, CTO at Healthcare IT Leaders, a healthcare-focused IT consulting and staffing company based in Atlanta.
“I almost see the [mobile] workload split into two,” Kelly said. “There is always a back-end element that might reach into the on-premises world, but most certainly, anything that [developers] are doing that they would consider consumer-facing, they will stick in the cloud — and we’ve seen that trend probably for the last five or six years.”
There are several reasons organizations choose to host mobile apps in the cloud. Many of them, such as on-demand scalability, are among the general cloud computing benefits that IT teams have touted for years.
“Customers can just scale [their mobile front ends] as quickly as what Amazon, for instance, can offer today,” Kelly said. This kind of scalability is possible on premises but requires organizations to plan for peak capacities ahead of time and then buy sufficient hardware to support those peaks.
There are other ways that the public cloud specifically benefits mobile workloads, such as its ability to accommodate mobile apps’ unique data access demands, said Michael Facemire, principal analyst at Forrester Research.
Organizations often use a messaging protocol, such as Simple Object Access Protocol (SOAP), to build back-end services that support traditional webpages or apps. These web services were constructed to anticipate that if end users ask for a certain set of data, their next action likely will be to request another specific set of data, Facemire said. The service then sends along a large SOAP packet that’s “highly decorated” with lots of extensible markup language (XML) tags to display requested data on the app’s front end.
That model works well with a fixed network connection that ensures a user maintains a single session with an application. But that’s not always the case with mobile, where connectivity fluctuates and users often jump from a 4G connection to a 3G connection as they move with their devices. As a result, developers want to send much smaller bursts of data without all that XML decoration, Facemire said.
“With mobile, [developers] define our individual views and define the data access that we need for those views,” he said.
Modern cloud architectures lend themselves to this model. Cloud platforms tend to use RESTful APIs and more lightweight JSON and XML formats, which accommodate smaller bursts of data compared to the SOAP packets used for traditional web apps, Facemire said.
Mobile apps also have different security requirements than traditional web apps, and these too align with cloud computing.
“[With web apps], security was negotiated up front at the beginning of a session, and then, while that session was alive, we could assume that that security was always valid,” Facemire said.
With mobile, it’s more difficult to rely on the session-based security model, as users drop or hop between network connections. Instead, a token-based authentication model, such as OAuth, is a better fit, and like the more lightweight data exchange formats, these security models tend to be more prevalent in cloud-based architectures. They aren’t a necessity in cloud, Facemire stressed, but they often go hand in hand.
“The modern nature of [cloud] architecture seems to fit well with the modern nature of mobile devices,” he said.
Access to mobile services
In addition to its architectural benefits, the cloud offers another perk to those who build mobile apps: on-demand access to development tools. Providers, including Amazon Web Services (AWS) and Google, offer a number of software development kits and other tools to support mobile apps in the cloud.
“There are so many other services to expedite the pace of development of mobile experiences,” Facemire said. “For instance, if I want to store data somewhere … I can store it in Dropbox, I can store it in Box, I can store it in [Amazon Simple Storage Service], I can store it an Azure — and it’s all one API call away.”
Vendasta, which sells sales and marketing software for media companies, has seen an uptick in the number of customers who access its applications from mobile devices, said Dale Hopkins, the company’s CTO. Currently a Google Cloud Platform user, Vendasta was originally interested in Google because of its App Engine offering. Now, the company uses a variety of Google development services, such as the Firebase platform and Cloud Endpoints for API management, to meet their growing mobile needs.
“[Google has] a lot of tools that make our lives easier in terms of managing for mobile,” he said.
Vendasta has also made a push around progressive web applications and Accelerated Mobile Pages, frameworks that enable webpages to perform more like mobile applications through local caches, service worker scripts and other means, Hopkins said. Google provides a number of resources to implement these technologies, although Hopkins noted that not all of them are specific to its cloud platform.
Despite the benefits, some mobile workloads — as is the case with many workload types — will remain on premises, most often because of strict security and compliance requirements. In addition, other types of workloads, such as legacy ERP and other back-office applications, might not move toward either mobile or cloud deployments at all.
“Companies are still struggling a little bit internally about using mobile apps to bring efficiencies into back-office applications,” said Healthcare IT Leader’s Kelly.
In general, though, mobile apps in the cloud will proliferate, particularly as serverless computing takes hold and further simplifies the development experience, Facemire said.
“The pain of setting up infrastructure for a developer when building their initial mobile experiences is so much less when using the cloud, especially now when [they] have Microsoft Azure Functions or AWS Lambda,” he said. “I simply write the business function I need, put it behind an API endpoint and I’m done.”