Open source is often touted, as it gives IT environments control of their own code and a community of support. Open source also liberates customers from licensing costs and provides customization and flexibility. The world of open source infrastructure-as-a-service (IaaS) has two prominent players: CloudStack and OpenStack. Both offer options for turning an IT infrastructure into a cloud platform capable of quickly adapting to changing business requirements.
Both CloudStack and OpenStack offer an open source software platform for IaaS. Both systems will provide orchestration tools for provisioning services and managing network, compute and storage resources. Both platforms come with significant backing from major IT vendors, and both have support for Amazon API calls, allowing for hybrid clouds or Amazon-hosted private clouds. For a complete feature comparison of Amazon API compatibility, visit OpenStack.org.
OpenStack was originally developed by NASA and Rackspace, and is also backed by the likes of IBM, HP and Dell. It's a series of three core projects that can be used to build a private cloud platform: Compute, Object Storage and Image Service. These three projects provide the base for managing virtual servers, storage and machine images. The core projects do not provide a self-service portal, but there are OpenStack-incubated projects that do.
OpenStack provides full hypervisor support for KVM and Xen, with limited support for Microsoft Hyper-V, Citrix Xen Server, VMware ESX and others. Persistent storage is provided using OpenStack Object Storage to manage the local disk on compute node clusters. Lastly, machine images of various types (including Raw, VHD, VDI, VMDK and OVF) are managed through the OpenStack Image Service.
OpenStack is deployed via the various core and incubator projects, and as such requires time and know how to get up and running. The upside of this is that users can choose which projects/features are required. Various installation packages are available for the separate projects.
With networking being a critical competent of private cloud architecture, the Quantum incubation project is quite interesting. Quantum is an extensible API driven tool for building and managing networks.
CloudStack has been around since 2009 and is implemented in more than 100 production clouds (including GoDaddy, KT and Tata). It's governed by the Apache Software Foundation and supported by Citrix and about 50 other technology partners. Unlike OpenStack, the CloudStack installation is very streamlined and well documented. The CloudStack open source code was acquired by Citrix with the Cloud.com acquisition and released as open source. This gives CloudStack a head start as it was already software being used in production.
CloudStack is designed for massive scalability and centralized management, allowing tens of thousands of geographically distributed servers to be managed from a single portal. CloudStack software works with a variety of hypervisors, including Oracle VM, KVM, vSphere and Citrix XenServer, with Oracle VM being a key differentiator from CloudStack. Another differentiator is support for bare-metal servers. Additionally, CloudStack supports multiple networking models, such as OpenFlow, VLANs and flat networks.
Overall, CloudStack is better packaged for enterprise adoption, especially in environments not already familiar with open source. Its installation packaging and customizable admin/end-user portal are designed for quick, scalable adoption of the private cloud. OpenStack, on the other hand, can be best described as a foundation or framework for cloud computing, not nearly as polished. That being said, OpenStack currently has a deeper pool of open source contributors actively participating. CloudStack comes with a more refined product and heavy user adoption, while OpenStack comes with a strong set of contributors.
Disclaimer: This post is not intended as an endorsement for any of the vendors/products.