从开发人员的角度来看,对于大型社交网络应用程序,您会考虑哪个平台?如果你能提供一些细节,你认为什么是优势的选择,这将是很好的。
发布于 2009-04-26 21:21:45
我显然有偏见--我在App团队工作,负责开发人员关系--但这是我的观点:
它们不是直接可比的。有一套应用程序,您可以为其中任何一个,但您将编写不同的东西,在每一种情况下。App引擎提供了一个受限的运行时环境--不对文件进行写入,没有套接字等等--以及一个非关系DBMS。但作为回报,您可以得到一个无限期扩展的运行时环境,以及合理程度的保证您的应用程序将按照您的意愿进行扩展。
另一方面,Azure提供了一个稍微不受限制的环境,它允许您编写更多的应用程序,但要求您编写更多的应用程序--因为您自己正在实现更多的堆栈--并且为可伸缩性提供了更宽松的保证。
最后,AWS提供了最终自己动手的解决方案。它们提供硬件和存储,而不提供其他东西。您可以从头开始构建堆栈,维护它,升级它,等等。你的应用程序只有在你把它写成缩放的时候才能进行缩放,这可不是一个小挑战。但是,你可以完全控制你的硬件。
我的建议是:如果你的应用程序符合app模型--社交网络应用程序很可能是一个很好的例子--在App上编写你的应用程序(Java或Python,你的选择)。它更便宜,而且更容易编写一个可伸缩的应用程序。
如果您的应用程序不符合GAE模型,请选择Azure或AWS,这取决于您是否正在为MS堆栈编写,以及您希望在多大程度上控制执行环境。如果您的大多数应用程序都适合GAE,但小部件不适合,那么您可能会考虑混合使用--例如,在GAE上实时服务,但在S3上存储,或者在EC2上进行批量处理。
发布于 2010-04-27 10:42:11
对我来说,锁定是决定因素。
如果你选择谷歌,你的应用程序将只在谷歌上工作。如果你发现自己在一段时间后不那么满足,你就被困住了。
如果您选择MS,您的应用程序将只在Azure上工作。同样的事情。
在亚马逊,你可以得到(a)虚拟服务器(S),它的工作方式与你习惯的机器完全一样。不满意?拿起你的应用程序,安装在真正的硬件上,完成。
发布于 2009-04-26 19:34:59
我现在的个人选择是使用Java的谷歌(即使我大部分时间都是.NET )。想想成本--它们的模式很难比较。
查看本文- http://www.infoq.com/news/2008/11/Comparing-EC2-App-Engine-Azure
https://softwareengineering.stackexchange.com/questions/64727
复制相似问题