Until recently, the open source cloud platform race was easy to keep track of: In 2008, it was a one-horse race with OpenNebula available under the Apache License; a year later, the GPLv3-licensed Eucalyptus joined in. Again, a year later, the OpenStack project was initiated by Rackspace, which has been the subject of increased media attention recently. In summer 2011, just two months after taking over cloud provider Cloud.com, Citrix also put its cloud management platform CloudStack  under the GPLv3.
The handover of the project from Citrix to the Apache Foundation in April 2012 was accompanied by a change in the license for the CloudStack platform to the Apache 2 license, while Citrix still remained the main sponsor. According to Citrix, the license change was meant to bring about the fastest possible dissemination of "open, interoperable cloud computing." To meet all of the Apache Foundation's requirements, numerous licenses went through checks, and other formalities had to be met. Thanks to the tremendous rate of development work, efforts were rewarded with the promotion to top-level Apache project .
Now, you have four open source Infrastructure as a Service (IaaS) solutions from which to choose, each with a different emphasis. The underlying technology (hypervisors), standards, and interfaces largely overlap, as do the supporters and sponsors involved. For example, along with Citrix, Microsoft, IBM, AMD, Google, Yahoo, and Facebook are backing CloudStack. CloudStack support from Microsoft is interesting, in that CloudStack will in future support Hyper-V, in addition to the Citrix Cloud Platform, Oracle VM, VMware (vSphere), KVM, and XenServer hypervisors.
The Citrix contribution to OpenStack seems strange because, within the company, the commitment to CloudStack is clear, at least since the Apache license change. Their commercial cloud platform  is also based on CloudStack, which is aimed primarily at commercial competitors and already offers support for vSphere and Oracle VM; the current version also supports bare metal provisioning. However, Citrix had previously introduced vSphere support into OpenStack.
OpenStack, which was launched by Rackspace and NASA and implemented in Python, supports the KVM and Xen hypervisors. Support for Hyper-V, which was implemented temporarily, had to be removed early last year because Microsoft had not maintained the code. Besides Citrix, Canonical, SUSE, Dell, HP, AMD, and Intel also support the project. Early in 2012, IBM and Red Hat joined in.
The OpenStack Dashboard introduced a web interface to supplement the REST API some time back. The Django-based implementation by Canonical goes by the name of "Horizon." Interestingly, the REST API in OpenStack can also be controlled via the Eucalyptus command-line interface. One famous user of OpenStack is Deutsche Telekom, who used it to implement a new "Business Marketplace" last year .
The OpenStack version "Folsom," available since last September, was replaced by the current seventh release, OpenStack "Grizzly," shortly before the editorial deadline for this issue; it now also supports bare metal provisioning (for more details, check out the OpenStack article in this issue). The biggest shortcoming of OpenStack is the lack of an interface to AWS out of the box, although third-party solutions, such as Canonical's AWSOME (Any Web Service Over Me), are available.
The two older IaaS solutions, Eucalyptus and OpenNebula, are the result of research projects. Eucalyptus, which was created at the University of California stood out from the competition from the beginning, thanks to its compatibility with Amazon Web Services (AWS) and EC2 S3. The current version is still 2.0.3 from 2011. It is worth mentioning that version 1.5 of Eucalyptus was officially integrated into Ubuntu and used as the foundation of Ubuntu Enterprise Cloud (UEC). Meanwhile, however, Ubuntu favors OpenStack. Eucalyptus has also been included in Debian GNU/Linux since version 1.6.2.
Supporters of Eucalyptus, in addition to Amazon, are Dell, HP, Intel, Novell, Red Hat, and Ubuntu. The strength of Eucalyptus is API compatibility with Amazon's EC2 platform. Admins can set up a test system composed entirely of free software for evaluating EC2. Furthermore, companies that are already AWS customers can integrate Eucalyptus into their own development projects before they go online in the Amazon cloud. Eucalyptus' reputation among experts, apart from the integrated Ubuntu version, is that it is not trivial to install or configure.
OpenNebula version 3.8 was released December 2012 and can point to a large number of installations in its nearly five years of history. Prominent supporters include IBM, Dell, and SAP. The OpenNebula developers also put great emphasis on interoperability and open standards. The supported hypervisors, include Xen, KVM, and VMware, and Hyper-V will be added in the near future.
OpenNebula is just as versatile when it comes to cloud APIs: It supports EC2, EBS, OFG, OCCI, and vCloud. The complete architecture is very flexible, making it easy to operate completely different hardware and software combinations in the data center. As of version 3.6, developers can offer prebuilt appliances via the OpenNebula Marketplace. The most prominent user of OpenNebula is CERN.
CloudStack and Citrix
The four open source IaaS solutions can draw on a number of commercial public/private cloud offerings: AWS, vSphere/vCloud, Windows Azure, Oracle VM, Red Hat, Rackspace, and the CloudStack-based Citrix Cloud Platform. It is interesting to note that open source solutions are leading the way in cloud computing. However, on closer inspection, this is not surprising because no other type of software depends to the same extent on interoperability and open standards. An interesting classification of cloud-based computing models can be found on the OpenNebula blog  (see Figure 1).
If you believe the statements of the respective communities, CloudStack is the fastest growing cloud management platform. The approximately 30,000 community members to date, is a clear message. Citrix also cites several thousand certified apps and several hundred productive clouds.
According to Citrix, more than 50 well-known companies and organizations rely on CloudStack or the Citrix Cloud Platform, including GoDaddy, Nokia, Intel, Zynga, RightScale, PuppetLabs, Juniper Networks, Enstratus, TrendMicro, and Equinix. Brand name users such as ServiceMesh, Engine Yard, and RightScale already welcomed the change to the Apache License about a year ago.
According to Citrix, the change from OpenStack to CloudStack mainly came about because of CloudStack's compatibility with Amazon, in that the Cloud API was a must-have. This is also why Citrix abandoned its own OpenStack-based cloud distribution, "Olympus," and committed itself to CloudStack.
What's New in Version 4.0 and 4.0.1
Version 4.0 of CloudStack from last November contained numerous innovations that justify its promotion to an Apache top-level project, including inter-VLAN routing (Figure 2), site-to-site VPN, and tags.
Inter-VLAN routing makes it possible to control the network traffic between VLANs – a requirement for building private clouds. The site-to-site VPN function helps circumvent the establishment of VPN connections between individual virtual machines and establish a secure connection between the corporate network and a cloud infrastructure. The new tags feature lets users save metadata for cloud resources to facilitate categorization. CloudStack's biggest advantage over previous versions is that it includes the new version of Amazon's API, CloudBridge , whereas the component previously needed to be installed separately. The current 4.0.1 release from February of this year, however, is purely a bug fix release.
CloudStack is a platform for building and managing scalable infrastructures and is written entirely in Java. You will find detailed instructions for administration, installation, and API development on the CloudStack site . Currently, CloudStack supports commercial hypervisors from Citrix, VMware, and Oracle, as well as XenServer and KVM.
CloudStack provides three interfaces from which to choose: web, command line, and the REST API. The CloudStack architecture consists of several components. The Compute Controller controls computing power, the Network Controller controls the virtual networks, and the Storage Controller takes care of the Block Storage management.
The three basic components can access the underlying physical hardware directly. The CloudStack Orchestration Engine, in turn, relies on these components to control the cloud infrastructure. The Cloud Stack API accepts commands from the web interface or the command line via REST and forwards them for processing to the Orchestration Engine. The web interface is a modern, Ajax-based web GUI, which greatly simplifies the management of the cloud infrastructure stack. The GUI visualizes components such as CPU, storage, IP pool, and memory in real time.
In recent weeks and months, the OpenStack project has enjoyed plenty of attention in the media. What is missing in OpenStack, however, is direct AWS support. In contrast, the younger CloudStack project offers AWS support, having been emancipated last year by Citrix, and has established itself as an Apache top-level project.
CloudStack is the undisputed leader not only in terms of supported cloud APIs but also in terms of supported hypervisor platforms, including Hyper-V in the near future. Additionally, CloudStack supports the Citrix Cloud Platform and VMware. The Java software is more coherent than OpenStack and, besides the command-line interface and the REST API, includes an attractive web interface out of the box.In terms of flexibility, CloudStack is thus the top-ranking open source IaaS system, at least in theory.
However, whatever solution you ultimately decide to use, you cannot rely on theory alone. In cloud computing more than anywhere else, it is a definite advantage for a solution to have a high degree of openness. You can find a very readable discussion of this aspect in a posting on the Open Nebula blog .