Open-Source Cloud Tools Project Spawns Cloud Foundry (
Page 1 of 2 )
The open-source Cloud Tools
project, hosted on Google Code, is a prime example of the emerging trend of
open-source developers targeting the cloud and looking at services such as
Amazon Web Services and Google App Engine to host their applications.
An Evans Data survey recently emphasized this trend, showing that 40 percent
of surveyed developers
working on open-source projects plan to deliver their applications as Web
services offerings using cloud providers. The majority of respondents, at
28 percent, said they plan to use Google App Engine to develop cloud
applications, while 15 percent plan to use Amazon.com's Amazon Web Services.
Chris Richardson, founder of the Cloud Tools project, is one such developer.
Richardson started the Cloud Tools
effort more than a year ago and it has taken off, so much so that Richardson
has launched a commercial service based on Cloud Tools called Cloud Foundry.
Cloud Tools is a set of tools for deploying, managing and testing Java
EE (Java Platform, Enterprise Edition) applications on the Amazon EC2 (Elastic Computing Cloud).
There are three main parts to Cloud Tools: AMIs (Amazon Machine Images) that
are configured to run Tomcat and work with EC2Deploy; EC2Deploy, the core
framework that manages EC2 instances, configures MySQL, Tomcat, Terracotta and
Apache, and deploys the application; and Maven and Grails plug-ins that use
EC2Deploy to deploy an application to EC2.
The Cloud Tools Grails plug-in makes it easy to deploy a Grails application
to Amazon EC2. It takes care of configuring MySQL, Tomcat and Apache and
deploys the application. The project's Maven plug-in is an easy way to use
Cloud Tools, Richardson said.
"One of the great things about compute clouds such as Amazon EC2 is
their elasticity—you can quickly and easily launch as many servers as you
need," Richardson
said in a blog post. "And, with Cloud Tools, you can easily deploy and
manage your Java/Grails applications on Amazon EC2."
In a recent blog post, Java
developer Dustin Whitney discussed the benefits of using Amazon EC2 and Cloud
Tools. Richardson described
Whitney's use of Cloud Tools to help with a problem Whitney ran into. "His
Grails application, which was running on [a] single instance, was overloaded by
a sudden increase in traffic. Fortunately, he was able to use Cloud Tools to quickly
redeploy his application on multiple instances that could handle the
load."
Said Whitney:
The solution was as simple as opening
my app, changing the config to run with four app servers, and running 'grails
cloud-tools-deploy.' Once deployed, I switched the Elastic IP address of the
old deployment to the load balancing server of my new deployment and voila! My
site was hauling ass again.
Had we been using the traditional
managed hosting services that we typically use, like those offered by
Rackspace, we'd have been totally screwed. It would have taken them at least a
week to get another server up and running, which would have been way too long.
Using EC2 and Cloud Tools, I simply started servers as I needed them, and I'll
shut them down tomorrow when the traffic dies down. It will probably only cost
our client about $20 at the most, and think of the time and money that would
have been lost if the server configuration had not been able to handle the load
being thrown at it.
Speaking generally about Cloud Tools, Whitney said: "You can launch
your Grails application onto a server by simply typing: 'grails
cloud-tools-deploy.' It supports all sorts of clustering and master/slave
arrangements with DBs and so forth ... totally rad."
Moreover, Whitney said, "I can't tell you how much time it saves to be
able to bootstrap a server from the command line with a simple 'grails
cloud-tools-deploy.' If you've built any Web sites then you know what a pain in
the ass deployment is, and you know what a pain in the ass server configuration
is. Cloud Tools and EC2 eliminate the need for both and allows you to focus on
what you're good at: writing code."