93

我是在非常笼统的意义上问这个问题。从云提供商和云消费者的角度来看。此外,问题不在于任何特定类型的应用程序(实际上,目的是了解哪种类型的应用程序/域可以适合哪个云板 - SaaS PaaS IaaS)。

到目前为止我的理解是:

IaaS:原始硬件(处理器、网络、存储)。

PaaS:操作系统、系统软件、开发框架、虚拟机。

SaaS:软件应用程序。

如果 Stackoverflower 可以分享他们对云计算概念的理解和经验,那就太好了。

编辑:好的,我会以更具体的方式说 -

Amazon EC2:您无法控制硬件层。但是您可以选择操作系统映像、开发框架(.NET、J2EE、LAMP)和应用程序并将其放在 EC2 硬件上。您可以在 EC2 上部署使用 Google App Engine 或 Azure 构建的应用程序吗?

Google App Engine:您无法控制硬件和操作系统,您需要使用特定的开发框架来构建您的应用程序。您可以将任何现有的 Java 或 Python 应用程序移植到 GAE 吗?或者反之亦然,是否可以将基于 GAE 构建的应用程序从 GAE 中取出并移植到任何应用程序服务器(如 Websphere 或 Weblogic)?

Azure:你无法控制硬件和操作系统,你需要一个特定的开发框架来构建你的应用程序。您可以使用任何现有的 .NET 应用程序并将其移植到 Azure 吗?或者反之亦然,是否可以将在 Azure 上构建的应用程序从 Azure 中取出并移植到 Biztalk 等任何应用程序服务器上?

4

7 回答 7

59

好问题!正如您所指出的,不同的产品适合不同的类别:

EC2 是基础设施即服务;你会得到虚拟机实例,并按照你的意愿使用它们。Rackspace 云服务器或多或少是相同的。

Azure、App Engine 和 Salesforce 都是平台即服务;不过,它们提供了不同级别的集成:Azure 几乎可以让您运行任意后台服务,而 App Engine 则面向短期请求处理程序任务(尽管它也支持任务队列和计划任务)。我对 Salesforce 的产品不是很熟悉,但我的理解是它在某些方面与 App Engine 相似,但更专注于其特定的利基市场。

属于软件即服务的云产品包括从亚马逊的简单存储服务和 SimpleDB 等基础设施部分到 Fog Creek 托管的 FogBugz 和 StackExchange 等完整应用程序。

一个好的一般规则是,产品级别越高,您要做的工作就越少,但它越具体。如果你想要一个错误跟踪器,使用 FogBugz 显然是最少的工作;在 App Engine 或 Azure 之上构建一个工作量更大,但提供了更多功能,而在 EC2 等原始 VM 之上构建一个工作量更大(实际上要多得多),但提供更多功能。我的一般建议是选择仍然满足您要求的最高级别的平台,然后从那里构建。

于 2009-10-05T09:31:52.583 回答
14

这是一个很好的问题。完全披露,因为我偏爱 Azure,但有其他人的经验。

我认为 Azure 从其他产品中脱颖而出的地方是从本地到云的快速过渡。例如 -

  • SQL Azure - 更改连接字符串,上传数据库,开始吧!
  • 队列的工作方式很像 MSMQ。
  • 任何你摇动它们的方式,Blob 几乎都是 Blob,但它们会像疯了一样缩放。
  • 表存储组件很好,因为它为名称/值对提供了令人难以置信的可扩展性 - 但需要一些时间来适应。
  • 服务总线是我最喜欢的服务,因为它允许各种通信范例。两个 SB 端点首先尝试相互连接,如果不能,则它们会通过云进行路由——当防火墙往往会阻碍时,它们可以实现非常安全和可扩展的处理。
  • 访问控制列表——通常与服务总线配对,以确保正确的人访问正确的东西——想想云中的 SAML。

我希望这会有所帮助!

于 2010-03-27T22:56:10.710 回答
8

我的云体验目前仅限于 Salesforce.com

对于标准业务运营和自动化,它提供了大量功能,使我们能够非常快速地启动和运行应用程序。我们特别受益于以下方面:

  • 安全性(管理员可以控制对对象和字段的访问)
  • 工作流程和批准
  • 自动 UI 生成
  • 内置报告和仪表板
  • 整个系统(包括我们的自定义更改)可通过 Web 服务访问
  • 能够通过公共站点(例如电子商务)使系统中的数据可用
  • 用于解决标准问题的大型第三方应用程序库

该平台并不能解决所有问题。

我不会使用该平台来模拟核电站或构建下一个推特。

于 2009-11-26T03:20:08.767 回答
6

云计算的要点是通过按使用付费来节省成本,并能够立即部署计算资源。

成本不仅仅是每个实例每小时的 x 美分数量。成本包括维护、开发、管理等。在我看来,云计算的巨大好处是将客户从必须管理任何不在其核心业务能力范围内的事情中解放出来。如果我是一家保险企业,我希望我的开发人员专注于我的保险问题,以帮助解决我的索赔、费率等需求。我宁愿避免处理电子邮件服务器、文件服务器、文档存储库和管理操作系统补丁的问题、服务包等。

因此,在我看来,最大的好处来自 SaaS 和 PaaS 云产品。只有当 PaaS 或 SaaS 对特定需求有严重限制时(即我需要安装一组专有的 COM 组件而 Azure 不支持它们),才应该使用 IaaS。

SaaS 适用于商品类型的应用程序,这些应用程序不是客户的核心业务线,而是更多的实用程序。这些是您典型的消息传递系统、门户、文档存储库、电子邮件系统、CRM、ERP、会计等等等。当您可以自定义支持良好的第三方产品时,为什么要通过编写自己的来重新发明轮子。

PaaS 非常适合支持公司的主要业务产品的核心业务线软件。将客户从必须处理的操作系统管理中抽象出来,让客户专注于业务系统开发——这是其他人无法为客户做的事情。

于 2010-11-10T03:27:26.667 回答
3

人们还可以利用 PaaS(比如 Google App Engine)的优势并在必要时通过从 IaaS 提供商(例如亚马逊)中提取一些虚拟机来进行一些数字运算然后发回来扩展它输出到 Google App Engine。

这样,您就可以两全其美——您可以在 GAE 中快速开发可扩展的应用程序,然后您始终可以通过在 Amazon 虚拟机上运行您想要的任何程序来增强它。

于 2011-08-18T13:57:12.137 回答
2

这一直在变化,现在 Windows Azure 也支持 VM,所以它现在也是 IaaS 提供商。

于 2013-05-14T04:39:13.960 回答
0

现在如何免费使用 Amazon EC2 一年来做一个更好的比较。看一下这个。

http://www.buzzingup.com/2010/10/amazon-announces-free-cloud-services-for-new-developers/

于 2010-11-05T14:56:01.943 回答