Choosing An MBaaS Solution

Choosing An MBaaS Solution

October 15, 2013

MBaaS (Mobile Backend as a Service) is being hailed as a road to faster, more secure and more stable app data delivery. It's a relatively new, niche platform, but the essential crux of it is that an MBaaS provider will deliver a set method of storing and retrieving your data (usually with at least one API stream, but normally with REST, iOS and Android SDK's as a minimum) and gaurantee scalability and up time. In return, the functionality of the MBaaS is usually limited to a number of pre-set data containers and functions. These services are geared tightly around mobile apps and their specific requirements, so again most MBaaS providers will provide API's for mobile specific features like push notifications, social integration, out-of-the-box user management, and mobile analytics.

There is no doubt that MBaaS should be an option you investigate whenever you embark on a new mobile project. The benefits of such a system are huge - particularly for startups where pricing is a key to success as most of the MBaaS providers offer generous "free" limits available to both personal and commerical customers. There, however, numerous pro's and con's to choosing an MBaaS that you should be aware of before embarking on any project. Let's evaulate two of the most popular MBaaS systems - Appcelerator's ACS, (now owned by Facebook), versus building your own custom solution.

Appcelerator Cloud Services (ACS)

Pros: Probably the most mature, enterprise focused of the three solutions here. Appcelerator's key strength obviously lies in the tight integration it has with its Titanium Mobile product line - Titanium apps can be created with baked-in ACS support so you can get started with storing data on the cloud and accessing it via the built-in API's in absolutely no time at all. ACS also has extremely generous limits for the number of API calls you can make (much better than Parse and other MBaaS providers), how much data you can store, and the number of push notifications you can send. For social apps, their built-in services such as user management, places, checkins, rating and social integration make a developers life much easier. ACS is built on top of robust services such as MongoDB, Amazon S3 and Amazon cloud server technology.

Cons: If you need to move off those generous free limits, ACS starts to become very expensive indeed. It is targeted at enterprises and the pricing model reflects this - Enterprise level pricing can run into thousand of pounds a month. Their online web management tool is also awful - it's steadily become better in recent history but has a tendency to crash, not save data and has even been known to delete data. The export tools only allow one weekly backup and no restore features - not great from a disaster recovery stand point. Push notifications also have a tendency to be easy to setup but rather slow, so if push timing is critical in your app this is one to steer away from.

Pros: takes a different approach to many of the MBaaS providers by allowing the user to create their own custom "classes" instead of providing numerous pre-set modules (though it does provide some, like User management). This makes for a much more open ended solution, and one that is much easier to tailer to your specific apps needs. Additionally, whilst not perfect, the web management tools are quite good and considerably better than those provided by ACS. Parse's payment plans are also much more geared towards startups and SME's - Pro pricing starts from $199 and Enterprise level pricing from $1,000 p/m - although a free version with 1 million requests and 1 million push notifications is available as well. Parse also has both data import and export capability, and supports a very large number of SDK's including JavaScript, REST, iOS and Android making it a no-brainer regardless of what tech you're using to build your mobile apps. Parse also features Cloud Code which lets you write and push your own Node.JS based functions to your mobile backend via GIT.

Cons: Depending on your perspective, the fact that Facebook has it's claws deep into Parse now may not may not be a bad thing. If you feel wary or threated by the social giant you may want to give this option a miss. The free limits are also considerably less than ACS, which offers 5x the amount API calls and Push. Additionally, Parse has a briliant push notification API system but unfortunately if you are developing a non-native (Java) app for Android then you'll struggle to implement their Android push notifcation module which is a custom background service as opposed to a standard GCM or MQQT push notification mechanism.

Build It Yourself

Pros: Think carefully first about these MBaaS solutions - do you really expect your new app or service to grow to 100,000+ users? Will it really only be used by a couple of hundred people at most at any one time, making scalability a bit of a non-issue? Unfortunately, many people caught up in the hype of using MBaaS solutions have forgotten that sometimes, building your own API / backend solution really is the best way to go. You control the technology, the database and the language your API's are written in - normally that would be whatever you are most comfortable with and have experience in using. There's much to be said for the effeciency of familiarity. Need a new module, bash script, or feature in your API? Just build it! Additionally, you're free to host your servers and code in any way you see fit and there's plenty of great scalable cloud server offerings on the marketplace to do this effeciently.

Cons: The cost of hosting may make this solution more expensive than using either of the free or basic plans provided by ACS or Parse. Should you choose to ensure you can scale safely, you will need to control the number of servers, load balancers and data storage right from the start. Some providers, like Amazon and Rackspace, make this extremely easy but you should be aware that charges are almost always bandwidth based so if you have a very successful app, you could end up with a very large bill. Additionally, services like Push and User management won't be backed into a DIY version of a mobile backend - you'll have to find other providers that you can integrate with to provide these services.

Well there you have it, the pros and cons of two very different MBaaS solutions, and a reminder that sometimes building your own API's really is the way to go. If you're interested in evaluating some of the MBaaS offerings further, try out these for size: