The increased cloud focus in Ubuntu Server
You might have noticed an ever increasing focus on cloud computing in Ubuntu Server development over the last cycles. At the last Ubuntu developers summit, we even renamed the Server track to “Cloud and Server”. It’s because we believe that cloud is the future of computing. We think it’s just a question of time until traditional workloads migrate to public and private clouds.
If you are still confused by the buzzword “cloud”, I recommend that you watch Simon Wardley’s presentation, or read Matt Zimmerman’s blogpost, as an introduction to this post. I think the most important part of the different cloud services is IaaS (infrastructure as a service) since it is the building block upon which every other cloud service is, or will be, based. That’s where open source has the most important role to play today.
It’s a fast-moving landscape, and Ubuntu is in a unique position to conquer mindshare. While the usual “enterprise” distributions struggle to adapt an existing product-oriented approach to the cloud paradigm, and while the purely community-driven distros struggle to dedicate resources to that “leap of faith” into cloud computing, Ubuntu Server can leverage an aggressive 6-month release cycle to make cloud computing a reality today, something you can use, rather than something you can just talk about.
So Canonical’s strategy around Ubuntu Server is to make it the technology of choice for using and building IaaS. Make it shine as a cloud infrastructure provider (on the host side) and as a cloud image (on the guest side).
Ubuntu Server as the cloud
The first (and only) open source solution for setting up an IaaS infrastructure was Eucalyptus, and Ubuntu Server was the first distribution to package it, and the only distribution to integrate it directly in a larger solution, UEC (Ubuntu Enterprise Cloud). UEC integrates an IaaS technology (Eucalyptus) with the rest of the Ubuntu Server distribution (installer, automatic registration of components…) for a seamless user experience. Using UEC, you can set up a minimal cloud with two machines, 20 minutes and 5 installer questions. This was an outstanding achievement, and it put Ubuntu Server in the very center of that nascent ecosystem, as the only distribution that was actually usable out-of-the-box to do cloud computing.
In order not to lose this position, we need to closely monitor the open source cloud ecosystem as it matures, and make sure we always provide the best technology available to our users.
Ubuntu Server in the cloud
This second objective is even more important. For the last few releases, Ubuntu Server has been officially distributed as a downloadable ISO, but also as ready-to-use AMIs in Amazon’s public cloud, and as a ready-to-register tarball for UEC clouds. This resulted in a majority of cloud instances running Ubuntu Server, and we need to keep improving our cloud images to keep that leadership position.
For Maverick, we introduce more boot-time configuration options and the possibility to upgrade kernels in images without rebundling. We also work on several typical cloud workloads (Hadoop, Terracotta, Cassandra…) to make the software that is used in a cloud setting more easily available.
If you want to test the latest, we publish daily Maverick builds to Amazon EC2 at http://uec-images.ubuntu.com/maverick/current/ !
For the future, we should provide ready-to-use cloud images for more types of public clouds, so that the official Ubuntu Server cloud images becomes ubiquitous in the cloud, and the default choice for everyone. We also need to be more proactive and involved in the Ubuntu Core boot process, so that it takes more into account the needs of server and cloud boot.
And traditional servers ?
As we focus on those two objectives, traditional workloads on traditional servers may get less attention. However it’s very important for us to deliver an optimal experience for those traditional use cases, so we must make sure that the Ubuntu Server community in general is organized to achieve that. It’s hard to be a specialist in all “server” areas though, so we are trying to create subcommunities of specialists in specific areas, like “SQL databases”, or “directories”. The success story here is our High availability group, which regroups people knowledgeable in that specific area and maintains a great and integrated user experience for people wanting to do cluster computing on Ubuntu Server.
We are also collaborating even closer with Debian: make our best to merge the Ubuntu delta into the Debian packages, participate in the maintenance of key packages directly in Debian and sync back to Ubuntu, and encourage Ubuntu server developers to become Debian maintainers. For example, for the new tomcat6 features in Maverick, rather than doing them in Ubuntu, I committed them in the Debian package and synced it back to Ubuntu. This is beneficial to everyone: Debian gets the new features early, we get wider testing and we defragment our maintenance effort.