Creating a private cloud means choosing the right cloud software. To do this, you need to take into account business goals as well as compatibility issues with existing virtualization technologies and future cloud plans.
Most companies look to private cloud as an extension of public cloud services. Hybrid cloud -- bridging at least one public cloud with at least one on-premises private cloud -- creates a more elastic set of resources on which to run applications. Many enterprises’ hybrid clouds will connect with Amazon EC2, so choosing a cloud platform comes down to compatibility. Open source IaaS vendors Eucalyptus and OpenNebula use the same management APIs as EC2, which can facilitate the public and private cloud link.
To make your private cloud efficient, all servers in the cloud's resource pool should be compatible; servers should use the same virtualization software, run on comparable hardware and have similar virtual machine (VM) configurations. If a private cloud's virtualized servers are divided into small systems, resource assignment won't be efficient and the cloud likely won’t offer any benefits over simple virtualization.
To make your private cloud efficient, all servers in the cloud's resource pool should be compatible.
But not all virtualization platforms are compatible with cloud software. If your company uses only one virtualization platform, and that platform doesn’t work with the cloud software selected or doesn't support all applications or guest OSes, you may need to change it. Xen and its various flavors are supported by several cloud software providers, which means there's more user experience to draw on and more tools support Xen-based clouds. KVM and Microsoft Hyper-V are also widely supported as is VMware, though some VMware products have little community support.
If you use more than one virtualization platform, choose a cloud vendor that supports all applications and guest OSes you run as well any new ones you expect to operate in the IaaS environment.
Why cloud apps could dictate IaaS options
A growing number of companies choose to build cloud-specific applications instead of moving existing apps to the cloud. This gives them more cloud software options within IaaS platforms, such as OpenStack, Eucalyptus, OpenNebula, Red Hat and VMware, as well as specialized cloud platforms.
Hadoop, an architecture based on a network-distributed data model, is the most popular specialized cloud platform. It allows cloud apps to pull data from several locations rather than from a central point.
OpenStack is highly tolerant of underlying virtualization packages, OpenNebula is less so and Eucalyptus falls somewhere in between. Matching Hadoop with virtualization software may require additional planning and pilot testing. Hadoop doesn't dictate the use of virtualization in its nodes, so it won't provide specific guidance on making it work.
Among the private cloud software products designed to exploit virtual data center resources, OpenStack seems to have the most momentum. Its developer activity is particularly strong in the area of creating a fusion of development and cloud operations, or DevOps. This could be a critical benefit in creating new-for-the-cloud applications, but it will also likely enhance your ability to manage existing apps in private and hybrid clouds. Even businesses that elect to use a different cloud platform may want to look at these emerging tools to see if they support existing cloud choices.
VM resource pools are a powerful and versatile way to support IaaS models, but they're not the only way. Other strategies that use OS-level virtualization may be best for some applications. This is particularly true when the goal is to use a private cloud for applications specifically mapped to the cloud.
Tom Nolle is president of CIMI Corporation, a strategic consulting firm specializing in telecommunications and data communications since 1982.