Apache CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform. CloudStack is used by a number of service providers to offer public cloud services, and by many companies to provide an on-premises (private) cloud offering, or as part of a hybrid cloud solution.
CloudStack is a turnkey solution that includes the entire “stack” of features most organizations want with an IaaS cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI).
CloudStack currently supports the most popular hypervisors: VMware, KVM, Citrix XenServer, Xen Cloud Platform (XCP), Oracle VM server and Microsoft Hyper-V.
Users can manage their cloud with an easy to use Web interface, command line tools, and/or a full-featured RESTful API. In addition, CloudStack provides an API that’s compatible with AWS EC2 and S3 for organizations that wish to deploy hybrid clouds.
What’s good: It really does keep getting better. The latest release of CloudStack is actually pretty nice. The deployment is really smooth consisting of only one VM running the CloudStack Management Server and another to act as the actual cloud infrastructure. In reality, you could deploy the whole thing on one physical host.
The challenges: The first stable (maintenance) release of CloudStack came out around 2013 with 4.0.2; yet some still question the rate of CloudStack adoption. Even with some big advancements, some complain that the architecture and installation process – although simplified – still requires quite a bit of knowledge and time to deploy.
What’s new:4.1 (with 4.4.2 just released) sees improved security, hypervisor agnosticism, and advanced network-layer management. Also big updates revolve around:
- Improved Storage Management
- Virtual Private Cloud tiers can now span guest networks across availability zones
- Support for VMware Distributed Resource Scheduler
- Improved Support for Hyper-V Zones, VPC and Storage Migration
Feature and Functionality
Apache CloudStack is a Java-based project that provides a management server and agents (if needed) for hypervisor hosts so that you can run an IaaS cloud. Some, but not all, of the features and functionality provided by CloudStack:
- Works with hosts running XenServer/XCP, KVM, Hyper-V, and/or VMware ESXi with vSphere
- 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
- Accounting of network, compute, and storage resources
- Multi-tenancy/account separation
- User management
In short, organizations can use Apache CloudStack to deploy a full-featured public or private IaaS cloud.