何时应该使用以下内容: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/