什么时候应使用以下各项:Amazon EC2,Google App Engine,Microsoft Azure和Salesforce.com?


88

我是从很一般的意义上问这个问题。从云提供商和云消费者的角度来看。同样,问题也不是针对任何特定类型的应用程序(事实上,其目的是要知道哪种类型的应用程序/域可以适合哪个云平台-SaaS PaaS IaaS)。

到目前为止,我的理解是:

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

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

SaaS:软件应用程序。

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

编辑:好的,我将以更具体的方式进行介绍-

Amazon EC2:您无法控制硬件层。但是您可以选择OS映像,Dev Framework(.NET,J2EE,LAMP)和Application,然后将其放在EC2硬件上。您可以在EC2上部署使用Google App Engine或Azure构建的应用程序吗?

Google App Engine:您无法控制硬件和操作系统,并且获得了用于构建应用程序的特定开发框架。您可以使用任何现有的Java或Python应用程序并将其移植到GAE吗?反之亦然,是否可以将基于GAE构建的应用程序从GAE中取出并移植到Websphere或Weblogic等任何Application Server?

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


2
您忘记了Rackspace Cloud / Rackspace Cloud服务器
phoebus

2
这是一个有趣的问题,但也许更适合ServerFault,因为它更多的是关于如何分发服务器应用程序,而不仅仅是编写应用程序。也许您应该在SF上发布第二篇文章,引用该文章,并添加从此处到SF的Q的链接。这样,您就可以从程序员和系统管理员那里获得更好的视野!
Wim 10 Brink

@phoebus还有CloudSigma,它鲜为人知,但具有很好的可扩展性。
AwesomeUser 2014年

Answers:


58

好问题!如您所指出的,不同的产品属于不同的类别:

EC2是基础架构即服务;您将获得VM实例,并根据需要对其进行处理。Rackspace Cloud Server大致相同。

Azure,App Engine和Salesforce都是平台即服务;不过,它们提供了不同级别的集成:Azure几乎可以让您运行任意后台服务,而App Engine则是针对短暂的请求处理程序任务(尽管它还支持任务队列和计划任务)。我对Salesforce的产品并不十分熟悉,但是我的理解是,它在某些方面与App Engine相似,但在特定领域更加专业。

属于软件即服务的云产品包括从Amazon的Simple Storage Service和SimpleDB之类的基础架构到完整的应用程序(如Fog Creek的托管FogBugz,当然还有StackExchange),应有尽有。

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


嗨,目前,我们使用Godaddy和arvixe,但我们计划迁移到Amazon AWS或Azure,我从这里了解到,需要对AWS进行很多代码更改,但作为在线零售网站,我们不希望对AWS进行任何更改。代码,因为这需要时间,因此在这种情况下,最好的托管方式是什么?
shaijut

13

这是一个很好的问题。完全公开,因为我只是Azure的一部分,但有其他方面的经验。

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

  • SQL Azure-更改连接字符串,上传数据库,开始!
  • 队列的工作方式与MSMQ相似。
  • 无论您以何种方式摇晃,Blob几乎都是Blob,但它们像疯了一样缩放。
  • 表存储组件之所以不错,是因为它为名称/值对提供了令人难以置信的可伸缩性-但需要一些时间来习惯。
  • 服务总线是我最喜欢的服务,因为它支持多种通信方式。两个SB端点首先尝试彼此连接,如果它们无法连接,则它们会通过云进行路由-当防火墙有碍访问时,这将实现非常安全和可扩展的处理。
  • 访问控制列表-通常与服务总线搭配使用,以确保合适的人访问正确的事物-在云中考虑SAML。

希望对您有所帮助!


8

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

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

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

该平台无法解决所有问题。

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


6

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

成本不只是每个实例每小时的美分x。成本包括维护,开发,管理等。在我看来,云的巨大好处是使客户不必管理任何不在其核心业务能力范围之内的事情。如果我是一家保险公司,我希望我的开发人员专注于可以解决我的理赔,费率等需求的保险问题。我宁愿避免处理电子邮件服务器,文件服务器,文档库和管理OS补丁程序的问题,服务包等。

因此,我认为最大的收益来自SaaS和PaaS云产品。仅当PaaS或SaaS对特定需求有严格限制时(即我需要安装一组专有COM组件而Azure不支持它们),才应使用IaaS。

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

PaaS非常适合支持公司主要业务产品的核心业务软件。使客户不必处理操作系统管理,并使客户专注于业务系统开发,这是其他人无法为客户做的事情。


3

您还可以利用PaaS(例如Google App Engine)的优势,有时甚至在必要时通过从IaaS提供商(例如亚马逊)中撤出一些虚拟机来进行一些数字处理,然后再发送回去来扩展它。输出到Google App Engine。

通过这种方式,您可以兼得两者-您可以在GAE中快速开发可扩展的应用程序,然后始终可以通过从Amazon虚拟机运行所需的任何程序来对其进行扩展。


听起来很有趣@ joemar.ct!那将是什么样的任务?在哪里可以找到有关该方法的教程?
Andru

2

这种情况一直在变化,现在Windows Azure也支持VM,因此它现在也是IaaS提供商。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.