Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between cloud computing and distributed computing? [closed]

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

Also if someone could point me to useful resources for cloud computing, it would be highly appreciated.

Thanks

like image 694
Rachel Avatar asked Aug 28 '09 23:08

Rachel


People also ask

Is cloud computing using distributed computing?

Cloud computing is the on-demand delivery of computations, storage, applications, and other IT resources through a cloud services platform over the internet with pay-as-you-go business model. Today's Cloud computing systems are built using fundamental principles and models of distributed systems.

What are the differences occurred in distributed operations in cloud computing?

In Distributed Computing, a task is distributed amongst different computers for computational functions to be performed at the same time using Remote Method Invocations or Remote Procedure Calls whereas in Cloud Computing systems an on-demand network model is used to provide access to shared pool of configurable ...

What is difference between distributed computing and distributed system?

Distributed system: a collection of independent computers that are connected with an interconnection network. Distributed computing: a method of computer processing in which different parts of a computer program are run on two or more computers that are communicating with each other over a network.

What are different types of distributed computing system before cloud computing?

The following are some of the more commonly used architecture models in distributed computing: client-server model. peer-to-peer model. multilayered model (multi-tier architectures)


2 Answers

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.

like image 170
Nathan Avatar answered Sep 30 '22 08:09

Nathan


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.

like image 34
Eric J. Avatar answered Sep 30 '22 09:09

Eric J.