Ian Hardenburgh offers an overview of the open source CloudStack solution that allows you to build and manage a highly available and scalable cloud computing platform, now licensed under ASL 2.0.
If you're not one for waiting around until the ongoing debate concerning which cloud strategy (public, private or hybrid approach) is settled, and just want to take your chances and delve right into creating your very own IaaS (Infrastructure as a Service), CloudStack could be an open source solution for you. Acquired back in July of 2011 by Citrix, it looks as if its overseers are moving its code base to the Apache Software Foundation -- a move that will certainly garner it even more community support than it already has. However, don't feel as if you have to wait until the software gets pushed through the Apache Incubator in order to take immediate advantage of the project, as it is already licensed under ASL 2.0 and available for full download from SourceForge.
CloudStack allows you to build, manage, and deploy multi-tenant compute environments by way of a web-based interface, command line, or even through its RESTful API, both in public and private data center type settings. To oversimplify, CloudStack is a software tool for assembling a cloud computing service similar to Amazon EC2, to scale. In fact, depending on your users' workload requirements, you can deploy any number of hypervisors that you feel are best suited for such scalability. Some of the more well-known hypervisors available for deployment include Citrix XenServer, KVM, vSphere and/or Oracle VM. However, for your CloudStack users, any stack you look to provide is obscured into an on-demand and easy-to-use portal.
There are four primary components to CloudStack: the CloudStack management server, virtualized hosts, primary storage facet (what might be more universally known as the virtual machine disk files), and the secondary storage -- essentially the volume where you keep your ISO template images and VM snapshots. Hardware-wise, in order to run the management service and virtualized hosts, you'll need at least a combined 6GB of memory, 110GB of disk storage split between two separate 64-bit x86 CPU machines running a predetermined set of operating systems, namely RHEL/CentOS, Fedora 14, Ubuntu LTS and Citrix XenServer. An NFS storage appliance or Linux NFS server of no less than 100 GB is also needed to handle secondary storage.
The applications for CloudStack are limitless. Whether you're looking to commercialize an on-demand private cloud service, create development and/or testing environments on the fly, or simply looking to better manage CPU, memory, network, and storage resources, its cost-saving capabilities can be rendered priceless. CloudStack is also an extremely good choice if you're looking to design a high volume web infrastructure, since web servers can be geographically situated and made highly available for failover type schemes. Additionally, as with any virtualized data center or public cloud service, CloudStack is a great means to reduce cooling and power costs, as well as providing the means to scale up/scale down your infrastructure as needed and easily adjust to meet with unforeseen peaks in user demand.
See a complete list of features you can utilize to wholly manage your new cloud computing platform with CloudStack here.