Posts Tagged ‘scalability’

define: Cloud Computing

I have been looking for a good definition of Cloud Computing for a while. Cloud Computing is of course a buzzword, so no wonder its meaning is fuzzy. The official definition of NIST reminds me of some standards: put everything together to make everyone happy.

Even Wikipedia gets a bit fuzzy about Cloud Computing, basically because it mixes up technical definitions, marketing, business models and a lot of other things. Also the critics do not help to define the thing, as they say things like “Cloud is everything we do” or “Technologies now dubbed as Cloud existed long before the name”.

Given that a definition is always an approximation (ontologically, because it is just a categorization for our mind), the best technical definition (what I am interested in) I found was given in this blog post. I summarize it here “Distributed location-independent scale-free cooperative agents”. You can check the post to see what each piece of  the definition means.

While this was the best definition I found, it is not exactly what I have in mind when I think about Cloud Computing. Also, this does not encompass a lot of technologies that I can think of when I say Cloud (one for all, MapReduce). So I will take a stab at defining what Cloud Computing is:

“Distributed, transparent, scale-free computing system”

Yes, it doesn’t change much, does it? But the core point here is that I do not care what kind of system we are talking about, but I just care that the system is distributed and scale-free. Furthermore location independence is not the only interesting property: access, failure and replication transparency are important as well. You should aim to the best transparency you can get without impacting performance (too much transparency hinders optimization).

The rationale is that a Cloud Computing is such that you can solve a problem faster/better just throwing more hardware at it. So scalability is the key feature, and in particular being scale-free (the scale of the system is not a design parameter).

Read Full Post »

Scale-free systems

I have been looking around for the definition of scale-free system I came up with, I had totally forgotten where I took it from. I think I kind of ripped it from this post and condensed it into a concise form.

During the presentation I gave a couple of days ago I was asked if this scale-free had anything to do with scale-free networks, which are networks that follow a power-law in degree distribution (a few vertexes with high degree [Hubs] and a lot of vertexes with low degree). These networks are used as a model for Internet, social networks and a lot of other things. They have some interesting properties that are kept no matter the scale (number of nodes) of the network, and thus they exhibit self-similarity, fractal structure and the like.

My answer is: no.

Or at least, when I say scale-free I mean that the scale is not a design parameter of the system. Or alternatively that the system’s design is free of scale, so you can run the system on 10 or 10^10 nodes without modification to the architecture. There might be some way so design a scale-free system using a power-law-distribution-of-something structure, but it is not the main point.

Read Full Post »