Apache CloudStack can be used to deploy a full-featured public or private IaaS cloud. You can use it to manage either a small private cloud containing a few VM hosts or a large-scale public cloud spanning several distributed regions and thousands of machines.
CloudStack is compatible with several hypervisors. This means that you can use it to manage an heterogenous network of VM host providers.
Acording to Apache, these are some of the features it provides:
- Works with hosts running XenServer/XCP, KVM, Hyper-V, and/or VMware ESXi with vSphere
- BareMetal (via IPMI)
- vSphere (via vCenter)
- Xen Project
- Provides a friendly Web-based UI for managing the cloud
- Provides a native API
- May provide an Amazon S3/EC2 compatible API (optional)
- Manages storage for instances running on the hypervisors (primary storage) as well as templates, snapshots, and ISO images (secondary storage)
- Orchestrates network services from the data link layer (L2) to some application layer (L7) services, such as DHCP, NAT, firewall, VPN, and so on
- Set up an on-demand elastic cloud computing service.
- Allow end-users to provision resources
CloudStack consists of the management server and the cloud infrastructure (resources to be managed). Inside the cloud infrastructure, the resources are grouped using the following terminology:
- Regions: A collection of one or more geographically proximate zones managed by one or more management servers.
- Zones: Typically, a zone is equivalent to a single datacenter. A zone consists of one or more pods and secondary storage.
- Pods: A pod is usually a rack, or row of racks that includes a layer-2 switch and one or more clusters.
- Clusters: A cluster consists of one or more homogenous hosts and primary storage.
- Host: A single compute node within a cluster; often a hypervisor.
- Primary Storage: A storage resource typically provided to a single cluster for the actual running of instance disk images. (Zone-wide primary storage is an option, though not typically used.)
- Secondary Storage: A zone-wide resource which stores disk templates, ISO images, and snapshots.
About the management server:
- Provides the web interface for both the adminstrator and end user.
- Provides the API interfaces for both the CloudStack API as well as the EC2 interface.
- Manages the assignment of guest VMs to a specific compute resource
- Manages the assignment of public and private IP addresses.
- Allocates storage during the VM instantiation process.
- Manages snapshots, disk images (templates), and ISO images.
- Provides a single point of configuration for your cloud.
Elastic scaling is one of the offered fetaures:
In a basic network, configuring the physical network is fairly straightforward. In most cases, you only need to configure one guest network to carry traffic that is generated by guest VMs. If you use a NetScaler load balancer and enable its elastic IP and elastic load balancing (EIP and ELB) features, you must also configure a network to carry public traffic.
For some hypervisors you can enable automatic elastic scaling, by speciyfing some performance indicator value thresholds.