订阅云计算RSS CSDN首页> 云计算

决战云平台之巅:Heroku VS AWS

发表于2012-08-14 15:51| 次阅读| 来源DZone| 0 条评论| 作者Eric Genesky

摘要:随着云计算的发展,云平台也如雨后春笋般冒了出来。最近在选择部署方面有一个讨论,大部分辩论集中在Heroku的相对优势上。我们有一些使用Heroku和亚马逊网络服务(AWS)的体验,让我们深入一些对它们进行比较。

最近在选择部署方面有一个讨论,大部分辩论集中在Heroku的相对优势上。我们有一些使用Heroku和亚马逊网络服务(AWS)的体验,让我们深入一些对它们进行比较。

价格

对许多客户来说,价格是比较的唯一标准,所以最好从这里开始。从价格方面比较来说,麻烦的是没有两项服务是完全一样的,所以很难做一个同类的对比。接下来让我们看看我们Heroku和AWS那分别可以得到什么。

Heroku

  • 免费的dyno

这是一个相当不错的产品。Dyno可以大量运行多种应用:Brochure网站、简单的API和博客等,这些只是这个免费dyno许多可用应用的少数。但是,为了让这个对比公平,我们需要知道这个免费dyno包含什么,以及由哪些字符串连接。

  • RAM:512MB
  • 交换空间:最大1GB
  • 存储空间:最大100MB
  • 计算能力:未知,但感觉就像一个卫星和小型EC2实例之间的东西。

缺点

  • 额外dyno/workers每月35美元
  • 没有其他服务可以运行了dyno上,dyno是严格的应用程序。数据库、后台工作人员和其他服务的通常通过Heroku花费额外的插件或第三方服务。
  • 没有办法增加RAM、存储或CPU性能。额外的存储空间,必须通过如Amazon S3等服务单独托管。APP性能只能通过增加运行dyno的数量来改善。
  • 没有办法安装系统软件。Heroku提供如Imagemagick的一些常用的包,但是如果你另外还需要些什么,你将不得不对其进行破解。

亚马逊网络服务(AWS)

亚马逊弹性计算云(Amazon EC2),Heroku的dynos最相似。一个EC2微型实例在RAM和计算能力上相当于一个Heroku的dynos/workers。然而,在我们的经验中,一个完整的堆栈的Rails应用性能在单个微型EC2实例里和Heroku dyno不太一样。这可能是因为我们在同一个实例上运行数据库和工作。我们可以通过删除不必要的系统进程来缩减实例,但是我们通常会伴随一个小的EC2实例。

正如你看到的,EC2在提前支付时还是很便宜的

  • 平均每月27.77美元。
  • RAM:1.7GB
  • 交换空间:可配置(大概是存储空间的总量减去root分区的量)
  • 计算能力:一个EC2计算单位

它们很难直接比较,但其中的一些数据大大高于Heroku(1600倍的存储空间)。

缺点

  • 你必须自己来部署你的应用程序,无论是通过设置向导、教程还是手动添加。
  • 你必须自己来管理系统。EC2有机器映像的流行的发行版如Ubuntu易被启动,而在这之后你就要来保持它的更新和安全。
  • 缩放水平(即启动多个应用程序实例)不像Heroku那样容易,Heroku只需移动滑块在它们的web界面。如果你想频繁的上下扩展,你最好熟悉操作流程。这似乎是一个很大的缺点,但在实践中,我们很少调整运行一个应用程序的实例的数量。

活生生的例子

比如我们有一个应用程序需要10MB的数据库存储、一个工作进程和SSL。使用Heroku,将产生以下费用:

  • 增加数据库存储20美元。Heroku的免费共享数据库仅提供5MB的存储。它们推出了一个新的选项,但目前还不请清楚它的规格。
  • SSL端点为20美元
  • 35美元的工作进程

总计:每个月需要75美元

使用亚马逊则需要花费:

  • 一个随需应变的小型EC2实例需要57.60美元(或者一年期27.77美元;三年期17.69美元)。

从价格角度看,亚马逊可以很容易的添加或删除服务。而使用Heroku,你则要每个月额外支付一笔费用。

其他注意事项

除了成本外,你要考虑是否可以在Heroku运行你的应用程序。如果你需要运行自定义的二进制文件或从源代码编译,你就必须弄清楚如何破解Heroku。如果你需要存储临时文件,你应该知道Heroku的临时文件系统不会让这一任务很容易。你可能会下了很大的功夫,但仍然碰壁。就个人而言,我有破解法宝可以尝试找到许多Heroku具体问题的解决方法。

另一方面,如果你知道你的应用程序在限制范围内,则在Heroku上部署将是轻而易举的。web界面美观、CLI客户端大部分情况下运行良好(除了它不能管理多个Heroku账户),而且很容易通过附加软件添加其他服务。但如果你认为你的应用程序的需求增长方式不满足于简单的水平扩展,那么你应该考虑AWS。当然,你可以开始使用Heroku随后迁移到AWS,但是在这种情况下,你需要在两个环境下配置你的应用程序,并花费时间去进行迁移。

有其他选择吗?

根据我的经验,没有其他平台可以与Heroku或AWS竞争。有一些Heroku不错的替代品如Dotcloud,但它们收到了Heroku的影响,减少与第三方产品的集成并只有少数的社区支持。

Rackspace是AWS最有力的竞争者,但它缺乏丰富的API和支持。我们希望有更多的竞争对手赶上Heroku和AWS,为我们提供更多的选择。

结束语

Heroku和AWS都是优秀的平台。它们在关键领域都有很大的不同,挑选适合自己的平台才是正确的。这并没有明确的赢家,就我个人而言,我喜欢两个综合起来用:小型应用Heroku,大型应用亚马逊。最终获胜的平台将是那个最能帮助你实现你的目标,并可以长期负担的平台。

本文来自:DZone

0
0
决战云平台之巅:Heroku VS AWS