Archive for the “CloudFoundry” Category

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.

CloudFoundry:

  • 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)
  • The final step was to rewire the web app to get its list of things from the RESTful API rather than a static list and redeploy it.  Using the Sencha javascript library to provide for a mobile web UI experience, my app was, if not quite native, at least mobile-centric and accessible from my iPhone.
  • 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

GoogleAppEngine (AppSpot):

  • 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.

Comments No Comments »