何时应该使用以下内容:Amazon EC2,Google App Engine,Microsoft Azure和Salesforce.com?

我在非常一般的意义上问这个问题。 从云提供商和云消费者的angular度来看。 此外,问题不在于任何特定types的应用程序(事实上,其目的是要知道哪种types的应用程序/域可以适合哪些云平板-SaaS PaaS IaaS)。

我的理解到目前为止是:

IaaS:原始硬件(处理器,networking,存储)。

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

SaaS:软件应用程序。

如果Stackoverflower可以分享他们对云计算概念的理解和经验,那将是非常棒的。

编辑:好吧,我会把它放在更具体的方式 –

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

Google App Engine:您无法控制硬件和操作系统,您可以使用特定的Dev Framework构build应用程序。 你可以采取任何现有的Java或Python应用程序,并将其移植到GAE? 反之亦然,GAE上构build的应用程序是否可以从GAE中移出并移植到任何应用程序服务器(如Websphere或Weblogic)?

Azure:您无法控制硬件和操作系统,您将获得特定的开发框架来构build您的应用程序。 您可以使用任何现有的.NET应用程序并将其移植到Azure? 反之亦然,Azure上构build的应用程序是否可以从Azure中移出并移植到Biztalk之类的任何应用程序服务器上?

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

EC2是基础设施即服务; 你得到虚拟机实例,并按照你的意愿去做。 Rackspace云服务器差不多。

Azure,App Engine和Salesforce都是平台即服务; 他们提供了不同级别的集成,尽pipe:Azure可以让你运行任意的后台服务,而App Engine则是围绕短命的请求处理器任务(尽pipe它也支持任务队列和计划任务)。 我对Salesforce的产品并不熟悉,但是我的理解是它在某些方面与App Engine相似,不过对于它的特殊利基来说更专门一些。

属于“软件即服务”的云产品包括从Amazon Simple Storage Service和SimpleDB等基础设施软件到Fog Creek托pipe的FogBugz,当然还有StackExchange等完整的应用程序。

一个好的通用规则是,提供的级别越高,你所需要做的工作就越less,但是更具体的是。 如果你想要一个bug跟踪器,使用FogBugz显然是最不起作用的; 在App Engine或Azure之上构build一个更多的工作,但是提供了更多的function,而在EC2之类的原始虚拟机之上构build一个工作甚至更多(实际上更多),但是提供了更多的function。 我的一般build议是select仍然符合您的要求的最高级平台,并从那里build立。

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

我认为Azure从其他方面中脱颖而出的是从预置到云端的快速转换。 例如 –

  • SQL Azure – 更改连接string,上传数据库,去!
  • 队列工作很像MSMQ。
  • 斑点几乎是任何你动摇他们的斑点,但他们像疯了一样缩放。
  • 表存储组件很好,因为它为名称/值对提供了令人难以置信的可伸缩性 – 但需要一些习惯。
  • 服务总线是我最喜欢的服务,因为它允许各种通信范例。 两个SB端点首先尝试彼此连接,如果不能,则它们通过云端路由 – 当防火墙倾向于妨碍时,可以实现非常安全和可扩展的处理。
  • 访问控制列表 – 通常与服务总线配对,以确保正确的人员访问正确的东西 – 思考云中的SAML。

我希望有帮助!

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

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

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

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

我不会使用这个平台来build模一个核电站或build立下一个推特。

云计算的重点是通过支付使用费用和立即部署计算资源来节省成本。

成本并不纯粹是每小时每分钟x美分。 成本包括维护,开发,pipe理等等。在我看来,云计算的巨大好处是将客户从pipe理任何不在其核心业务能力范围内的东西解放出来。 如果我是一家保险公司,我希望我的开发人员专注于解决我的保险问题,帮助解决索赔,费率等方面的需求。我宁愿避免处理电子邮件服务器,文件服务器,文档存储库以及pipe理操作系统补丁的问题,服务包等

因此,在我看来,最大的收益来源于SaaS和PaaS云产品。 只有当PaaS或SaaS严格限制特定需求(即,我需要安装一组专有COM组件并且Azure不支持它们)时,才应该去IaaS。

SaaS适用于商业types的应用程序,而不是客户的核心业务线,但更多的是实用程序。 这些是典型的消息传递系统,门户,文档库,电子邮件系统,客户关系pipe理,企业资源计划,会计等等等等。为什么重新发明自己的车轮,你可以自定义一个支持良好的第三方产品。

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

还可以利用PaaS(比如说Google App Engine)的优势,并在必要的时候,通过从IaaS提供商(例如Amazon)提取一些虚拟机进行一些数字处理,然后发回输出到Google App Engine。

通过这种方式,您可以享受到两全其美的效果 – 您可以在GAE中快速开发可扩展的应用程序,然后通过运行您希望从Amazon虚拟机获得的任何程序来增加它。

这个不断变化,现在Windows Azure也支持VM,所以它现在也是一个IaaS提供者。

现在如何免费亚马逊EC2一年做一个更好的比较。 看一下这个。

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