I recently walked through the steps of setting up Parse, Heroku and OpenShift accounts in order to get familiar with each and learn more about developing in an entirely *aaS environment. It’s my own exercise to see if you can build a device/web application and never touch the command line of a server. I wanted to answer the question “how easy is it to build a mobile app that includes data services on *aaS providers today?”
I chose these 3 because they popped up in my reading for different reasons and had the things I was looking for. Each has their own toolsets, SDKs and specialized features. They all covered the architecture necessary for data services. They also share the features of being free (at some basic level) and completely cloud based. Here is how each advertises itself:
- Parse: Backend data-store and Mobile SDK
- Heroku: Cloud application platform
- OpenShift: Platform as a Service
In this list, one is pretty clearly not like the others. Parse is more like a data-store for your application than anything else. Heroku and OpenShift are more like hosting and are nearly equivalent in features. These providers seem to be able to cover all of the architecture I would imagine needing for an application. So what’s it like to get started?
Parse starts with a very nice “QuickStart Guide” tutorial and basically gives you a templated project that includes everything you need to save your first record in your account. This is comforting. Seeing your first “save” happen and being able to verify it immediately is a huge win. The Dashboard is also very impressive. I mean – a Data Browser? Wow. Nice touch. I have no idea how this looks or performs with millions of records, but just the presence of it is very nice. Lastly the coup d’etat is the “Export Data” feature. Really? I can get all my data back? Very cool.
With Heroku you begin by setting up the Toolbelt. This is a set of command line tools that integrate really nicely with all of the Heroku services. Essentially it’s based off the Git workflow: when you push code it installs it and runs it on the Heroku platform. However it adds other tools such as Foreman which is a way to run your app locally. The “Resources” management of your applications is also very slick. It’s almost too easy. You could quickly setup your account to have everything. Including a database which they advertise as the largest and most reliable Postgres service in the world. The most intriguing part of Heroku in my opinion is that many of the tools they provide are available open-sourced on Github. I do want to elbow them on 1 particular thing: Node.js is not a language. You should change that in your Dev Center docs. It’s kinda silly. But with that said – they cover all of the more popular languages right now and that’s cool.
OpenShift also has a command line tool to facilitate service integration. They also provide a very clean and impressive application templating system. You select the “runtime” you’d prefer and it provides a template project with a lot of commented code to demonstrate integration with the rest of the platform. Very nice touch. One of the more interesting features with OpenShift is it’s Jenkins integration. It appears (I’ve not set this up yet) that you can add a Jenkins app to your account and have any other apps CI with that Jenkins install. This is – as far as I know – the first CI service provided by a *aaS provider. In my opinion what OpenShift has going over other *aaS providers is the “Do-it-Yourself” cartridge. Essentially they are giving you a RedHat instance, an IP and a Port. Is this better than a command line to a server?
So that’s more or less the advertising for each of these providers and a little bit about the first interactions with each. Now I’m going to mock out my services etc and see which one makes it easy.