I recently completed a project for a major wireless carrier and have a few days to spend on research and self-study before my next consulting assignment.
For previous projects, I had used RackSpace.com to quickly provision development and testing servers, but I hadn’t had the opportunity to create and deploy applications into one of the platform-as-a-service (PaaS) offerings. However, Rackspace is just an infrastructure-as-a-service (IaaS) provider and does not provide the application development “ecosystem” to allow a developer to simply build a deploy an app without having to first configure frameworks, databases, messaging solutions, networks and storage first.
Having followed the VMWare/CloudFoundry/Pivotal developments closely over the last few months, I thought I would start with CloudFoundry and then do something similar with the Google App Engine.
- Signup was simple. I chose to install both the SpringSource Tool Suite (STS) as well as the MicroCloudFoundry server instance that supports complete standalone development and deployment without having a connection to the public cloud.
- I registered my “app ID” and received the URL for my site.
- Following one of the available tutorials, I quickly created a Grails- and MySQL-based web app and deployed it to the public cloud. The app wasn’t much more than a hello world to start with, but following the tutorial, I quickly added functionality to display a list.
- The next steap was to create a separate project for a RESTful API that could be consumed by the web app. That also went fairly smoothly minus the occasional typo and pretty soon, I had a second project deployed to the public cloud that would return a JSON document in response to a URL query (RESTful API call)
- For a future enhancement, I’d like to use PhoneGap to render native mobile apps for iOS and Android
- Getting Started Link: here
- Tutorial Link: here
- My tutorial for GoogleAppEngine was much more simplistic, but still was sufficient to demonstrate deploying a new app to the public clould.
- I downloaded the MacOS version of the AppEngine API and configured Eclipse to use it for Google AppEngine projects.
- Using Eclipse, I modified a provided starting application called GuestBook and deployed it to Google’s cloud. The application was accessible using a URL of my-app-name.appspot.com.
- GoogleAppEngine provides a dashboard showing numerous statistics for application usage
- Language support was limited to Python, GO and Java and supposedly the Java support is scaled back.
- Getting Started Link: https://developers.google.com/appengine/docs/whatisgoogleappengine
I also looked briefly at the Oracle Cloud PaaS, but only got as far as configuring some of the predefined “apps” in the database service. I’ll take a crack at deploying a custom-developed app as time permits.
In summary, both CloudFoundry and Google’s AppEngine allowed me to quickly develop a simple app that leveraged the capabilities of the PaaS provider. CloudFoundry’s choices of available technologies seemed more familiar to me as an enterprise-class application architect, but both would certainly get the job done.
Google provided a nice set of metrics for monitoring application use and performance out of the box, while this was only available in CloudFoundry’s MicroCloudFoundry component.