Heroku vs EngineYard:哪一个更值钱?

时间:2010-02-04 03:49:21

标签: ruby-on-rails heroku web-hosting cloud-hosting engineyard

我在谷歌上看了这个,但在我致力于这两项服务之前想要更多的意见。有没有人有过任何一种(或两种)服务的经验?任何一个都有任何优点或缺点吗?特别感兴趣的领域是:

  1. 安全
  2. 稳定性
  3. 可扩展性。
  4. 价格

6 个答案:

答案 0 :(得分:66)

时髦,

我曾经在Engine Yard工作过,所以让我向您介绍我们的Engine Yard Cloud服务(在AWS上运行)。我会让你自己研究其他选择。

  1. 安全 每个Engine Yard Cloud帐户都是其幕后的完整亚马逊帐户,这意味着您将获得专用于运行应用程序的完全硬件强制的虚拟机。因此,在人们的C Gems,Ruby,乘客,linux等中利用零日缓冲区溢出等攻击者只能访问一个帐户。数据路径中没有共享基础结构。我们会查看堆栈中所有元素的安全漏洞报告,并在重新部署时自动获得新补丁。您可以获得对实例的完全SSH访问权限,并获得正常的服务器环境,以便在需要安装Solr或Sphinx等软件包或图像处理等时使用。
  2. 在我看来,硬件级虚拟机是亚马逊成功的基础之一,为什么在虚拟机成熟之前没有出现这样的事情(但我有偏见,因为我曾经是VMware的人,看到这种情况发生了实时)

    1. 稳定性 我们在Ruby / Rails组件中可以信任和不可信的方面拥有丰富的经验。目前在我们的“不部署”名单上有雪貂,剑圣和桅杆。否则,我们会继承AWS正常运行时间,因为我们在数据路径中没有共享基础架构。 AWS的正常运行时间相当不错,但我还是不会尝试使用它来运行核电站。部署可靠性最近有所不同 - 亚马逊似乎在容量利用率方面更接近风,因此在某些情况下,容量增加请求将失败并且必须重新发布。

    2. 可扩展性。 我们在Engine Yard云上运行了一些大型应用程序。 Playmesh去年11月拥有1号iphone应用程序,并提高了处理能力。我们甚至对一个小型实例(4个mongrel)进行了基准测试,能够在恒定负载(非常简单的应用程序)下每月处理85M / Req。我们建议人们在更大的实例上运行,如果他们想要大量的磁盘i / o,亚马逊为更大的实例大小提供更好的i / o吞吐量。在任何情况下,添加或删除容量实际上只需单击一个按钮即可。

    3. 价格 在一个月内运行一个小型实例(4个mongrel)全天候将花费你在EY Cloud上花费79美元或者每小时0.11美元(在亚马逊裸体上花费8.5美分)。这包括数据库管理,但您需要为存储和带宽支付少量费用 - Engine Yard Cloud以AWS的成本传递。我们非常有信心,一旦您达到任何合理的流量,我们就会成为杀手锏。

    4. 让我添加一些您可能想要考虑的其他标准......

      1. 支持 - >您可以免费获得社区/论坛支持,但我们也有一个票务支持选项,高级支持选项让您的应用程序全天候观看,我们会在您的应用程序关闭时通知您并为您排除故障,如果它是支持的堆栈,那么问题

      2. 社区 - >有些人关心这一点,有些人不会,但Engine Yard赞助了2个全职Rails贡献者,一个三人JRuby团队和下一代Ruby VM,Rubinius。我们致力于帮助使Rails和Ruby成为开发Web应用程序的最佳平台。

      3. 自动化 - >你只需观看演示即可看到它的实际效果,但它很整洁。我们还在使用命令行git部署进行测试,查看知识库以查看它的实际效果。

答案 1 :(得分:32)

我假设你在谈论Engine Yard的EC2托管,而不是他们的全服务堆栈?

我正在和Heroku一起工作,并且喜欢它。 在价格上,Heroku对我来说是明显的赢家。带宽成本由Heroku抽象,这是一个巨大的胜利。

在安全方面,这有点难以辨别 - 这是云的常见批评之一。您对这两种服务上运行的堆栈没有太多的了解。

Heroku投入了大量技术来监控和无缝管理应用程序实例。出现问题,实例被删除,新的实例开始出现。精彩的东西。

至于可扩展性,两者都支持亚马逊并利用EC2和EBS,因此在原始容量方面可能大致相同。

答案 2 :(得分:27)

它们是完全不同的方法。

Heroku是一个ruby PaaS解决方案,类似于谷歌应用引擎。只要您的应用程序适合他们提供的生态系统,它就允许您在没有系统管理技能的情况下扩展应用程序。

Engine Yard是一种更传统的服务,可让您访问盒子并为您提供工具,让您的生活更轻松。由于它不是抽象,它为您提供了更大的灵活性,但也需要您更强的系统管理技能。

答案 3 :(得分:7)

这是一个相当陈旧的主题,反应相当陈旧,所以我认为更新的回复可能会帮助一些人。

对于一些相当大而复杂的Web服务,我有很多使用Heroku和Engine Yard的经验。我的公司使用Engine Yard运行Andromo App Maker for Android,我们使用Heroku运行AirBop Push Messaging Service for Android。每个平台都有自己独特的功能。

您的问题有点难以回答,因为您感兴趣的大部分标准都不是每个平台的差异化功能。无论如何,我会回答这些问题,但我也会谈到每个平台的一般理念以及我认为在您的决策中更有用的技术支持差异。

安全性,稳定性和可扩展性是一种清洗。这两种服务都与任何Amazon EC2实例一样安全稳定。可扩展性实际上也是一样的。虽然Heroku限制你到几百个小(512k)实例(或者现在是'双'小),但是Engine Yard会让你使用额外的大量的CPU和内存,但在现实世界中,它们的大致相同。结束。使用Heroku,您可能需要产生一大堆廉价的小型服务器来处理您的负载,或者使用Engine Yard,您将使用一些更昂贵的大型服务器。对于网络请求,它可能并不重要。

价格是我可以更好地解决的一个因素。首先,如果你只是在摆弄,Heroku是免费的。只是不要混淆这意味着你可以在他们的免费套餐上真正运行一个真正的网站。你不能。 Engine Yard也为您提供免费的游戏时间,但让我们来谈谈现实世界的应用程序。 Heroku平滑了定价,向您收取“dynos”(我提到的那些小型Web服务器)和PostgreSQL数据库计划。它们的价格包括存储,备份,带宽等,所以很容易只计算一些成本。 Engine Yard将事情分开,您需要使用他们的计算器来确定会花费多少 - 但在您决定启动新的'实例'之前,它们都会为您呈现。

我发现Heroku的数据库计划非常昂贵(与他们使用的EC2实例成本相比)。他们肯定在这里弥补了他们的利润。对于dynos而言看起来便宜的东西现在需要一个200美元到400美元/月的数据库(开始达到你可能看到的更合理的性能水平800美元以上)。我也讨厌隐藏/掩盖数据库规范的方式 - 您需要通过转到Amazon的实例大小数据并查看H​​eroku用于“缓存”的“内存”来推断功能。

Engine Yard的数据库就是您想要的任何服务器实例。他们使用与Web实例相同的EC2标记。这里没有欺骗。它更透明。

一个比另一个便宜吗?也许吧,但是我不会让你的决定变得浑浊。

最后,我喜欢Engine Yard的“裸机”控制。我们需要Andromo,因为我们正在动态生成和编译Android应用程序,并且有一些非常具体的要求。 Engine Yard使我们能够完全控制每个服务器,Unix软件包,SSH等。另一方面,Herkou在您可以从硬件中抽象出应用程序并进入那些dynos思维的情况下非常有效。它们可以在几分钟内快速轻松地启动数十个。正如我所提到的,我们在Heroku的平台上运行AirBop并使用HireFire自动化我们的实例创建/销毁 - 这对我们非常有效,因为我们的负载变化很大且出乎意料。

另外需要考虑的是技术支持。根据我的经验,Heroku的免费/包含支持几乎没用,而Engine Yard非常好。安永过去常常收取基本支持费用,但已开始包括所有计划(加上他们有优先24/7选项可用)。我发现他们真的知道他们在谈论什么。

希望这有帮助!

答案 4 :(得分:5)

我检查了Bitnami,Heroku和Engine Yard并对heroku和Engine Yard进行了一些严肃的测试,而Engine Yard是迄今为止的胜利者。 Heroku做了一些非常奇怪的事情,例如限制250 MB的进程,他们的回答是你必须管理自己的记忆。我看到heroku上的性能出现了严重的上升,似乎有时候进程会挂起而不会重启,因为多个web dynos正在运行(这不应该发生)。如果它们不存在,那么heroku会让进程进入睡眠状态使用过,即使有多个dynos也有一个奇怪的启动问题。加上我无法访问heroku上的日志文件并弄清楚发生了什么的额外不便。已经将相同的代码部署到Engine Yard并观察它的尖叫而没有任何时髦的性能峰值,我不得不说Engine Yard是迄今为止获胜并且最容易部署到您进行系统设置之后。一旦你开始添加网络动态并且性能更好,特别是如果你切换到JRuby堆栈,Engine Yard上的成本实际上比heroku便宜。我尝试在Bitnami上设置一些东西,但是从我记忆中来看,它有点难以使用。我认为heroku是一个很好的解决方案,如果你不关心性能或可扩展性,只想部署一个简单的Web应用程序,它可能比Engine Yard更容易使用。

答案 5 :(得分:2)

我在Heroku和Engine Yard以及Engine Yard Cloud上的PHP应用程序上运行任务关键型Rails和Sinatra应用程序,我的评论是关于#2,稳定性。发动机场胜利,动手。原因是支持人员。如果你的应用绝对必须工作,并且你需要帮助它,那么Engine Yard可以帮助你,特别是如果你投资于高级支持。他们绝对太棒了。 Heroku在工作时很整洁,但是当它不起作用时,他们的支持人员就没那么有用了。

以下是几个月前我需要在收到员工请求后的几天内部署任务关键型内部应用程序的示例:

Intermittent timeouts from an app that should never timeout (NOT an "R12 Request Timeout" error)

我在Heroku上运行了很多应用程序,并且没有一个应用程序遇到过神秘的Web操作问题。只是为了向您保证我确实知道我在做什么并且这不是开发人员的错误。进一步保证,完全相同的代码运行完美,因为我无法从Heroku获得帮助时将其移至Engine Yard。他们在我需要启动应用程序后几天才回复,告诉我可以使用NewRelic解决我的应用程序中的性能问题。太好了,谢谢。

我看待它的方式,支付Engine Yard的高级支持费用比招聘网络运营人员要少得多。我得到了非常有能力的支持,来自一个总是有专家的人在他们不知道的时候进行咨询。让我再说一遍:Engine Yard的支持人员非常棒。

我想我可以稍微评论一下安全性,因为有一次我们的SaaS应用程序遭遇了DDoS攻击。也许这不是问题的真正含义,但我正在以此为借口再次谈论支持人员。我从来没有遇到过DDoS攻击,我甚至不知道为什么我的服务器出现故障。他们诊断出来并帮助我开始缓解。他们帮我在HAProxy和nginx中设置了一些临时过滤器来阻止攻击一段时间,这让我有足够的时间来设置DDoS缓解。

...然后有一段时间整个亚马逊US-East-1数据中心崩溃,一些网站离线。 Engine Yard当时只提供该数据中心的托管服务。几分钟之内,他们就可以选择部署到US-West-1,他们正在帮助所有受影响的客户迁移。如果没有他们的帮助,我们就不会及时赶到那个晚上的黄金时间(我们是夜总会的SaaS),我们可能会失去很多客户,因为这是周四晚上。我们的大夜晚。那天在Heroku上运行应用程序的很多人都是S.O.L.,但是由于Engine Yard的帮助,我们立即在加利福尼亚运行。

还有一些时候,他们拯救了我们公司的某些厄运。可不是闹着玩的。我可以继续讲故事。但是你明白了。 Engine Yard的支持人员是我将所有新的任务关键型应用程序部署到Engine Yard Cloud的原因。