A few weeks ago, the CEO of a large,
very competent computer services company made me feel much better by
publicly admitting that he didn't know what people were talking
about when they mentioned cloud computing. I, too, had been made to feel inadequate by the term.
Like "fuzzy logic," the term "cloud computing" sounds like its meaning should be obvious, but it isn't when you actually think about it. If you ask the average technophile what cloud computing is, you're likely to get a response like: "Cloud computing is ... unh ... I'm not sure what it is!"
So, I did a little digging to start coralling a meaning for this slippery term. Here's what I've been able to piece together:
Cloud computing seems to be a way to monetize unused capacity of large data storage and analysis facilities by "renting out" the extra capacity on a more-or-less short term basis. Statistics are available that indicate that large distributed computer systems (such as the server farms maintained by Internet service providers) typically run at 10% of capacity most of the time. They need the extra capacity for peak loading, but peak loads appear only occasionally.
This is, of course, similar to the issue that led to the rise of
multi-tasking computer operating systems during the 1970s. The
solution is similar: provide systems that allow multiple users to
time share the unused computing resources at off-peak times.
The difference is a matter of scale. Multitasking operating systems allow multiple users to independently access single-processor computing hardware. Cloud computing systems allow multiple users to independently access large multi-server installations. The effect is the same: as long as the computing resources do not become overloaded, users gain low-cost access to computing resources they never could afford to install themselves.
Users access the resources on an as-needed basis via the Internet. So, a scientist or engineer with a large compute-intensive problem, such as simulating how a protein folds, might rent out unused capacity from, say Yahoo, or Google, or another provider that has a large server farm. Servers are, after all, just high-speed computers with really, really big hard drives, whose sole raison d' etre is to download web pages to every Tom, Dick, and Harriet who makes a request via the network. For big server farms, "the network" is usually the Internet, but it could be a corporate intranet.
The provider's cloud-computing system
would create a virtual machine (VM), which appears to the user like a
supercomputer dedicated to his or her problem, while looking like
just another application program running in the background on the
provider's massive multiprocessor system. During peak loads (which
appear more-or-less randomly for relatively short periods), the server farm
drops the scientist's problem and handles the load for its owner.
When the load peak passes, it again activates the VM, which picks up
the protein-folding problem where it left off. Since any problem big enough to make cloud computing worthwhile would take a very long time on a desktop machine, the user doesn't even notice the hiccup as the virtual supercomputer runs off to take care of its file-serving duties during the load peak.
After solving the scientist's protein-folding problem, the VM downloads the results (perhaps by emailing them to the user, or by storing them in a file for later download by the user) and disappears. The scientist pays only for the computing time actually used. The cloud-computing provider earns extra income from spare capacity that would otherwise be wasted. Everybody wins.
We like that!
Goooood technology. Nice technology. Now, roll over like a good puppy and I'll scratch your tummy.

My friend recommended this blog and she was totally right keep up the fantastic work!