Cloud computing remains one of the hottest topics in IT today given the promise of greatly improved efficiencies, significant cost savings, scalable infrastructure and high performance and secured data storage.

Choosing the appropriate cloud platform, however, can be difficult. They all have pros and cons. So, when a customer asked me and my colleagues at Altoros Systems, a software product development company, what would be the best cloud platform for his project and why, we decided to take a deep look at the most notable systems available, compare their capabilities, and summarize the findings in a product-by-product table. We tested CloudStack, Eucalyptus, vCloud Director and OpenStack.

Below you will find information on features available in free and commercial versions of the cloud platforms, their price, documentation completeness, and community matureness. In addition, the errors found during the deployment process are addressed by detailed instructions on bug fixing. (Please note that by the time the research is published the products may be updated by the vendors.)

The goal of this unbiased comparison is to help you align your business requirements with the capabilities of a particular cloud system and -- finally -- select the best-fit product.

CloudStack 3.0.0

CloudStack is a console for managing data center computing resources. A number of well-known information-driven companies, such as Zynga, Nokia Research Center and Cloud Central, have deployed clouds using CloudStack. Apart from having its own API, the platform supports CloudBridge Amazon EC2, which enables converting an Amazon API into a CloudStack API. You can find a detailed list of the supported commands here.

Main features:

- Hypervisors agnostic (KVM, XEN, ESXi, OVM and BareMetal)

- Roles (assigning and managing permissions)

- Virtual network (VLAN support)

- Resource pool (enables administrators to limit virtual resources, for example, the number of virtual machines that can be created by one account, the number of public IP addresses assigned to an account, etc.)

- Snapshots and volumes

- Virtual routers, a firewall, and a load balancer

- Live migration with host maintenance

If your data center is based on vSphere, CloudStack will use a vCenter API. This means that you will be able to manage your data processing center that has been dynamically deployed using vSphere 4.1.

Price: CloudStack is distributed for free under the GNU Public License v3. To get paid support, you should contact its developers via email.

Community: There is an online community ready to provide timely technical support for free. You can find solutions to many CloudStack issues on the Forum. There is also an IRC channel where everyone is welcome to ask questions.

Documentation: If you have a basic technical background, it will be rather easy for you to install the CloudStack platform with default settings. If a more complex and complicated installation is required, you might experience some challenges, as the documentation does not cover complex issues in full. The manual gives step-by-step instructions but does not provide any information on how the platform functions in general.

Experience: We have performed installation, configured the system, and tried VMware as well as KVM clusters. CentOS 5.5 and CentOS 6.2 were used for the hosts. In addition, our engineering team connected our private cloud deployed with CloudStack to the RightScale management console. The platform was easy to install and performed as expected.

Possible issues and bug fixes: Some errors in running libvirtd may arise when using CentOS 6. The problem can be solved by adding the following code to /etc/cgconfig.conf:

group virt {

cpu {

cpu.shares = 9216;

}

}

After entering the code, restart /etc/init.d/cgconfig and launch libvirtd.

Using the console on a website may also cause some problems. One of them is that the vnc server uses 127.0.0.1 as the default address for the hosts. To check this, execute the following command:

netstat -nlp | grep kvm

tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 11673/qemu-kvm

tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 11872/qemu-kvm

tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 15227/qemu-kvm

tcp 0 0 0.0.0.0:5903 0.0.0.0:* LISTEN 12587/qemu-kvm

In case the address is 127.0.0.1, you should uncomment the vnc_listen = "0.0.0.0" line in the configuration file:/etc/libvirt/qemu.conf and restart the virtual machines.

Conclusion: Working with CloudStack management console has made a rather positive impression on our engineering team. This is a rapidly developing tool that provides broad functionality and is available for free. It may be employed for production but, if you use VMware hypervisors, vCloud Director seems like a better choice.

Eucalyptus Open Source 2.0.3

Eucalyptus is another popular cloud platform. Sony, Puma, NASA, Trend Micro and other companies have chosen it to deploy their private clouds. Eucalyptus has a free version and a commercial edition. Obviously, the commercial edition comes with much more extended functionality.

One of the greatest advantages making this platform truly convenient to work with is that the Eucalyptus API is fully compatible with the Amazon API. As a result, all the scripts and software products based on the Amazon API can be easily employed for your private cloud. Eucalyptus supports three hypervisors: XEN, KVM and ESXi. The last one is only available to the users of the Enterprise Cloud edition.

Community: Like any other open-source product, Eucalyptus has a powerful community that contributes to platform development and assists in finding and fixing bugs. We did not experience any difficulties when installing and configuring this product, so we cannot comment on how helpful the community is. Anyway, they did a great job developing the product.

Documentation:Product documentation covers the installation process but does not provide much information on any other aspects of working with the software. A prospective user should have a strong technical background, because the guides provide no information on virtualization and become useless, if a more complicated configuration is required.

Experience: Our team installed the open-source version and configured the platform following the instructions provided in the documentation. We used CentOS 5.5 for the cloud controller and CentOS 5.5 together with XEN hypervisor for the hosts. Our cloud was successfully added to RightScale. There is no management console, so you have to either use euca2tools or combine Eucalyptus with RightScale. The commercial version of the product does have a management console, which makes it more user-friendly.

Possible issues and bug fixes:

1) Some of the dependencies failed to install in turns. As a solution to this, we installed them in a package at a time.

rpm -Uvh python25-2.5.1-bashton1.x86_64.rpm

error: Failed dependencies:

libpython2.5.so.1.0()(64bit) is needed by python25-2.5.1-bashton1.x86_64

(13)Permission denied: make_sock: could not bind to address 0.0.0.0:8774

no listening sockets available, shutting down

Unable to open logs

Failed to start the CC!

To solve this issue, Selinux should be disabled.

3) If you do not have sufficient experience with XEN, you may encounter some problems when using it. After the installation of XEN is completed, the value of the parameter default=1 should be changed to default=0 in this configuration file: /etc/grub/menu.lst to load XEN core.

4) It is also advisable to create a group called libvirt in CentOS and add the account used for running Eucalyptus to this group.

Conclusion: Though the open-source version of the product has a number of issues, there are simple workarounds. Furthermore, the commercial edition provides a broader functionality (VMware hypervisor tools, compatibility with Amazon AWS, AD and LDAP integration, etc.). Those who already have a virtual environment can enhance it with a Eucalyptus cloud instead of complete migration.

vCloud Director 1.5

vCloud Director is a platform for deploying clouds developed by VMware. The system enables building hybrid clouds and, if the entire infrastructure in your office is built using VMware products, you will have no difficulties with implementing vCloud Director. You can migrate your virtual machines between private and public clouds using VMware vCloud Connector.

Main features:

- Virtual data centers

- vShield security technologies

- Infrastructure service catalog

- Multi-tenant organizations

- Self-service portal

- VMware vCloud API, open virtualization format, and callouts

Price: Unfortunately, there are no free editions of the product. You have to contact a regional manager to find out the approximate cost of a package that would meet your requirements.

Community: VMware is one of the leaders in the market and has a very large community. There is also a rich knowledge base, which can be used as a free support service. The product comes with a support package and the company offers additional paid support on demand.

Documentation: Proprietary software usually comes with high quality documentation, and this platform is no exception. There will be no difficulties, if you carefully follow all the instructions provided in the guides.

Experience: We successfully installed and configured vCloud Director. It should be mentioned, that Red Hat is required in order to install this platform. Other things you will need for installation include vCenter (with clusters and DRS), and vShield.

Obviously vCloud Director uses the vCenter API. This means a user of vCloud Director has access to the full functionality implemented in vSphere.

Conclusion: This is a commercial product and that is a big disadvantage for some users. However, if you already use VMware for virtualization, vCloud Director will be the most appropriate choice.

OpenStack 2011.3

OpenStack 2011.3 is an open-source platform for deploying clouds. This project includes three products: Nova (an analog to Amazon EC2), Swift (an analog to Amazon S3), and Glance (an API server that provides discovery, registration, and delivery services for virtual disk images). In our research, we only used Nova, but you should pay close attention to Swift, which offers scalable object storage for petabytes of accessible data. OpenStack 2011.3 is supported by many vendors, including CloudStack 3.

Currently, Nova fully supports two hypervisors: KVM and XEN. The platform is being developed rapidly and soon will be provided with a broader functionality. The technology is popular among a large community of specialists and is backed by such companies as Cisco, Dell, NASA, Intel, AMD, Citrix, Rackspace, and RightScale. The core of this product is developed by NASA.

Main features:

- Ability to manage virtualized commodity server resources

- Ability to manage local area networks

- Virtual machine image management

- Security groups

- Role-based access control

- Projects & quotas

- VNC proxy through a Web browser

Price: OpenStack 2011.3 is open-source and can be downloaded for free. The project is developed by various contributors and exists mainly on user donations.

Community: In comparison to other products mentioned in this research, OpenStack seems to have the largest and the most active community. The community members are always willing to help others find solutions to any arising problems.

Documentation: However, OpenStack documentation is somewhat incomplete. Due to the rapid development of the product, the documentation fails to cover all the current issues and new features in time. Often you have to visit forums or use IRC to get the required information.

Experience: We have successfully installed and configured Nova, Keystone, and dashboard without any critical issues.

Conclusion: This open-source platform is free and is being developed very rapidly. It demonstrates a lot of progress, but still lots of development efforts are required before it can be used for production. OpenStack 2011.3 is already compatible with Amazon API and the dashboard project is currently under consideration.

Summary

If you decide to move your business to the cloud, one of the first tasks you will encounter is choosing a platform that will better fit your company's requirements. Though it may be hard to understand what stands behind the vendor's promises in marketing descriptions, I hope this article will help a bit. This research is the result of working with all of the cloud products and is not aimed at promoting any of the systems.

There is no silver bullet, and even the best cloud platform (if any exists) can hardly satisfy all of the demands and use cases. For a particular type of business, you need to investigate all the factors involved, define your typical tasks, calculate the risks, allocate a budget, and compare it against the platforms' capabilities and license costs. It will be a compromise, any way you look at it. The thing is to make sure you have made the best possible choice in the very beginning.