Backend as a Service (BaaS) is an emerging trend in cloud computing services. It meets the increasing demand for mobile application storage. BaaS makes it easier for developers to set up, use and operate a cloud backend for their apps - but every convenience has its limitations. Parse’s shut-down is a perfect illustration of the potential drawbacks. So, how can you use BaaS solutions safely and responsibly?
Big thanks for Netguru iOS team for all expert advice on the subject!
BaaS is, unsurprisingly, becoming more and more popular. It perfectly fulfils mobile developers’ needs for facilitating and streamlining the process of creating and hosting apps on all platforms (iOS, Android, Windows, Blackberry). The benefits of using BaaS are clear:
BaaS providers use data optimization techniques that reduce fragmentation problems across platforms and devices,
bundled infrastructure deals with scalability and app performance, which saves time and effort on the part of the developers,
using BaaS solutions speeds up the process of launching an app and implementing further updates.
In short: building apps with BaaS streamlines all stages of the app building process.
However wonderful this may sound, BaaS is not a panacea. For every outsourced subcontractor, there is the risk of malfunction, failure or a service simply closing down, as happened to Parse - a development platform owned by Facebook. Parse will operate until January 28, 2017, so developers still have some time to move their apps to other providers, but it is obviously a huge obstacle for a smooth development process. How can you mitigate the risks associated with switching to another platform, while still enjoying the benefits of BaaS? Here are a few tips from our iOS development team.
One day, BaaS won’t be enough
This is something you should never forget. Expect that BaaS will eventually be too simple for your needs. As your apps are updated and improve, you may need a more advanced platform to support it. You also shouldn’t forget that BaaS is there. Always have a fallback plan.
BaaS won’t live forever
Don’t forget that such services aren't immortal. It’s a really good idea to keep your application's logic separate from the BaaS' SDK (if any). Be prepared to change network layers in the future (so: write tests and agree on a single public interface for this wrapper). Also, remember that a 3rd party backend is very risky for developing long-lasting, reliable businesses. BaaS is good for prototyping, not running a business.
Don’t delay the transition to your own backend
Yes, one year seems like a lot of time to do this - but procrastination is not a friend in any situation, and certainly not in this one. Move your apps as soon as possible - you might come across several issues along the way and rushing while fixing them won’t do you any good.
Avoid BaaS dependencies as much as possible
Never write the whole application dependent on BaaS SDK/objects. The application itself should be separated from dependencies as much as possible (which is a general rule). The risk can be reduced if you have access to source code (which you won’t, in most cases).
Mind the scalability
There are cases when BaaS scalability might cause several difficulties in your project. You’ll probably find it hard to customize uncommon features. It affects the client's side (preparing your own wrapper is highly recommended), too. It’s also worth mentioning that costs increase proportionally to the amount of users, which may force you to close the service or - in the worst case scenario - build the backend from scratch.
Give us a shout about how you intend to proceed with Parse. Do you have any other tips for dealing with such edge cases? Share them in comments, thanks!