Types of Cloud Computing

The one area in which all definitions of the term agree is that a service is provided by a varying number of servers of which the details are unknown to the people who use the services – including the people who program them.

There seem to be four main definitions of cloud computing. The first one is Distributed Computing [2] (multiple machines in different administrative domains being used to perform a single task or several tasks), this definition does not seem to be well accepted and will probably disappear.

The next one is Software As A Service [3] which is usually based on the concept of outsourcing the ownership and management of some software and accessing it over the Internet. An example is the companies that offer outsourced management of mail servers that are compatible with MS Exchange (a notoriously difficult system to manage). For an annual fee per email address you can have someone else run an Exchange compatible mail server which can talk to Blackberries etc. The main benefit of SAAS is that it saves the risk and expense of managing the software, having the software deployed at a central location is merely a way of providing further cost reductions (some companies that offer SAAS services will also install the software on your servers at greater expense).

It is also claimed that “Cloud Storage” is part of cloud computing. It seems to me that storing data on servers all over the world is something that was done long before the term “Cloud Computing” was invented, so I don’t think it’s deserving of the term.

2 comments to Types of Cloud Computing

I was asked to comment on your post by a journalist on the grounds that it’s critical of the Wikipedia article I created about cloud computing, and specifically excludes storage. I spent quite some time researching the various viewpoints in order to create what I still think is a reasonably good consensus as to what cloud computing is about.

First thing’s first, from a user-centric point of view cloud computing is (as you observe) about abstraction and hiding complexity; users consume computing resources without knowledge or concern about the systems responsible for delivery. Some of these happen to be centralised (eg most SaaS providers who use large grids to deliver their applications) and others are distributed (eg seti@home, skype) – people have tried to equate cloud computing with centralised or distributed computing but the user doesn’t [need to] care whether the service is delivered from a datacenter or other clients. Skype for example is hybrid in that it promotes certain clients to be ‘supernodes’ (servers) and supports this network with centralised billing, authentication, POTS gateways, etc.

Regarding your comment about storage, the same could be said for other components of cloud computing; it is the maturity of the various components that has triggered the cloud computing ‘revolution’. Raw storage is one thing, but combined with compute, web services, queues, etc. one can create some far more interesting architectures – and the two areas you cite as most interesting (infrastructure and platforms) are essentially useless without storage.

Sam: I don’t think that the Wikipedia article is bad, I think it reflects the current state of play in the industry. It might be a benefit to note that there is debate about the exact meaning of the term. It’s probably best to just wait 6 months or so, the industry is evolving rapidly and things should be more clear then.

Also try not to take ownership of wikipedia pages. Whatever you write will evolve in strange ways once other people start editing it. There’s lots of crap that ends up in wikipedia. For the pages that interest me I visit them every year or so and remove the worst of the damage. You could of course poll an article regularly and try and amend it after every change, but that seems like a lot of work.

As for cloud storage, I have not yet investigated the Amazon SimpleDB (the only real cloud storage I know off the top of my head). Lots of other companies have cloud storage offerings that seem like S3 or a CDN – both of which seem to fall short of the full “cloud” idea. Let me know if there are any particular areas you think I should investigate (I lack the time to fully investigate it at the moment).