Everybody seems to love clouds, judging after how many times per day I see the term â€œcloudâ€ on my Internet browsing. A lot of people speak about clouds. Clouds seem to be the computing Holy Grail, and they will solve all past, present and future issues. Yes, they will also defeat the economic crisis and they will help companies survive (are you selling apples in the market? Donâ€™t worry, the cloud is with you and it will save your business). Did I mention that clouds will create new jobs and will save software companies from disaster?
Unfortunately most people who talk about clouds are not able to define what a clouds is (how many people can tell me what the Holy Grail is?). There are some guys who can â€œdefineâ€ what a cloud is, but they will do this using many, many words and usually by comparing clouds with some well-defined concepts. For example I saw lots of articles explaining why a cloud is not a grid.
There are some basic rules anyone should learn during school: 1) you cannot define something by describing what it is not 2) a definition must be short, concise, and easily understandable (just imagine how a two pages axiom would look like) 3) you cannot define something by describing its interaction with other objects.
Until our industry will not present and advertise such a clean definition for the cloud, businesses will not be serious about them. I wouldnâ€™t go to my boss saying: â€œIâ€™ve heard lots about a new thing we should do with our software â€“ we should run it in cloudâ€. I suppose that any common sense boss will ask â€œgood, but whatâ€™s a cloudâ€ and I also suppose that no manager will listen 30 minutes explanations.
Getting over the total confusion regarding the clouds definition, I think that the industry is also quite confused about actual needs. Letâ€™s take for example the Amazon EC2 (Elastic Compute Cloud), a product called cloud by most people. Itâ€™s a smart move that Amazon called it Cloud when the market was not very aware about clouds. Itâ€™s like in that joke when a father called his first born son â€œCompetentâ€. When someone asked why he called the boy this way, he replied â€“ â€œitâ€™s simple, this creates more opportunities for the boy, when someone will want to hire someone competent, itâ€™s obvious that he will be the best choiceâ€. Actually, Amazon EC2 is a huge deployment of virtual machines that can be provisioned very easily from a large inventory. It is cool because you do not have to spend money on hardware, you can deploy it on demand. Hosting companies have been doing the same thing for years, except that they didnâ€™t automate the deployment part the same way (the customer is not able to â€œorderâ€ services using an API like on Amazon EC2) and most hosting companies cannot deliver 1000 virtual machines instantly (with many companies it can be a pain to cancel service for a machine :)). At this time I would not call the Amazon EC2 service revolutionary, but I think that it is an exceptional example of marketing. I estimate that we can develop the software layer to deploy EC2 like services in less than 4 months (we actually had this request from a customer earlier this year, so I know the figures).
Experts say that the cloud is like utility computing. Some day you will be able to lease computer power like you get now electricity. This sounds ok in theory, except that there is a major problem. People get electricity to power their devices (like a TV, computer, heater, etc). They have the device and electricity is just a requirement to make it run. People donâ€™t actually buy electricity because they need it, but because they need devices that require electricity. People donâ€™t produce electricity at home because itâ€™s easier to get it from the electric company.
In order for clouds to work this way, industry must first create the applications that require the â€œcloudâ€ computer power (SaaS looks to be the name of the game, but even here there are some misunderstandings â€“ will be discussed on another post). Then, industry must build the real cloud, because Amazon EC2 does not look the best candidate for this name (I will also discuss about Windows Azure in a future article, there are a few interesting things to say). As a company, I would need a service able to scale to any reasonable limit I choose. Currently this is not possible with EC2, because itâ€™s just a virtual machine, so it can scale up to the power of the hardware that hosts it. Once we create a service that is able to scale transparently for the end users, we have the real cloud (just imagine that you want to host Wikipedia. You should not need a complicated setup for this). This requirement is one of the reasons we created 4Grid, a technology which is still in its earliest stages, but which promises to deliver a service that can scale transparently.
I just realized that I didnâ€™t try to define the cloud â€“ I have to think to the best definition. I promise you will have it soon. I just donâ€™t want to make it more complicated than the definition of mammals 🙂