The reference architecture content below is common among the various use cases described and can be referred to on an as needed basis.
Common Reference Architecture Content Sections
Jump to a specific section below:
- Data Center Management
- Summary Considerations
- Eucalyptus and Enstratius Cloud Management
- Eucalyptus and Nagios Cloud Monitoring
- Hybridfox Cloud Interface
- s3cmd Command Line Tool
The sections that have been covered up to this point in this reference architecture have been outlining the design of a Eucalyptus software deployment along with a definition of minimum physical resource capacity and configurations. Next, we address additional technologies and techniques that surround the Eucalyptus software/hardware itself which are required to run a complete Eucalyptus private cloud in production.
Services provided by the Eucalyptus private cloud software platform:
- EC2-compatible private cloud virtual machine management platform
- S3-compatible storage platform
- Eucalyptus end-user Web based GUI console
- Eucalyptus end-user and admin CLI tools
- Service of creating, managing, and cleaning up virtual machines and related resource artifacts (EBS volumes, virtual networks, etc.)
- Eucalyptus service troubleshooting and problem resolution
Additional required services:
- Data-center server, network, storage, OS installation system
- Physical machine health and status monitoring
- Automatic resource performance monitoring and load-balancing
- Virtual machine, storage, network performance optimization
- Linux Distribution OS software and configuration management
- Dynamic deployment topology/physical infrastructure re-configuration
The Eucalyptus cloud platform software that provides AWS-compatible infrastructure as a service must be integrated with standard data center configuration, management, and monitoring software for production use. Each Eucalyptus component runs as a Linux process that must be configured through both configuration files and run-time configuration parameters, and must additionally be monitored along with physical resource health and status characteristics. There are a variety of User Interfaces that are available for use with your Eucalyptus deployment, including those that are included as part of the Eucalyptus platform as well as third party API, command-line and graphical interface software that is AWS compatible.
While the Eucalyptus software does not currently include the deployment of configuration management or system health/status monitoring solutions itself, there are several third party solutions that existing production deployments rely upon to perform these functions.
Production deployments based on this reference architecture should include the use of a third-party configuration management system in order to ensure that Eucalyptus configuration is correct both for initial deployment as well as under cases where a particular Eucalyptus server and software must be re-deployed.
Several options exist, and here we list those which are produced by organizations who have partnered with Eucalyptus to provide high quality integrations.
- Ansible configuration management and orchestration tool (find examples here on Github)
- Puppet Labs configuration management system
- Opscode Chef configuration management system
For an example of how to use/integrate Eucalyptus with Puppet, please refer to the following resources:
In addition to automated/controlled configuration management, a production Eucalyptus deployment based on this reference architecture should also be monitored via a third party solution to watch the health and status of the deployment, as well as to notify the cloud administrator when unexpected conditions are occurring. Basic monitoring includes but is not limited to:
- Physical resource availability (network ping and/or ssh access to physical servers running Eucalyptus components)
- Physical resource load
- Physical resource faults (as indicated by Linux fault notification mechanisms)
- Eucalyptus component faults (please refer to the Eucalyptus Admin Guide for information on monitoring for Eucalyptus faults)
For an example on how to set up an integrated Nagios with Eucalyptus environment, please refer to the following resource:
There are several other solutions for monitoring physical and software components of a data center, and here we list those which are developed by Eucalyptus partners:
As an AWS-compatible platform, Eucalyptus offers both a variety of user interface tools as well as the option to use third party AWS-compatible interfaces that interoperate with AWS and Eucalyptus. For information on installing and using the interfaces that are included by default with Eucalyptus, please refer to the Eucalyptus Install, Admin and User Guides.
- Eucalyptus Admin CLI tools (included with Eucalyptus, see the Admin Guide, and Command-line Reference Guide)
- Euca2ools CLI Guide (included with Eucalyptus)
- Eucalyptus User Console Guide (included with Eucalyptus)
- Eucalyptus and Enstratius (included with Eucalyptus subscription)
There are many other AWS-compatible user interface tools targeted at specific feature sets that are compatible with Eucalyptus:
- s3cmd - for managing AWS S3 and CloudFront, and Eucalyptus Walrus services.
In addition to monitoring and managing the deployment's physical resources, application workload images and workflows must also be managed and configured. The Eucalyptus platform offers AWS-compatible APIs and services which allow external workload management systems to interoperate with AWS and Eucalyptus, and works to ensure that VM image environments between AWS and Eucalyptus are interoperable.
- Eucalyptus User Guide (see the Using Images section)
- Eucalyptus Starter Images
- AMI2EMI Project: AWS image to Eucalyptus image conversion tools
The reference architecture presented here is meant to encapsulate a bounded production Eucalyptus system. As with all use cases, there are variations that cannot reasonable be generalized, but we add here some comments and observations that will help to tune the individual use case variations to achieve efficient, stable performance within Eucalyptus.
- Keep individual system load low. If physical systems are over-provisioned with virtual machines (whether it be too many VMs running on a single system or few but resource intensive VMs that interfere with one another), the underlying operating system and Linux dependencies can become fragile and difficult to debug. Eucalyptus has many features that are designed to function even if the underlying system is underperforming and/or misbehaving, but it is always best to provide Eucalyptus and your workload environments enough resources to function smoothly.
- Consider bottlenecks. When designing a deployment, deciding on capacity to be provided to your applications and making capacity and performance hardware decisions, it is best to consider the data paths that Eucalyptus either provides or works in concert with at run-time. Please refer to the Datapaths series of diagrams to aid in identification of potential shared resource bottlenecks.