Ubuntu Server Aims to Own the Cloud
While Linux-based operating system Ubuntu has been closely associated with the desktop, the project's server variant has grown more prominent in recent years, particularly in the context of cloud computing.
With a lack of any license fees and a focus on cloud features from its primary sponsor, Canonical, Ubuntu has flourished in the cloud, becoming a popular guest operating system on Amazon EC2 and other infrastructure-as-a-service (IaaS) options, and the reference OS of choice for the OpenStack and Cloud Foundry projects.
Based on my tests of Ubuntu Server 11.10, the project's cloud-attractiveness shows no sign of abating. The new version, which shipped alongside its desktop-oriented sibling this week, is packed with tools for building, orchestrating and running on clouds, both private and public.
Version 11.10, also known as Oneiric Ocelot, is one of the project's fast-moving, short-support-term releases, and includes more than a few rough edges in its new features, which I hope to see smoothed out for the next Long Term Support (LTS) edition of Ubuntu, set to arrive in the spring.
In particular, I found lacking the documentation for 11.10's key new features, such as for deploying OpenStack private clouds. For now, most Ubuntu private-cloud documentation refers to the now-deprecated Ubuntu Enterprise Cloud feature based on Eucalyptus' open-source EC2 workalike.
With that said, Ubuntu Server 11.10 has me looking forward to the spring's LTS version, and I've been impressed enough with the current state of its management tools to keep an instance of it running in our lab to help with server and middleware installs for our tests. For production purposes, I recommend sticking with the previous LTS edition of Ubuntu Server, version 10.04.
Ubuntu Server 11.10 is available for free download here, in separate versions tailored for the x86 and x86-64 processor architectures.
Ubuntu Server in the Lab
I tested Ubuntu Server 11.10 on a white-box server powered by AMD Opteron 4000 series processors on Amazon EC2 and on a handful of VirtualBox virtual machines (VMs) running on my desktop. I used that handful of VMs to test Ubuntu Server's automatable network-installation toolkit, Orchestra, following along with the tutorial here.
Orchestra brings together a few pre-existing open-source projects, chiefly the Cobbler installation and Nagios monitoring servers, to provide an automated way of deploying Ubuntu servers on bare metal or VMs. Ubuntu wraps these components into a single install command; I was able, in short order, to bring up an Orchestra server and install a managed Ubuntu instance via PXE boot.
Next, I turned my new Orchestra server toward a pairing with a second new system deployment feature in Ubuntu Server, JuJu, a facility aimed at streamlining the process of deploying multi-component workloads. For instance, a Wordpress blogging instance is comprised of database and Web server components. JuJu enables administrators to store the deployment steps for particular components for fast, consistent reuse in recipes called Charms.
The process for deploying services with JuJu call to mind the procedures for using a platform as a service (PaaS). Deploying Wordpress, for instance, involves deploying database and Wordpress application components, and then adding a relation between them.
I set up JuJu environments for Amazon EC2 and for the Orchestra server I'd set up. The EC2 process is better-documented (and simpler overall, as Amazon handles the VM provisioning parts of the process), but after spending a few hours debugging my Orchestra-JuJu installation, I was able to deploy services on that foundation as well.
As it stands now, JuJu is a fairly server-hungry affair-a simple Wordpress installation requires three servers: one for the MySQL database, another for the Web server and a third for controlling the JuJu environment. Work is underway to use JuJu alongside the Linux Container (LXC) functionality built into Ubuntu Server. LXC, which is similar to the Solaris Containers feature, provides a way to divvy up a single VM or physical machine among OS instances that are lighter-weight than a full VM.
Also on the cloud computing track, I tested Ubuntu Server's OpenStack private cloud functionality by installing a single-node OpenStack deployment in our lab. The install went smoothly, although not quite as smoothly as with my OpenStack tests with the purpose-built StackOps distribution earlier this year. I missed the StackOps configuration helper, particularly when setting up the networking for my private cloud.
In my search for OpenStack on Ubuntu Server documentation, I noticed references both to installing OpenStack via JuJu and via Orchestra. In addition to the fuller documentation I'd like to see in place before the Spring LTS release of Ubuntu Server, I hope to see a simpler OpenStack installation option made available. Ubuntu's earlier Eucalyptus-based effort benefited from an install disc menu option for spinning up a new cloud-it'd be great to see a similar option for OpenStack.
The most mature element of the Ubuntu Server cloud-computing feature list involves the product's suitability as a guest OS for cloud or virtual environments. For Amazon EC2 users, there's a handy AMI locator for finding Ubuntu images in the version and regional zone one desires, and the cloud images available here work well within most virtualization platforms.
Ubuntu Server is also the reference OS for VMware's Cloud Foundry project, and the client packages required for using Cloud Foundry are now available in the 11.10 repositories. The server packages for Cloud Foundry haven't yet made their way into the release's official repositories but are available in a Personal Package Archive (PPA) here.