What is a Cloud Operating System?
July 20, 2009 6 Comments
You know a word is new if you could not find a definition for it on Wikipedia. Based on the Wikipedia test, Cloud Operating System is clearly not well known yet. Like the word “Cloud” it inherits from, it does not have a precise definition yet. But I will give you a little sense about what it is.
We are all familiar with an Operating System (OS) since we use one everyday. Be it Microsoft Windows or Apple MAC OS or even Linux, they are the indispensable software that make our PC run. An operating system manages the machine resources, abstracts away the underlying hardware complexity and exposes useful interfaces to upper layer applications. A traditional OS manages resources within the machine boundary (such as the CPU, memory, hard disk, and network), but it has no visibility beyond the box.
Like a traditional OS, a cloud OS also manages hardware resources, but at a much higher level. It manages many servers, not only within a single data center, but could also span multiple data centers at geographically distributed locations. They could operate at a scale that is much large than what we are used to. For example, Google manages millions of servers, while Amazon manages hundreds of thousands of servers.
There are already two cloud OSs open for public usage: Amazon and Microsoft Azure. The services they offer have clear parallels in a traditional OS.
- Amazon EC2 & Microsoft Azure workers: These services manage computing resources. They are similar to processes and threads in a traditional OS. But instead of scheduling processes/threads on a CPU, the cloud OS schedules the computing resources in a cluster of servers.
- Amazon S3 & Microsoft Azure Blob: These services manage the storage resources. They are similar to the file system in a traditional OS.
- Amazon SimpleDB & Microsoft Azure table: These services provide a central persistent state storage. This is similar to the Registry in a Windows OS. Other traditional OSs have similar mechanisms to store persistent states.
- Amazon SQS & Microsoft Azure queue: There services provide a mechanism to allow different processes to communicate asynchronously. It is exactly the service provided by a pipe in an Unix OS, such as Linux.
There are other cloud OSs besides Amazon and Microsoft. Google has a cloud OS running internally. For example, its GFS file system manages the storage at the data center level. I am not talking about chrome, but more about the software stack Google uses internally. Although marketed as a cloud OS, chrome is really just a browser, i.e., an application running on a traditional OS. In addition, VMWare is working hard on its VCloud offering, which promises to manage an internal cloud (although only the compute resources, no other services are provided yet).
Compared to the myriad services offered by a traditional OS, a cloud OS is still immature. There are likely more services in the future to make a cloud OS easy to use. Watch out for more offerings from the like of Amazon, Microsoft and Google.