Ubuntu is positioning itself as a true cloud OS, and seems so far to be the only Linux distribution to have done so, but too often we are being asked why and where we are going. I am not going to try to redefine what cloud means in this post, as this has been done countless times . If I just remind you that cloud can be divided in three layers: the infrastructure (IaaS), the development platform (PaaS) and the application (SaaS), I think that it should be enough to make sure we are thinking about the same thing.
So far, Ubuntu has produced three major components out of its cloud strategy: two at the infrastructure layer and one at the software layer:
Even though UbuntuOne is obviously a cloud product, and an important initiative for Canonical to deliver added functionality to its large user base, it should clearly be distinguished from the other two components, as one distinguishes the shovels from the buildings it allows to make. I'll only talk here about "shovels" (infrastructure components), and try to summarize where we are aiming with that. The Ubuntu mission is clearly to select the best components from open source, assemble and refine them, to provide the best possible user experience in order to leverage it against the biggest monopoly the software industry has ever known. In other word to provide a use-able alternative to the operating system/productivity suite that currently dominates the world. Our cloud strategy clearly inscribe itself within this mission, let me try to explain you why and how.
As many people, since John McCarthy in the 1960, have predicted and described, computing is obviously shifting from a product market to a utility one. It will of course not all be done in one step, and many barriers, such as truly pervasive and inexpensive connectivity, will need to be overcame before it can really happen, but the shift has started and it will not stop. What this means is that more and more of the applications, that we use today on our personal computers or servers will soon be running on some "cloud" of machines.
Free software advocates have been trying to warn the world for a long time about the risks that using proprietary software that stores data in proprietary and undocumented formats implies for the long term survival of their data. As the shift to cloud/utility computing occurs, this risk becomes even greater. What will happen to your data/application if the cloud it is hosted on goes bust? Will you be able to shift it to another cloud swiftly? That can only happen if all the bricks that you are using in your environment not only uses open and documented standards, but also if and only if, all the bricks are themselves movable from one cloud to another. When you were running your data on proprietary applications on top of machines you owned, if your hardware maker or your os provider or you software vendor would disappear, you still had a few months or even years to migrate what was running to another platform. Your business continuity was in no danger. However, when thinking in the cloud model, you need to be able to do your shift almost instantaneously or else your business continuity is at stake.
This is true at every level of the stack. If you use a SaaS application, you need to have a contingency plan for the SaaS vendor to disappear. If your SaaS vendor used a documented stack of open source software, it is likely that you'll find another SaaS application that will be able to host your data swiftly. If not, you'll have to go through the long process of rebuilding everything from your backups with some other vendor. The same applies at the platform and infrastructure levels. All these risks obviously directly translates to direct unforeseen cost to your business.
What Ubuntu is trying to achive is to carefully build a stack of open source software that will allow you to run your infrastructure, platform or applications based completely on open source software so that your business continuity is never at stake when you make a choice. Ubuntu is not offering to host your data, it is offering to define an open source stack that any provider whether internal to an organisation or external, can use to provide open standards based services. The open standards we are defining needs to allow both for you to be able to switch from your internal infrastructure to an external one, and from an external one to another. Unless Ubuntu provides you with both, we will not have completed our mission. Unless Ubuntu provides this at least at the platform and infrastructure of the stack, we will not have completed it either. Unless another Linux distribution can offer a fully compatible stack, we will also have failed.
Because we had to start somewhere, we decided to first focus on the infrastructure stack. Our first step in this space was to offer official images of Ubuntu on the Amazon Web Service Elastic Cloud Compute (EC2). This was following the great work that had already been started in the community, and was an obvious step since EC2 is the most popular cloud provider at this time.
Our second step was to select a software stack that would allow people to build their own cloud infrastructure. Our choice of Eucalyptus was not a dull one. We chose it after a careful study of the current cloud market, identifying the EC2, EBS and S3 API access to the Amazon Web Services as a de-facto industry standard, and selecting the best open source component to reproduce it. When we say best, it is both in term of the quality of the implementation but also in the willingness of the upstream project to share our vision and work with us toward it.
With Ubuntu 9.04 Server Edition, we delivered a very first integration of it, which only allows you to deploy an internal cloud that obeys to the same API that AWS uses and with an image format that would allow us to insure compatibility with AWS. This was our first release of Ubuntu Enterprise Cloud . As this demonstrated, the hypervisor layer does not need to be the same for the portability to be achievable. This is, in itself, a first validation of the independence that open source provides in the cloud space. More recently Canonical announced a series of services from consulting to support and training, specific to the cloud so that we can help the organisations that want to use our cloud offer to do so safely.
In the next couple releases of Ubuntu, our goal is to have a complete infrastructure layer for the cloud that will allow to:
To follow our progress in our mission: