The definition of “Cloud”. Am I missing something?
Categories: Opinion

“Cloud computing” seems to be taking over “Ajax” as the most popular buzzword used in software articles and discussions. I’ve seen this term mistakenly defined over and over again by people who should know better. Here the CIO of HP babbles about virtualization and the CIO of NASDAQ defines it as a distribution channel.

My current understanding of a cloud has to do with a large “cluster” of computers, that has sufficient memory replication that many things can be done in memory, instead of the popular “tiered” architectures that most web developers are most likely currently working with. The client web browser is the “client” tier, the web server/application server provides a “middle” tier, and a database provides a persistent “data” tier. With cloud computing, the “data” tier is provided in memory, and instead of persisting some data to a permanent datastore, it is persisted to memory and if a message comes to any node in the cluster, the node will see those latest memory changes, even though it is not physically sharing any memory with other nodes in the cluster.

There is also the understanding that, as with Google App Engine, a permanent datastore may be included as well. My original definition of a cloud, which included the word “sufficient”, needs clarification. Sufficient means that probabilistically speaking, the chances that all nodes have gone down and lost a particular message are low enough that no messages are lost. It seems Google is achieving this by using a persistable datastore, so that changes to memory storage are persisted every x time units, and applications can explicitly write to the persisted storage. They also impose certain restrictions on CPU usage, memory usage, and bandwidth usage, so that one application cannot cause the entire cloud to suffer in performance. As an application developer, in order to have your application scale well to this model, each message should be responded to quickly, and no single operation to a request for data or to persist data should take too long of CPU time to perform.

I would also like to point out that firewalls and virtualization have nothing to do with a cloud, I can setup a cloud and not use a firewall at all; you can setup a cloud and not use any virtualization, like VMWare, and instead use a cluster of actual computers.

So am I missing something? Why is this term being abused so badly, or maybe I just made things worse by adding my own definition.

Categories: Opinion -

1 Comment to “The definition of “Cloud”. Am I missing something?”

  1. Shelley says:

    Thanks for the clarification. Very well written.

Leave a Reply