DEVELOPERS BLOG

Choosing the Right Cloud Service for Your App Business: Part 2 – BaaS

WEB DEVELOPMENT / 09.16.13 / lmcdunna

jet-sky

In my previous post, I discussed several different types of cloud services and how they can help you run your app business. Today I’m going to introduce a new type of cloud service: Backend as a Service, or BaaS. In my opinion, this segment has the most immediate value to mobile developers, particularly for small entrepreneurial mobile development shops and SMEs looking to move their online presence to mobile.

What is Backend as a Service (BaaS)?

BaaS, sometimes called MBaaS (Mobile Backend as a Service), is a cloud computing category designed to make it easier for mobile app developers to build and maintain cloud-based apps across multiple platforms. BaaS is a mix between PaaS and SaaS. Kinvey, a leading BaaS provider, offers up a great BaaS Ecosystem Map that illustrates just how complex this cloud services space can be.

Virtually all mobile applications use some backend service (a notable exception might be a single-user/non-social game). BaaS solutions offer developers a single API that gives them access to most of the messy backend services they need without having to hire a backend development team to design, build and maintain it (likely on a PaaS). This frees up time and resources to focus on the core user experience of the mobile app.

So, what do you get when you start using a BaaS? The providers all differ, but typically you get services such as:

  • Data Storage
  • Search & Retrieval
  • User Management
  • Messaging
  • Push Notifications
  • Social Network Integration
  • Location
  • Analytics

Developers could leverage each mobile platform’s native APIs for all these services, and many do. The advantage of BaaS solutions, however, is that developers can use a single API for each of these common services across all mobile platforms. This does mean you’re making a commitment to  a single-vendor API, but the advantage of a single, cross-platform, backend code base (without requiring any backend developers!) is very attractive.

BaaS Companies

There are many BaaS companies, but here is a list of the ones with which I am most familiar, ranked alphabetically. I often see these companies at developer conferences and hack-a-thons.

  • Cloudant – Cloudant considers itself more of a “Database as a Service.” Their solution focuses on your data and they are good at managing unstructured, noSQL data as JSON documents. Cloudant offers both dedicated and multi-tenant pricing.  BlackBerry developers access Cloudant’s APIs via standard HTTP requests. Learn more here.  Their entry level multi-tenant pricing is $1.00 per GB per month, plus small fees for hundreds of HTTP requests. The first month is free, and bills under $5.00 are always free.
  • Cloudbase.io – Cloudbase.io offers many standard BaaS features, and their database allows for complex queries and data aggregation operations. The enterprise edition of Cloudbase.io can be deployed on-premise and integrates with BES 10, and uses the BES server, if available, for push notifications and authentication. Learn more about their BlackBerry 10 solution here. Cloudbase.io for BlackBerry is available in open source on Github here. Entry level pricing for Cloudbase.io starts at $11.99 per month for 1GB of data transfer and unlimited storage.  Pricing tiers are based on data transferred per month.
  • FatFractal – FatFractal provides a wide range of cloud solutions, including standard BaaS (called “NoServer”), PaaS, and “Cloud in a Box” (an enterprise offering that allows companies to deploy a complete cloud services solution within their own data center). BlackBerry developers can access FatFractal through their HTML5/Javascript APIs here. At the time of this posting, FatFractal is working on a native BlackBerry SDK. Developers can try out FatFracal for free in a small scale Sandbox. Their first tier offering starts at $30 per month with 2.5GB storage. 
  • FeedHenry – FeedHenry leverages node.js on the server, which allows for a lot of flexibility when integrating with existing backend systems. FeedHenry also offers end-to-end security, as well as encryption, storage and synchronization. It can be hosted on public or private clouds. BlackBerry developers can get access to FeedHenry’s HTML5/Javascript APIs here.
  • Kinvey – Kinvey offers a wide range of BaaS cloud solutions designed specifically for mobilizing enterprise applications. Kinvey’s Data Link technology allows companies to securely mobilize its on-premise or cloud data store through the Kinvey platform and connect with existing systems to any native, hybrid, or web client. At the time of this posting, a native BlackBerry 10 SDK is in development. BlackBerry developers can access Kinvey via their HTML5 platform offering here.  Kinvey’s pricing tiers are per user. They offer a $0 entry level for 1-100 users, and a $20 per month level for 100-1000 users.
  • Parse – Parse, recently acquired by Facebook, offers a wide range of BaaS solutions that appeal to consumer-facing mobile app developers. BlackBerry developers can access Parse via their Javascript SDK here. Parse’s pricing tiers are per API call. They offer a free “Basic” tier up to 1 million pushes and 1 million requests per month. Their next tier, called “Pro,” is $199 per month and is capped at 15M requests per month and 5M pushes per month.
  • StackMob – Stackmob offers a complete BaaS solution and provides developers with the ability to integrate custom server-side code into their cloud solution. Stackmob is also fully open sourced on Github here. BlackBerry developers can get access to Stackmob via their Javascript SDK here. Stackmob has a free Developer Edition offering and two paid offerings (Pro and Enterprise). Pricing is dependent on features and integration with StackMob’s Mobile Marketplace composed of third-party partners.

Choosing the BaaS that’s Right for You

There are many factors to consider when choosing a cloud service upon which to build your mobile app business. As you can see from the companies I highlighted above, there are about as many different pricing models as there are BaaS providers, so I recommend spending some time looking at which model makes the most sense for your application. Also, though all solutions provide a Javascript API, only a few offer a native BlackBerry 10 SDK. The architectural differences between the solutions vary widely, and this affects the features and capabilities of the different cloud services.

Some enterprises decide to take the “Non-Cloud” approach to avoid potential security issues with storing corporate data on external servers. To address this, many cloud services providers are offering “hybrid” cloud solutions that enable enterprises to host the data either on their own servers on-premises (the most secure option) or to host the data on dedicated servers in the cloud not used by any other company. As you compare and contrast services, choose the service with the security provisions that are right for your business.

For further reading on feature-by-feature comparisons between BaaS solutions, check out Cory Wiles’ KitchenSync Github project. In true Github spirit, Cory welcomes contributions, additional tests and additional BaaS solutions added to the project.

Summary

BaaS (Backend as a Service) is a specific cloud services category that helps mobile developers create rich, cross-platform applications very quickly by providing a single consistent API for handling many of the common, heavy-lifting backend tasks most mobile apps require. In a future blog post, I’ll dive deeper to explore a particular BaaS solution and demonstrate how to build a secure BlackBerry 10 application that leverages rich cloud and backend services through a BaaS platform. In the meantime, let us know if you’re using a BaaS solution in the comments below!

About lmcdunna