Eucalyptus is open source software for building an AWS (Amazon Web Services) compatible private and hybrid cloud computing environment. It provides flexibility, cost benefits, agility and data governance.
Eucalyptus is open source software that implements an Amazon Web Services compatible cloud, which is cost-effective, flexible and secure. It can be easily deployed in existing IT infrastructures to enjoy the benefits of both public and private cloud models. Eucalyptus is an acronym for ‘Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems’. Basically, Eucalyptus provides an Infrastructure as a Service (IaaS) offering. The main advantage is that it provides easy and secure deployment. The private cloud is deployed in the premises of the enterprise and can be accessed by users over the intranet, so critical and important data remains secure from outside intrusion. Also, it provides AWS APIs. So, at any time, consumers can easily migrate or load balance their less sensitive data into the Amazon public cloud; thus, they don’t have to worry about the elasticity of their network.
Development on Eucalyptus began as a research project in US based Rice University in 2003. In 2009, a company named Eucalyptus Systems was formed to commercialise Eucalyptus software. Later, in 2012, the firm entered into an agreement with AWS for maintaining compatibility and API support. In 2014, it was acquired by HP (Hewlett-Packard), which incidentally has its own cloud offerings under the HPE Helion banner. The Helion portfolio has a variety of cloud related products, which includes HP’s own flavour of OpenStack called HP Helion OpenStack. Now, Eucalyptus is a part of the HPE portfolio and is called HPE Helion Eucalyptus. It provides an open solution for building a hybrid cloud, leveraging the benefits of other HP Helion products.
Figure 1 demonstrates the overall architecture of Eucalyptus in data centre design. Eucalyptus CLIs can manage both AWS and its own private instances. Users can easily migrate instances from Eucalyptus to Amazon Elastic Cloud. Compute, storage and network is managed by the virtualisation layer. Instances are separated by hardware virtualisation. The following terminology is used by Eucalyptus.
Images: Any software module, configuration, application software or system software bundled and deployed in the Eucalyptus cloud is called a Eucalyptus machine image (EMI).
Instances: When we run the image and use it, it becomes an instance. The controller will decide how much memory to allocate and provide all other resources.
Networking: The Eucalyptus network is divided into three modes:
- Managed mode: In this mode, it just manages a local network of instances, which includes security groups and IP addresses.
- System mode: In this mode, it assigns a MAC address and attaches the instance’s network interface to the physical network through the NC’s bridge.
- Static mode: In this mode, it assigns IP addresses to instances.
Static and system mode do not assign elastic IPs, security groups, or VM isolation.
Access control is used to provide restriction to users. Each user will get a unique identity. All identities can be grouped and managed by access control.
Eucalyptus elastic block storage (EBS) provides block-level storage volumes, which we can attach to an instance.
Auto scaling and load balancing is used to automatically create or destroy instances or services based on requirements. CloudWatch provides different metrics for measurement.
Eucalyptus has a total of six components, of which five are the main components and one is optional.
Cloud controller: Cloud controller (CLC) is the main controller, which manages the entire cloud platform. It provides a Web and EC2 compatible interface. All the incoming requests come through the Cloud controller. It performs scheduling, resource allocation and accounting. It manages all the underlying resources. Only one controller can exist per cloud.
Walrus: This is similar to AWS S3 (Simple Storage Service). It provides persistent storage to all the instances. It can contain any kind of data like application data, volume or image snapshots.
Cluster controller: This is the heart of the cluster within a Eucalyptus cloud. It manages VM (instance) execution and service level agreements. It communicates with the storage and network controller.
Storage controller: Storage controller (SC) is similar to AWS EBS (Elastic Block Storage). It provides block level storage to instances and snapshots within a cluster. If an instance wants persistent storage outside of storage, then it must pass through Walrus. The storage controller doesn’t handle this kind of request.
Node controller: NC (node controller) hosts all the instances and manages their end points. There is no limit to the number of NCs in the Eucalyptus cloud. It takes images and also caches from Walrus and creates instances. One should manage the number of NCs used as it affects the performance.
Enterprises can use any AWS-compatible tools or scripts to manage their own on-premise infrastructure. AWS API is implemented above Eucalyptus; so both are backward compatible. Users can run any apps that are supported by AWS from Eucalyptus.
Euca2ool: Euca2ool is the Eucalyptus CLI for interacting with Web services. It is a Python based tool which is compatible with all the AWS services like S3, auto scaling, ELB (Elastic Load Balancing), CloudWatch, EC2, etc. It is an all-in-one solution for both the AWS and the Eucalyptus platforms.
There are many other tools that can be used to interact with Eucalyptus and AWS, and they are listed below.
s3curl: This is a tool for interaction between Eucalyptus Walrus and AWS S3.
Cloudberry S3 Explorer: This Windows tool is for managing files between Walrus and S3.
s3fs: This is a FUSE file system, which can be used to mount a bucket from S3 or Walrus as a local file system.
Vagrant AWS Plugin: This tool provides config files to manage AWS instances and also manage VMs on the local system.
You can refer to https://github.com/eucalyptus/eucalyptus/wiki/AWS-tools for more information.
The advantages of the Eucalyptus cloud
- Eucalyptus can be used to get the advantages of both the public and private clouds.
- Users can run Amazon or Eucalyptus machine images as instances on both the clouds.
- It has 100 per cent API compatibility with all the AWS services. There are many tools developed to interact seamlessly between AWS and Eucalyptus.
- Eucalyptus can be used with DevOps tools such as Puppet and Chef. Popular SDKs like AWS SDKs for Java and Ruby and Fog work smoothly with Eucalyptus.
- It is not very popular in the market but is a strong competitor to OpenStack and CloudStack.
Table 1 sums up the features of the Eucalyptus private cloud software.
|Architecture||Five main components; same as AWS|
|Installation||Installation is easy compared to other IaaS offerings.|
|Administration||Strong CLI compatible with EC2 API|
|Security||Baseline security + component registration|
|IaaS offering||Public + private (hybrid)|
Table 1: Eucalyptus private cloud software summary
Eucalyptus vs other IaaS private clouds
There are many IaaS offerings available in the market like OpenStack, CloudStack, Eucalyptus and OpenNebula, all of which are being used as both public and private IaaS offerings.
Of all the IaaS offerings, OpenStack still remains the most popular, active and biggest open source cloud computing project, yet enthusiasm for Eucalyptus, CloudStack and OpenNebula remains solid. Based on business critical requirements, cloud service providers and administrators can choose specific IaaS offerings.