Thursday, July 14, 2011

Deploying Application with Cloud Foundry

In my previous post I have written about VMware Cloud Foundry, few days back I was playing with Cloud Foundry. Again, it looks very impressive and it seems Derek (Cloud Foundry CTO) team has done a fabulous job with this first PAAS offerning with Vmware. I have used and deployed my app with Google App Engine as well, and I have to say Cloud Foundry stand right there with Google App Engine and Amazon. In my view this will take lots of industry attention as it gets more mature and more and more folks will start using.

To give you an idea, it only took me 30-40 mins from the start to deploy this application. I have used VMC CLI tool to deploy this application. Spring STS also have plugin for Cloud Foundry, I might give it a try later on sometime. Here’s my first “Hello World” kind of application, which is deployed in Cloud Foundry.

http://hellovikascloudfoundry.cloudfoundry.com/

Here's my terminal output from my mac:


Vikas-Kumars-MacBook-Pro:~ Vikas$ bash

bash-3.2$ vmc target api.cloudfoundry.com

Vikas-Kumars-MacBook-Pro:~ Vikas$ bash

bash-3.2$ ruby -v

ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]

bash-3.2$ gem -v

1.3.5

bash-3.2$ sudo gem update --system

Updating RubyGems

Updating rubygems-update

Successfully installed rubygems-update-1.8.5

Updating RubyGems to 1.8.5

Installing RubyGems 1.8.5

RubyGems 1.8.5 installed

=== 1.8.5 / 2011-05-31

* 2 minor enhancement:

* The -u option to 'update local source cache' is official deprecated

* Remove has_rdoc deprecations from Specification.

* 2 bug fixes:

* Handle bad specs more gracefully.

* Reset any Gem paths changed in the installer.

RubyGems installed the following executables:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem

bash-3.2$ clear

bash-3.2$ sudo gem install vmc

Fetching: json_pure-1.5.3.gem (100%)

.......

bash-3.2$ vmc

bash-3.2$ vmc target api.cloudfoundry.com

Succesfully targeted to [http://api.cloudfoundry.com]

Successfully logged into [http://api.cloudfoundry.com]

bash-3.2$ vi

bash-3.2$ lS

hello.rb

bash-3.2$ vmc push

Would you like to deploy from the current directory? [Yn]: y

Application Name: hellovikasCloudFoundry

Application Deployed URL: 'hellovikasCloudFoundry.cloudfoundry.com'? y

Detected a Sinatra Application, is this correct? [Yn]: y

Memory Reservation [Default:128M] (64M, 128M, 256M, 512M, 1G or 2G)

Creating Application: OK

Would you like to bind any services to 'hellovikasCloudFoundry'? [yN]:

Uploading Application:

Checking for available resources: OK

Packing application: OK

Uploading (0K): OK

Push Status: OK

Staging Application: OK

Starting Application: OK