up vote 5 down vote favorite
6

Hi All,

I wanted to know about the difference about cloud computing and distributed computing. I read an article about cloud computing and get an feeling that somewhere there is relation between cloud computing and distributed computing and so wanted to ask about difference between technologies.

Also if someone can point me to useful resources for cloud computing than that would be highly appreciated.

Thanks

flag

3  
It is yet another buzzword for services on the internet to trigger silicon valley VC's "next big thing" reflex, thus attracting some money which otherwise be spent on a new yacht. – artificialidiot Aug 29 '09 at 2:25

7 Answers

up vote 10 down vote accepted

In my mind what defines cloud computing is that the underlying compute resources (storage, processors, RAM, load balancers, etc) of cloud-based services and software are entirely abstracted from the consumer of the software / services. This means that the vendor of cloud based resources is taking responsibility for the performance / reliability / scalability of the computing environment.

From an application developers point of view, this can be a tremendous advantage, as procuring, maintaining, tuning, monitoring and scaling hardware to meet the demands of growth is both difficult and expensive.

For smaller ISV's, cloud computing offers the ability to prototype, test and deploy software without any capital expense.

For larger applications, the benefit is generally unlimited scalability and what amounts to the outsourcing of IT / application hosting responsibilities, as well as instant access to new servers / storage / whatever on demand. Often cloud providers will offer levels of redundancy, reliability and even security all but the largest in-house IT shops could never achieve for the sheer cost of it all.

The main disadvantage to application developers is loss of control. Not only is the hardware externally hosted in a cloud environment, but abstracted, so if your application needs direct control over hardware, you're out of luck. And you need to trust the cloud provider. They all offer 99.9% repeating up time and SLA's, but I doubt those stats are actually realized. But you have to ask yourself, could I do better? The answer is often no. But control of hardware isn't the only place control is lost - integration with cloud based systems can also be more difficult than on premise or self-managed software for obvious reasons. However, it seems to me that this roadblock is evaporating as new technologies and robust API's eliminate many integration difficulties created when running applications outside the LAN/WAN.

Another disadvantage can be performance. Running an application on your local LAN will probably provide a somewhat snappier experience to local users than running from the cloud. But if your audience is distributed, that benefit may only apply to a subset of your application's audience.

Distributed computing, as has been said already a few times, is just computing orchestrated between two or more computers. Cloud Computing is, by definition, distributed computing, but a specialized form.

Here is a nice whitepaper by David Chappell. It is a Microsoft sponsored paper, so it is presented in terms of Microsoft's cloud platform (Azure) but the underlying principles are pretty universal, and David Chappell is always a pretty easy read.

link|flag
Chappell has a couple of papers and presentations out there. I also believe he has done a good job trying to get some of the point of Cloud Platforms out to people. Yet people tend to entirely miss the advantages of Cloud Queuing as a cross-enterprise EDA enabler. Key/value and document databases are important Cloud facilities but it is far from the only one people need to get familiar with. I can see where this doesn't matter much to the guy who maintains the Joe's Lawn Service web site though. – Bob Riemersma Aug 30 '09 at 16:14
up vote 5 down vote

Distributed computing involves dividing a large problem into smaller slices and having multiple networked computers process the slices.

Cloud computing usually refers to providing a service via the internet. That service can be pretty much anything, from business software that is accessed via the web to off-site storage or computing resources.

Edit: As the poster below me notes, it is generally a marketing term for those services.

link|flag
1  
I'm used to hearing "providing a service via the internet" called SaaS (Software as a Service). For me, cloud computing means providing computing infrastructure as a commodity... rent what you need for as long as you need it. – Eric J. Aug 29 '09 at 8:55
up vote 4 down vote

Keep in mind that the term cloud computing has become a marketing term that has come to represent almost anything. To coders, the term refers to a distributed way of storing and retrieving name/value pairs. Notable examples include BigTable (which you are most likely to access from within the Google App Engine) and EC2.

link|flag
What would be benefits of using Cloud Computing ? We might be having issues like security loss. – Rachel Aug 28 '09 at 23:51
Redundancy is a possible benefit. One machine/process failing may leave big parts of the "cloud" intact. – Skurmedel Aug 28 '09 at 23:53
Um, I'm not sure all "coders" would agree with that definition - although Big Table is a cloud service, I think limiting the definition to retrieving key/value pairs is severely limiting the meaning of cloud computing in almost anyones book. – Nathan Aug 28 '09 at 23:53
Can Redundancy be thought of as overhead for the application ? I am not able to see benefits cloud computing would add to current scenario of application development. Can someone share some lights on it ? – Rachel Aug 28 '09 at 23:57
1  
Originally, cost was a primary motivator. Startups could get to market fast by leveraging Google and Amazon infrastructure. – Glenn Aug 29 '09 at 0:12
show 1 more comment
up vote 3 down vote

Let me start by saying that we run a significant financial services offering on a 100% cloud-based environment.

Cloud computing is not really that well defined (like with any buzz word, everyone wants to somehow brand their existing product with the newest buzz word).

The key to cloud computing in my mind is that I can look at computing resources (CPU, memory, etc) like a commodity rather than as capital.

What does that mean?

Traditionally, if I want to add some computing power to my organization, I need to go out and buy more computers, set them up, and maintain them. Cloud computing (Eric J.'s definition) lets me grab extra computing power exactly when I need it, and then release it when I don't. We offer a sales tax calculation service. In the run up to Christmas, we need a lot more computing power than at other times of the year. Our cloud environment lets me add resources in seconds and then release them just as quickly when I don't need them. One of our big customers sometimes has 1-hour mega-sales. I can add extra processing power just for that hour then release it when done.

The solution we offer on top of that cloud computing infrastructure is Software-as-a-Service (SaaS). Things like GMail are SaaS, not cloud computing, in my view.

So how does all of this compare to distributed computing?

Distributed computing just means I break up a problem so that I can have a whole bunch of computers work on it at the same time. Berkeley University's BOINC project is an excellent example of this (and please consider signing up for it). They distribute scientific research projects across all computers that volunteers provide.

The computers involved in BOINC and other distributed projects can be people's laptops, desktops, servers. They can be installed in my office, virtual servers leased from an ISP, or virtual servers that are part of a "cloud". It matters not one bit where the computers come from. If I can install the distributed computing software on a computer, it can be part of the distributed solution.

link|flag
What are the pros and cons of Cloud Computing ? Is cloud computing offering very tempting benefits for the sake of which we can take risk about the security of the data/information ? – Rachel Aug 29 '09 at 0:19
up vote 1 down vote

Distributed computing is where multiple computers participate in solving/computing a task. Like Folding@Home.

Cloud computing is about having data (documents, pictures etc.) on internet services. I guess GMail and Google Docs form a sort of cloud computing.

link|flag
Ah, welcome again odd -1 vote... please specify why... getting tired of all the boring not-so-constructive voters on this site. – Skurmedel Oct 14 '09 at 15:31
up vote 0 down vote

FFS, I was doing "Cloud Computing" back in 1996, when I used my Hotmail account (when it was capitalized HoTMaiL.)

link|flag
up vote 0 down vote

A very good article about Cloud computing, .net and microsoft technologies is at:

http://jai-on-asp.blogspot.com/2010/05/cloud-computing-and-net.html

link|flag

Your Answer

get an OpenID
or
never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.

Stack Overflow works best with JavaScript enabled