At StrongLoop we love cloud providers. The benefits of Rackspace, Amazon, Heroku and their kindred platform abstractions like OpenStack are abundant. Providing instant access to computing and storage resources while abstracting away the ‘iron’ and OS substrate helps application developer’s focus on the end app solution experience and success. Mobile developers and Mobile stakeholders need to keep in mind the challenges of launching their apps on platforms that they have little control over.
Often time, It’s not about up-time
Uptime is often the first recognizable fail point to a pure cloud strategy for mobile apps. This weekend Parse and Amazon developers were both reminded of this limitation. In addition to the Parse blackout, Amazon had outages that disrupted mobile applications vine, instagram, Netflix, IFTTT, Heroku and Airbnb .
Other Large co-tenant public mBaaS platforms have had growing pains over the past years. Unscheduled Appcelerator ACS outages and latent push requests gave developers anxiety as consumption grew. Kinvey and Stackmob had similar scaling challenges. Outages on Amazon EC2 caused serious issues with AWS customer Netflix in 2012. Looking at these blackouts with a long time horizon the uptime numbers are mostly good, proving a >99% uptime. It’s worth noting that Amazon started proving an SLA in 2008 with a 99.95% availability for the EC2 service on a yearly basis, however SLA didn’t apply to many customers caught in the major outages over the past few years
Ultimately, uptime outages are not the primary challenges with Cloud provided Mobile backend as a service.
A closed mBaaS can giveth and taketh away
Closed mBaaS cloud providers enable developers to rapidly integrate with predefined APIs that cover common mobile use cases such as users, locations, push, and so on. This is great for mobile developers who want to quickly stand up an application and get feature complete on the 90% coverage that pre-defined static API’s provide.
As Stephen Hess principal at Jovian Minds and lead Android and iOS Developer found out in their latest deliverable. Having access to the backend can be critical when you’re developing a mobile application that needs more from the server than simple CrUD (Create, Update and Delete) functionality for mobile data models.
“We integrated the Parse SDK with our Mobile app and got all the way to beta, however we had to undo all our work and go back to our legacy custom GAE mobile middle tier at the 11th hour, all because we could not get ‘atomic’ read-writes for dataset records to behave for our real time use case. Even though parse had an outline for an atomic index, it did not satisfy the application needs for our Game. The walk-in experience on Parse was great, we really hated to throw away the work and fall back to our old system“
Nearly all-mobile apps have common CrUD functionality that is supported by all the mBaaS cloud providers. When developers step off the common path and require a custom module integration, backend compute, or application specific configurations, access to the backend server stack becomes a necessity. Closed mBaaS Systems lock the developer out of customization, and requires them to wait for the vendor to go through the full software development lifecycle (requirements, planning, Implementation, QE, Launch, etc. ) before supporting new features.
Cost structure vs. Monetization curve
Cost structures are always a challenge for consumer mobile app initiatives. A mobile app’s freem-ium monetization model scales as the applications increases its install base. Mobile consumption of costly-metered services needs to be balanced carefully. Nearly all SaaS based mBaas provide a ‘free’ tier to get developers started, but once mobile service consumption grows mBaaS costs can ramp up. Unfortunately the mBaaS monetization model can easily outpace the developer’s app revenue. This can put mobile app principals in a precarious position as they balance cost structure and market adoption.
Jailbreaking your data
Data Export is another challenge. While all the major mBaaS provides have a data export features, often it is clunky, ill documented and low support priority. This type of ‘stickiness’ can cause challenges if a developer wants access to their backup. Incidentally, many of the cloud providers don’t have a recipe for you to independently backup your data for redundancy.
Supporting governance and compliance
For developers working in Enterprise environments with governance and compliance constraints such as PCI Data Security Standards compliance or medical organizations that must comply with HIPPA the cloud discussion becomes more complex.
Accessing data behind the firewall
When mobile initiatives need to access legacy data stores such as Oracle or SAP, cloud providers must often employ hybrid solutions and are then required to optimize and integrate with additional substrate vendors and additional security complexity.
Endpoint and mobile service optimization
Finally, the lifeline of a mobile application is the data that is provided by the mBaas. No matter how much care and attention is paid to the application experience, a slow or latent server causes users to stare at the ‘spinning wheel of mobile death’. The mobile use case is quick interactions throughout the day. The smallest latency can cause user churn, and more importantly loss in direct revenue. The rule of thumb reference is that a plus or minus 1 millisecond of user network latency will directly influence sales by an equivalent plus or minus 1%.
Offloading or optimizing computation in cloud becomes impossible with closed mBaaS platforms.
Compounding the problem is the difficulty in introspecting into a closed mobile server. If the middle tier is connecting to other enterprise bus systems or social APIs, cloud platforms provide very little in helping developers triage where latency is occurring.
There are lots of great competitors in the mBaaS field and I wouldn’t know where to begin in recommending one over another. There are some great articles on the subject like this GigaOm article http://pro.gigaom.com/2013/01/what-developers-should-know-when-choosing-an-mbaas-solution/ .
One thing is clear: Mobile initiatives want the power of ‘switch on’ mBaaS solutions with the flexibility to leverage on-premise, hybrid, or cloud deployments; and need the access that comes from ‘owning’ their mBaaS. Ultimately we think mobile developers and operation stakeholders will find this in an open Node.js solution that supports both private and public strategies.
- What’s in the upcoming Node v0.12 release? Six new features, plus new and breaking APIs.
- Ready to develop APIs in Node.js and get them connected to your data? Check out the Node.js LoopBack framework. We’ve made it easy to get started either locally or on your favorite cloud, with a simple npm install.
- Need for Node? Learn more about both the private and open options StrongLoop offers.