Eucalyptus is an open source software platform for implementing Infrastructure as a Service (IaaS) in a private or hybrid cloud computing environment.
Eucalyptus cloud computing architecture is highly scalable because of its distributed nature. The Cloud level of the computing architecture is comprised of only two components and while used by many users, the transactions at each component are typically small. The Node level may have many components, but each component only supports a few users, even though the transactions are larger. This distributed cloud architecture is flexible enough to support businesses of any size.
The Eucalyptus cloud platform pools together existing virtualized infrastructure to create cloud resources for infrastructure as a service, network as a service and storage as a service. The name Eucalyptus is an acronym forElastic Utility Computing Architecture for Linking Your Programs To Useful Systems.
Eucalyptus was founded out of a research project in the Computer Science Department at the University of California, Santa Barbara, and became a for-profit business called Eucalyptus Systems in 2009. Eucalyptus Systems announced a formal agreement with Amazon Web Services (AWS) in March 2012, allowing administrators to move instances between a Eucalyptus private cloud and the Amazon Elastic Compute Cloud (EC2) to create a hybrid cloud. The partnership also allows Eucalyptus to work with Amazon’s product teams to develop unique AWS-compatible features.
Eucalyptus features include:
- Supports both Linux and Windows virtual machines (VMs).
- Application program interface- (API)compatible with Amazon EC2
- Compatible with Amazon Web Services (AWS) and Simple Storage Service (S3).
- Works with multiple hypervisors including VMware, Xen and KVM.
- Can be installed and deployed from source code or DEB and RPM
- Internal processes communications are secured through SOAPand WS-Security.
- Multiple clusters can be virtualized as a single cloud.
- Administrative features such as user and group management and reports.
Eucalyptus Architecture Diagram
Eucalyptus Cloud Components
Eucalyptus is made up of five distinct components that can be distributed in various cloud computing architectures. The five components are grouped into three separate levels. Jump to a specific page to learn more:
- Cloud Level
- Cloud Controller (CLC)
- Scalable Object Storage (SOS)
Eucalyptus Architecture: Cloud Level
Cloud Controller (CLC)
The Cloud Controller (CLC) is a Java program that offers EC2-compatible SOAP and Query interfaces, as well as a Web interface to the outside world, for distribution within the cloud architecture. In addition to handling incoming requests, the CLC acts as the administrative interface for cloud management and performs high-level resource scheduling and system accounting. The CLC accepts user API requests from command-line interfaces like euca2ools or GUI-based tools like the Eucalyptus Management Console and manages the underlying computer storage and network resources. Only one CLC can exist per cloud.
The CLC handles high-level:
- Quota management
Scalable Object Storage
Scalable Object Storage (SOS) is the Eucalyptus service equivalent to AWS Simple Storage Service (S3). The SOS is pluggable service that allows infrastructure administrators the flexibility to implement scale-out storage on top of commodity resources using open source and commercial solutions that implement the S3 interface. Eucalyptus provides a basic storage implementation, known as Walrus, which may suit evaluation and smaller cloud deployments. For large-scale and increased performance, users are encouraged to connect the SOS to dedicated storage solutions such as RiakCS.
- Cluster Level (i.e., Availability Zone)
- Cluster Controller (CC)
- Storage Controller (SC)
Eucalyptus Architecture: Cluster Level
Cluster Controller (CC)
A cluster is equivalent to an AWS availability zone, and a single Eucalyptus cloud can have multiple clusters. The Cluster Controller (CC) is written in C and acts as the front end for a cluster within a Eucalyptus cloud and communicates with the Storage Controller (SC) and Node Controller (NC). The CC manages instance (i.e., virtual machines) execution and Service Level Agreements (SLAs) per cluster.
Storage Controller (SC)
The Storage Controller (SC) is written in Java and is the Eucalyptus equivalent to AWS Elastic Block Store (EBS). The SC communicates with the Cluster Controller (CC) and Node Controller (NC) within the distributed cloud architecture and manages Eucalyptus block volumes and snapshots to the instances within its specific cluster. If an instance requires writing persistent data to memory outside of the cluster, it would need to write to the backend storage, which is available to any instance in any cluster. The SC interfaces with storage systems, including local, NFS, iSCSI, and SAN.
- Node Level
- Node Controller (NC)
Eucalyptus Architecture: Node Level
Node Controller (NC)
The Node Controller (NC) is part of the Node level of the cloud computing architecture. It is written in C and hosts the virtual machine instances and manages the virtual network endpoints. The NC downloads and caches images from Scalable Object Storage as well as creates and caches instances.