Exploring Ubuntu cloud tools
When Canonical released Ubuntu 9.04 a couple or years ago, they took their first step into the rapidly growing business of cloud computing. As I write, Ubuntu's Natty Narwhal, release 11.04 is just around the corner, and Ubuntu Enterprise Cloud Services (UEC) is an increasingly important and maturing part of Canonical's business.
With Ubuntu 11.04 "Natty Narwhal," Canonical will be including the latest OpenStack cloud management software in its repositories. This has led to speculation by some that Canonical is abandoning Eucalyptus in favor of OpenStack, the RackSpace/NNASA project that has been rapidly growing in popularity. It's not that unusual for Ubuntu, or other distributions for that matter, to include and support new and promising technologies in their releases and this is true with Ubuntu and OpenStack.
At this time, and certainly for the near future, Ubuntu is still very much behind Eucalyptus Systems, their partner in Ubuntu Enterprise Cloud. OpenStack is a newer and certainly an exciting product, but Eucalyptus, whose APIs are built on Amazon EC2 (and soon, EC3), is more mature. Indeed, Eucalyptus tools are used by OpenStack as well. Trying to decide when, or if, Ubuntu Enterprise Cloud will choose to align itself with OpenStack rather than Eucalyptus is pure speculation and anybody's guess. My guess is that Canonical likely will offer both.
At the core of UEC is the Eucalyptus cloud computing framework from Eucalyptus Systems, an open source implementation of the Amazon EC2 API (but see the "OpenStack Developments" box). Amazon's EC2 continues to be one of the most popular cloud computing services; consequently, Ubuntu Enterprise Cloud and Eucalyptus play well with EC2 and can take advantage of Amazon's resources as well. I mention the latter because Canonical and their partner Eucalyptus, are encouraging the implementation and management of private clouds, allowing companies to use resources that may be sitting idle, thereby saving money on hardware and additional physical resources. When needed, however, your private cloud can reach out and grow into Amazon's public cloud.
The name "Eucalyptus" is an acronym for Elastic Utility Computing Architecture Linking Your Programs To Useful Systems – possibly one of the longest acronyms in an industry that loves acronyms. Eucalyptus cloud services works with both the KVM and Xen virtualization frameworks, but since Ubuntu supports KVM, I'll concentrate on this virtualization option in my examples.
Ubuntu Enterprise Cloud is a set of management tools (created by their partner, Eucalyptus Systems) that let you view all those bits of hardware as a single set of resources. Eucalyptus knows where to deploy virtual machines in this set of resources using a cluster controller (a cluster is a collection of machines). The cloud "knows" about node-level resources, and the node controllers (running on the machines that make up the cluster) report this information. Eucalyptus is about rapid, and relatively pain free, deployment and management of virtual machines in your private cloud.
Cloud Computing Explained
A cloud is just a fancy word for somebody else's network or network resources. Those resources generally refer to all the servers (or hardware) that an organization owns. That means processors, memory, and so on. Of particular importance, if you're going to deploy virtual machines, is disk space. Your network might not be on par with Google or Amazon, but many organizations have plenty of extra hardware and spare CPU cycles. Hence, the interest in private clouds.
Generally two types of people use computing resources. Users don't care where all this magic takes place, so long as they can do their work without having to wait on the machine. Admins care deeply about where these virtual machines live, and, of course, they probably want individual node control.