Accelerate Mobile Application Delivery With Cloud Services

Organizations can build powerful capabilities by developing competencies in each phase of the application activity cycle. Strengthening capabilities and maturity will enable application organizations to advance. Cloud mobile back-end services promise to accelerate the delivery of sophisticated mobile applications and reduce upfront investment; however, these services come with their own risks, which must be confronted for enterprise use.

Key Challenges

  • Sophisticated mobile applications require server-side capabilities that must scale to thousands, and potentially millions, of users.
  • Creating mobile back-end services is not a core competency of most mobile application developers, and the services themselves provide no competitive advantage.
  • Small specialist vendors provide most of the cloud's mobile back-end services, resulting in potential risk and market volatility.
Recommendations
  • Look for opportunities to use cloud mobile back-end services as part of your mobile application development (AD) efforts.
  • Treat today's vendor selections as tactical, not strategic.
  • Ensure that the vendor you select can support your operational requirements.
  • Recognize that mobile applications may store sensitive data in the cloud, so take proper precautions to ensure its security.
  • Understand the potential costs and construct an appropriate funding model.
Introduction
No mobile application of significance lives entirely "in its head" — the code running on the mobile device is only one part of the equation. The other portion of the application runs on a server or, more likely, on several servers — some inside and others outside the organization. From the mobile application developer's perspective, this is thought of as the back end of the application.

Beyond the enterprise applications and the data sources they may leverage, many mobile applications also require a set of common server-side capabilities. They must create and manage new user accounts, store user profile and preference information, push out alerts, perform location-based queries, integrate with social networks, etc. And they must do these things for thousands, if not millions, of users. Until recently, mobile AD teams had to assemble their own back-end capabilities using a combination of cloud services from multiple providers (e.g., the push notification services for each of the supported device platforms), scalable server infrastructure and custom code. This effort yields no competitive advantage in and of itself, and is outside the skill set of many mobile application developers.

A new set of cloud service providers has emerged in response to this opportunity (see Figure 1). These providers offer a specialized form of platform as a service (PaaS), abstracting the required back-end capabilities into a simple, unified service layer for consumption by mobile application developers. In addition to Web APIs, they typically provide client libraries for their services, making development against the back end feel like a natural extension of coding the mobile application, using iOS or Android software development kits (SDKs) or JavaScript.


Figure 1. Cloud Service Providers


Source: Gartner (October 2012)


Use Cloud Mobile Back-End Services in Your Mobile AD Efforts

Cloud mobile back-end services accelerate the delivery of mobile applications by making the back-end infrastructure transparent to the application developer. Capabilities such as data storage and user management are dynamically configured through Web interfaces and instantly deployed without worries about the complexities of server infrastructure.

As a result, configuring and deploying the back-end for a new application can often be accomplished in a matter of a few hours to a few days. This ability to quickly create the back end makes cloud services highly attractive for prototyping and for situational applications. Guide your team to use one or more in upcoming early-stage prototyping efforts, where the back end of the prototype — or the application itself — is expendable. Doing so will speed the development of functionally rich prototypes, typically at minimal or no cost for the back-end service. It will also deepen the experience of your development team, and provide more-sophisticated demonstrations of mobile functionality to your organization.

Cloud services can also play an important role in delivering more strategic mobile applications. The state of the art in mobility is rapidly evolving, which translates to significant technology and vendor volatility. With proper evaluation and planning, use of the cloud can help defray sunk costs and make it easier to absorb the impact of change, while embracing new capabilities. However, apply diligence when selecting mobile cloud back-end services for production environments, and use the following best practices to evaluate vendors and plan for deployment.

Treat Vendor Selections Tactically, Not Strategically

Because of the fundamental role they play, cloud mobile back-end services stand to become a key component of the mobile AD ecosystem. Microsoft is entering the arena with its Azure Mobile Services offering (currently in technology preview) and it's likely that other large vendors will offer similar services. However, for now, specialty vendors provide most cloud mobile back-end services. Some, such Parse, Kinvey and Kumulos focus entirely on back-end services, while others provide front-end and back-end development tools, frameworks and services. Vendors such as Appcelerator (through the Cocoafish acquisition), RhoMobile, Sencha, AppMobi and Tiggzi have expanded from front-end development to include the back end, while StackMob extended its back-end services to include the development of HTML5 front ends.

Given the volatility of the mobile cloud service provider market, it is critical that you have a migration plan ready for all production applications. Develop a plan for:

  • Migrating application data and data models or schema
  • Migrating users and permissions
  • Recoding mobile client applications to use a new API — roll them out in concert with deployment of a new back end
  • Replacing or eliminating capabilities missing from the new target platform

Migration may be a daunting thought, but it's a very real scenario that must be embraced before committing to the use of today's mobile cloud service providers for anything other than early prototypes or disposable applications.

Ensure That the Vendor Can Support Your Operational Needs

In addition to evaluating feature sets, you should ensure that the vendor you select meets the operational requirements of your organization and scenario. Relying on a vendor that's unable to meet your growth requirements will result in switching costs — not to mention potential dissatisfaction for users — when you hit their ceiling. For business to employee (B2E) scenarios, it's a straightforward exercise to calculate the target number of users; however, successful business to consumer (B2C) applications have the potential for hypergrowth.

Can the vendor deliver? Some vendors provide their services on proven highly scalable cloud infrastructures, such as Amazon Web Services; however, not all vendors are as transparent about their underlying architectures. As a result, you should:

  • Review the scalability architecture behind the provider's services, and look for customer proof points of successful scaling.
  • Examine what, if any, SLAs are available for the back-end service platform and carefully consider whether this is acceptable for your use.
  • Carefully consider the vendor's business model. If the vendor provides an API, for example, find out how it provides support. Many community-supported cloud services do not provide enterprise support.
  • Evaluate the metering and analytics capabilities the vendor offers, if any, to ensure that they support the level of granularity required to track application usage and optimize application performance.
Ensure the Security of Sensitive Data That Mobile Applications Store in the Cloud

Backing up mobile applications with cloud-based services introduces the risk that sensitive enterprise and customer data may migrate to the cloud. Carefully evaluate whether the vendor's platform provides adequate security mechanisms, and whether it has been sufficiently tested and hardened against attack:

  • Ensure that the provided security mechanisms are acceptable and that the solution can be readily integrated with the necessary enterprise security infrastructure.
  • Ask the vendor what security testing services they employ, and what conditions trigger a resweep of their stack.
  • Develop a backup strategy for application data and user records as part of the platform evaluation. Initially, this can be performed as a paper exercise based on the data extraction facilities provided by the platform; however, backup tests should be run prior to any commitment. Also consider any costs associated with data transfer for backups and factor this into the cost model.
Construct an Appropriate Funding Model

With many cloud services, you can get started with a credit card — or even for free — with the click of a button on a Web page. However, costs can quickly skyrocket based on user adoption. Employ the following steps to build a cost and funding model for your situation:

  1. Work with the business leaders in your organization to determine where the internal funding will come from and how to link business metrics to the use of a mobile application supported by the back-end platform.
  2. Build a cost model for potential uptake of the supported mobile application using the vendor's pricing model, and ensure alignment with your business model.
  3. Test for actual service usage during a trial project, and adjust the cost model as necessary.
  4. Put the actual funding mechanism in place prior to entering production.
  5. Actively monitor service usage once in production for changes in usage behavior, introduction of new applications, etc.
Source: Gartner RAS Core Research Note G00234532, Gordon Van Huizen, 24 October 2012