[ This post was originally written for BlackBerry dev blog and posted on 9/13/13]
There are many different types of cloud services available, and understanding how they differ in order to find the right one for your app business isn’t getting any easier. It seems every month there’s a new provider of services (using a new “_aaS” acronym) making the alphabet soup almost impossible to follow.
The purpose of this blog is to provide an overview of the cloud services space and to help mobile developers find the right entry point to get involved. I’m also going to highlight the new BaaS (Backend as a Service) segment, because I believe this segment has the most immediate value to mobile developers, especially small entrepreneurial mobile development shops and SMEs looking to move their online presence to mobile.
But first, an overview of the cloud services space. Traditionally, cloud services can be broken into 3 main categories:
Software as a Service (SaaS)
These services provide you with the whole nine yards. When you sign up with a SaaS provider, you’re getting everything you need from soup to nuts—including the application itself. A good example of this is Salesforce.com. You use their CRM application on their servers, and they handle storage, security, scalability, and everything else. You just use the service. There isn’t really any significant development on your part. Some other SaaS examples include Adobe Creative Cloud, Dropbox, Evernote, SAP and Workday Inc.
Platform as a Service (PaaS)
These services provide you with everything but the application and the data. Think of it like the Salesforce.com example above, but you have your own CRM application and you just want someone to host it for you in the cloud, manage access and distribution, virtualization, middleware and OS upgrades, scalability, etc. All you have to worry about is your app and its data. So, if your app has or needs an update, you’re on the hook for that. Everything else is handled by the PaaS provider. Some PaaS vendors include CloudBees, redhat OpenShift, AppFog, cloudControl, Heroku, Engine Yard and Google App Engine.
Infrastructure as a Service (IaaS)
These services are the most basic, but don’t confuse basic with low value. According to Gartner, IaaS is expected to be the fastest growing segment by a significant margin for the next five years. When you use an IaaS, you’re providing your own app and data (like in PaaS), but you’re also responsible for managing the app’s runtime, middleware and databases, and virtualized infrastructure. IaaS is a great solution when all you really need is someone to handle scalability and storage on a big scale. Some IaaS vendors include Amazon EC2, HP Cloud IaaS, OpenStack, Rackspace Cloud and Windows Azure.
The diagram at the top of the post illustrates how these services differ with respect to who is responsible for managing which part of your software and hardware stack. I’ve included “Non-Cloud” as well for comparison. In this case, of course, you’re managing everything yourself.
Now, let’s explore 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
- Push Notifications
- Social Network Integration
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.
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.
- 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.
Choosing the BaaS that’s Right for You
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.