云计算和分布式计算的区别?

发布于 2024-08-03 11:07:04 字数 1435 浏览 3 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

迷乱花海 2024-08-10 11:07:04

在我看来,云计算的定义是基于云的服务和软件的底层计算资源(存储、处理器、RAM、负载平衡器等)完全从软件/服务的消费者中抽象出来。这意味着基于云的资源供应商要对计算环境的性能/可靠性/可扩展性负责。

从应用程序开发人员的角度来看,这可能是一个巨大的优势,因为采购、维护、调整、监控和扩展硬件以满足增长的需求既困难又昂贵。

对于较小的 ISV 来说,云计算提供了原型设计、测试和部署软件的能力,而无需任何资本支出。

对于较大的应用程序,好处通常是无限的可扩展性,相当于 IT/应用程序托管职责的外包,以及即时访问新服务器/存储/任何需要的内容。通常,云提供商会提供一定程度的冗余、可靠性甚至安全性,但最大的内部 IT 商店无法以绝对成本实现这一点。

应用程序开发人员的主要缺点是失去控制。硬件不仅外部托管在云环境中,而且是抽象的,因此如果您的应用程序需要直接控制硬件,那么您就不走运了。而且您需要信任云提供商。它们都提供 99.9% 的重复运行时间和 SLA,但我怀疑这些统计数据是否真正实现。但你必须问自己,我能做得更好吗?答案往往是否定的。但对硬件的控制并不是唯一失去控制的地方 - 出于显而易见的原因,与基于云的系统的集成也可能比内部部署或自我管理的软件更困难。然而,在我看来,随着新技术和强大的 API 消除了在 LAN/WAN 之外运行应用程序时产生的许多集成困难,这一障碍正在消失。

另一个缺点可能是性能。在本地 LAN 上运行应用程序可能会为本地用户提供比在云中运行更快捷的体验。但如果您的受众是分布式的,则该优势可能仅适用于应用程序受众的一部分。

正如已经说过几次的那样,分布式计算只是在两台或多台计算机之间编排的计算。根据定义,云计算是分布式计算,但是一种特殊形式。

这是 David Chappell 撰写的一份不错的白皮书。这是一篇 Microsoft 赞助的论文,因此它是根据 Microsoft 的云平台 (Azure) 来呈现的,但基本原理非常通用,而且 David Chappell 的文章总是很容易阅读。

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.

如若梦似彩虹 2024-08-10 11:07:04

首先我要说的是,我们在 100% 基于云的环境上运行重要的金融服务产品。

云计算实际上并没有那么明确的定义(就像任何流行词一样,每个人都希望以某种方式用最新的流行词来为他们现有的产品打上品牌烙印)。

在我看来,云计算的关键是我可以将计算资源(CPU、内存等)视为商品而不是资本。

这意味着什么?

传统上,如果我想为我的组织增加一些计算能力,我需要出去购买更多计算机,进行设置和维护。云计算(Eric J. 的定义)让我可以在需要时获取额外的计算能力,然后在不需要时释放它。我们提供销售税计算服务。在圣诞节前夕,我们比一年中的其他时间需要更多的计算能力。我们的云环境让我可以在几秒钟内添加资源,然后在不需要时同样快速地释放它们。我们的一位大客户有时会出现1小时的巨额销售。我可以为该小时添加额外的处理能力,然后在完成后释放它。

我们在云计算基础设施之上提供的解决方案是软件即服务 (SaaS)。在我看来,像 GMail 这样的东西是 SaaS,而不是云计算。

那么所有这些与分布式计算相比如何呢?

分布式计算只是意味着我分解一个问题,这样我就可以让一大堆计算机同时处理它。伯克利大学的 BOINC 项目就是一个很好的例子(请考虑注册)。他们将科学研究项目分发到志愿者提供的所有计算机上。

BOINC和其他分布式项目涉及的计算机可以是人们的笔记本电脑、台式机、服务器。它们可以安装在我的办公室、从 ISP 租用的虚拟服务器或属于“云”一部分的虚拟服务器中。计算机来自哪里并不重要。如果我可以在计算机上安装分布式计算软件,它就可以成为分布式解决方案的一部分。

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.

離人涙 2024-08-10 11:07:04

分布式计算涉及将大问题分成更小的部分,并让多台联网计算机处理这些部分。

云计算通常是指通过互联网提供服务。该服务几乎可以是任何东西,从通过网络访问的商业软件到异地存储或计算资源。

编辑:正如我下面的海报所指出的,它通常是这些服务的营销术语。

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.

浊酒尽余欢 2024-08-10 11:07:04

分布式计算是多台计算机参与解决/计算任务的情况。就像Folding@Home

云计算是关于在互联网服务上拥有数据(文档、图片等)。我猜 GMail 和 Google Docs 形成了一种云计算。

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.

晨光如昨 2024-08-10 11:07:04

请记住,术语云计算已成为营销术语几乎可以代表任何事物。对于编码人员来说,该术语指的是存储和检索名称/值对的分布式方式。值得注意的示例包括 BigTable(您最有可能从Google App Engine) 和 EC2

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文