Guest blogger Simon Wardley, a geneticist with a love of mathematics and a fascination for economics, is the Software Services Manager for Canonical, helping define future cloud computing strategies for Ubuntu. Simon is a passionate advocate and researcher in the fields of open source, commoditization, innovation, and cybernetics.
Mark Shuttleworth recently announced that the release of Ubuntu 9.10 will be code-named Karmic Koala. Whilst many of the developments around Ubuntu 9.10 are focused on the desktop, a significant effort is being made on the server release to bring Ubuntu into the cloud computing space. The cloud effort begins with 9.04 and the launch of a technology preview of Eucalyptus, an open sourced system for creating Amazon EC2-like clouds, on Ubuntu.
I thought I’d discuss some of the reasoning behind Ubuntu’s Cloud Computing strategy. Rather than just give a definition of cloud computing, I’ll start with a closer look at its underlying causes.
The computing stack is comprised of many layers, from the applications we write, to the platforms we develop in and the infrastructure we build upon. Some activities at various layers of this stack have become so ubiquitous and well defined that they are now suitable for service provision through volume operations. This has led to the growth of the ‘as a Service’ industries, with providers like Amazon EC2 and Force.com.
Information Technology’s shift from a product to a service-based economy brings with it both advantage and disruption. On the one hand, the shift offers numerous benefits including economies of scale (through volume operations), focus on core activities (outsourcing), acceleration in innovation (componentisation), and pay per use (utility charging). On the other hand, many concerns remain, some relating to the transitional nature of this shift (management, security and trust), while others pertain to the general outsourcing of any common activity (second sourcing options, competitive pricing pressures and lock-in). These concerns create significant adoption barriers for the cloud.
At Canonical, the company that sponsors and supports Ubuntu, we intend to provide our users with the ability to build their own clouds whilst promoting standards for the cloud computing space. We want to encourage the formation of competitive marketplaces for cloud services with users having choice, freedom, and portability between providers. In a nutshell, and with all due apologies to Isaac Asimov, our aim is to enable our users with ‘Three Rules Happy’ cloud computing. That is to say:
- Rule 1: I want to run the service on my own infrastructure.
- Rule 2: I want to easily migrate the service from my infrastructure to a cloud provider and vice versa with a few clicks of a button.
- Rule 3: I want to easily migrate the service from one cloud provider to another with a few clicks of a button.
So how do we go about creating freedom and competitive marketplaces? The often cited ideal is the electricity industry because of the ease with which consumers can switch between utility providers. However, these providers all offer the same output; the electricity service is standardised. Furthermore we have no relationship to our utility electricity provider and we shouldn’t have to rewire our home just because we have switched.
In cloud computing we do have a relationship with our provider, in the form of our data, code, and meta-data. These will all have to be migrated if we switch between utility computing providers. By the same token we will need the output to be the same, so providers must offer the same interoperable service. The cloud computing industry must standardise the output of various layers of the computing stack for this to happen.
Naturally, more standards should emerge in the application space because there are more types of applications than infrastructure. However, if we want co-operation between providers then no single provider can ‘own’ any of these developing standards.
In the software world this means that emerging de facto standards are likely to be open source reference models i.e. running code. For a ubiquitous and well defined IT activity that is suitable for service provision, open source fundamentally makes more sense. Any value relates to the service provision rather than the marginal feature differentiation of a common activity.
Hence, open source, cloud computing, marketplaces, and standards will go hand in hand. In Ubuntu we will be launching a number of open sourced systems to enable users to build their own clouds. We’re going to be promoting open sourced reference models along with portability between service providers.
Our first steps in Karmic Koala will be at the infrastructure layer. We’re adopting the emerging standard of Amazon EC2 and providing our users with AMI’s and tools to run on Amazon EC2. We’re also providing users with an open source means of implementing their own in-house EC2-like cloud (Eucalyptus). This is not the end but the beginning of a journey, and we will be looking to build ecosystems at all the layers of the computing stack based upon portability and choice.
Mark made the comment that it would be apt to make it easier to navigate the ‘jungle’ of cloud computing. Navigation is inherently all about freedom of movement and freedom of choice. We intend to keep these ideals at the heart of cloud computing.