By alkagupta on Nov 09, 2008
Last week I attended a fantastic talk on EUCALYPTUS at a cloud computing meetup. The presentor Rich Wolski, is a a professor in the Computer Science Department at the University of California, Santa Barbara. He created EUCALYPTUS, an open source cloud computing implementation, that is interface compatible with Amazon EC2. It was a great educational talk, very relevant to the budding cloud computing industry. Rich Wolski put in perspective the popularity of Cloud Computing when he mentioned that the term "Cloud Computing" was only coined about a year ago, by Google on Oct. 8 2007 in a press release. Today after 1 year and 1 month, a google search on "cloud computing" gives ~9 million results! This explosive growth in cloud computing got Prof. Rich Wolski interested in the subject for research and gave birth to the project EUCALYPTUS.
EUCALYPTUS is an acronym and expands to: Elastic Utility Computing Architecture Linking Your Programs To Useful Systems. The infrastructure is designed to support multiple client-side interfaces besides EC2. It is implemented using commonly-available Linux tools and basic Web-service technologies making it easy to install and maintain.
The fig. below illustrates the EUCALYPTUS architecture.
The Cloud Controller implements all the gory details of the Cloud backend provisioning, whereas the Client side API Translator emulates a Cloud interface like EC2. This design makes EUCALYPTUS modular and extensible to emulate clouds other than EC2. Eg., EUCALYPTUS plans to emulate the Google Apps Engine in the near future by adding yet another API Translation layer. In its current version available today, EUCALYPTUS translator is built to EC2 WSDL published by Amazon and is 100% interface compatible with EC2. When RightScale management and monitoring tools connected with EUCALYPTUS, they were not able to identify any difference between EC2 and EUCALYPTUS.
Security and authentication mechanism is very similar to EC2 except for its without a credit card. User signup is web based and ssh key generation and installation is implemented just like EC2. Since there are no published administration and accounting tools published by EC2, EUCALYPTUS defines its own tools for user management and cloud management.
When EUCALYPTUS project was launched, the objective was to keep it simple, extensible, easy to install and maintain, and build it on widely available and popular open source technologies. Another objective was to ensure that it is a cloud indeed, given there has been a lot of confusion about what a Cloud really is or not is. To ensure that, the team decided to emulate an existing cloud and made the following design decisions:
- EUCALYPTUS would be interface compatible with Amazon EC2 and S3
- It would work with command line tools directly from Amazon without any modifications
- It would leverage exisitng EC2 value added services like RightScale
Given EUCALYPTUS was an open source project and would need to run on any hardware without prior knowledge of the underlying infrastructure, it was also designed to function as a software overlay such that existing installation is not violated too much and no assumptions are made about the hardware.
Some of the Goals of EUCALYPTUS were:
- Foster research in elastic/cloud/utility computing
- Experimental vehicle prior to buying commercial services from EC2 and other clouds
- Providing a debugging and development platform for EC2 and other clouds
- Provide a basic cloud platform for the open source community. Might evolve into a Linux experience..
- Not designed as a replacement technology for EC2 or other commercial cloud services. In its current form, it can scale upto 1000 nodes.
Some of the biggest challenges addressed by Rich Wolski and his team of 5 research students around building EUCALYPTUS were:
- Client side interface (modular design so that its compatible with EC2 and other clouds)
- Packaging and Installation (One click install)
EUCALYPTUS is hosted as a public cloud and its free for use. However, only installed images can be run and usage is limited to 6 hours. EPC (EUCALYPTUS Public Cloud) configuration consists of:
- 8 Pentium Xeon processors (3.2 GHz)
- 2.5 GB of memory per image
- 3.6GB disk space
- 1GB ethernet interconnect
- Linux 2.6.18-xen-3.1
- Xen 3.2
Yes, its as big as an electron in the EC2 cloud. So clearly, even though its not a replacement for a commercial cloud, cloud vendors could learn a lot from its implementation if they wish to build their own cloud. Developers and end users could use it for testing and debugging purposes before deploying it on a real cloud. Given the popularity of cloud Computing, it could be the next Linux experience! Who knows.
IMHO, its a fabulous piece of work done by a team of 7 engineers at UCSB, using open source technologies, working with a limited budget in a duration of about 6-8 months. Check it out!!