Cloud services for mobile developers: Google vs. Amazon vs. Azure vs. Parse

Cloud-based back ends for mobile applications combine key services with varying degrees of complexity

Page 6 of 6

The system should scale reasonably well, but it's easy to see how some complex tasks might fail. According to the documentation, the basic functions are "killed after 15 seconds of wall clock time." Functions that run before and after saves to the database only get three seconds to live. I can understand why the developers chose what sound like arbitrary limits. It's the simplest way to maintain boundaries between so many apps living together on a shared box. But it sure makes complex systems less predictable when resources become tight.

It's hard to know whether you can take much of your Parse code with you if you decide to move to your own servers. Of course if you're building a lightweight app that doesn't store too much, you'll be fine. If it's all simple tables, you can be up and running in little time.

Pick a PaaS for mobile
Figuring out the right way to use the cloud to support mobile apps is now a key part of the development process. All four clouds offer solid solutions for squirreling away data in case someone's kid drops the phone.

There are other solutions of course. While researching this story, I was building an application that needed cloud storage. For my mobile back end, I ended up installing Drupal on a spare server. It was neither as clean or as organized as Microsoft's back end, nor as well documented as Parse's, but it wasn't hard to get something running that would handle the data I was sending its way. All it takes is a module that adds JSON Web services to Drupal. The best part: It also came with all of the display code for browsing the data and presenting it in a nice way. There are hundreds of themes for Drupal, so creating a nice look isn't too hard.

My traditional Web stack can't push notifications, but I'm not sure they're necessary for many applications. It's much simpler to ask the client to poll the server periodically. It may not be as interactive or as instantaneous, but it's simpler than jumping through the hoops the different push systems require.

It's not always as easy to scale code like Drupal either, but it can be simpler and more flexible. Google's App Engine stack, for instance, isn't particularly portable. If you decide you don't like Google's cloud, you'll need to do quite a bit of coding. Microsoft's Node.js code is probably the simplest to move if needed.

In the end, all the APIs offer a substantial boost for anyone building a basic database-backed server, which is the bulk of the job for mobile code. The job of pushing data to the users, though, is still a work in progress. The code was messy and the APIs complex. Much of it is still experimental. It's not simple to create something that will push bits to millions of clients, even using these tools.

The part that stood out was Microsoft's packaging of a JavaScript server -- one of the nicest and most flexible options. It doesn't offer any fancy debugging support or the ability to dig into the complex guts of the system, but you can accomplish something quite useful without worrying about any of those things. It won't offer enough flexibility for people with complex apps, but it might be a mistake to get hung up on this. Much can be done with the basic building blocks. It may make the most sense to just embrace the simplicity and redesign the app to match it.

Mobile back end services at a glance

 Amazon Web ServicesGoogle Mobile BackendMicrosoft Windows Azure Mobile ServicesParse
  • Huge variety of services
  • Tools include ways to enhance existing services for mobile use
  • Industry-leading infrastructure with deep access to underlying instance layer
  • Broad collection of APIs, including essentials like maps
  • Continuous queries offer sophisticated filtering/pipelining
  • Rich tools suited to larger teams building reliable applications
  • A clean way to build simple Web services based on JSON calls
  • Essentially an interface to Node.js
  • Provides code editor in your browser
  • Well-integrated collection of libraries supports numerous mobile platforms
  • Extensive documentation
  • Nice aesthetic makes it simpler to create good-looking apps
  • Size and complexity can be daunting
  • Instance focus can require more work
  • Mostly Java-based and complex
  • Plenty of interaction with Google Play Services
  • Tilted toward Microsoft tools and languages
  • Lacks robust debugging
  • Command-line focus
  • Prices are transparent for Basic and Pro levels, but not for Enterprise level

This article, "Cloud services for mobile developers: Google vs. Amazon vs. Azure vs. Parse," was originally published at Follow the latest developments in cloud computing and application development at For the latest business technology news, follow on Twitter.

| 1 2 3 4 5 6 Page 6
From CIO: 8 Free Online Courses to Grow Your Tech Skills
View Comments
Join the discussion
Be the first to comment on this article. Our Commenting Policies