【问题标题】:Best hosting option for migrating off Google App Engine (GAE) in my case? [closed]在我的情况下,迁移 Google App Engine (GAE) 的最佳托管选项? [关闭]
【发布时间】:2012-12-21 10:40:26
【问题描述】:

我有一个小型的 Google App Engine 网站,似乎已经超出了它的规模,我想迁移到其他地方。

它基于 Java / Stripes Framework / Objectify,仅使用来自 Google 服务的 URLFetch。目前,它使用约 60 个前端小时和约 4 GB 数据存储,约 5,000 名访问者每天进行约 25,000 页浏览量。

我认为我应该迁移的原因:

  • 我早先做了一些假设,这些假设不再有效,并且正在运行 1MB 内存缓存/数据存储限制。虽然我可以对此进行重构,但它可能会增加数据存储操作的数量/整体性能特征会恶化,并涉及数据库转换步骤(我不妨将其用于迁移到其他地方)
  • 我想添加一些功能,这些功能会显着增加存储数据(大约 100 GB)和前端工作时间
  • 当我使用超过免费配额的资源时,成本的增长似乎很快。虽然它们现在很容易管理,但如果该应用程序变得更流行,恐怕它可能不再负担得起。
  • 一些稳定性问题(出现一些 OutOfMemoryErrors 和其他我无法解释的错误,并且无法在我的本地环境中很好地复制)

我正在评估以下选项:

  1. 继续使用 GAE,优化应用程序,承受不断增长的成本(缺点:仍然存在高成本和可靠性问题)

  2. 迁移到使用 MongoDB 作为数据存储的 AWS EC2 / EBS(优点:可能是最成熟的解决方案,缺点:似乎难以设置,容易犯架构/设计错误)。

  3. 使用 Appscale 希望在很大程度上保持我的应用程序原样,但将其托管在 AWS EC2 上(优点:在纸上看起来很容易,缺点:似乎假设主要是 Unix 开发环境,不知道生产准备好还是什么正在幕后发生)

  4. 使用 CloudFoundry.com 和 MongoDB 作为数据存储(缺点:不知道生产是否准备就绪,测试后成本未知)

  5. 通过一些托管服务提供商获取 VPS 或专用服务器,使用 MongoDB 作为数据存储进行部署(缺点:与其他选项相比,我想学的东西可能更少,需要做大量的系统管理工作)

这是一个业余爱好网站,因此部分目标是在实践中学习一些新技术,我只想花时间学习正确的技术。

注意事项 - 我有一些但非常有限的系统管理技能,尤其是在 Linux 上,我不喜欢这样做。我之前在 MongoDB 中做过一个小项目(虽然从未投入生产)。我从未使用过任何 AWS 基础设施。

我的问题:

一个。 AppScale 是否足够成熟,可以在没有太多麻烦(错误、缺乏文档等)的情况下运行小型网站?学习曲线是否非常陡峭?在场景 #3 中使用它需要多少系统管理?最重要的是 - 我是否正确理解 Google 1MB 等限制都存在于 AppScale 上?

b. CloudFoundry 是否足够成熟,可以在没有太多麻烦(错误、缺乏文档等)的情况下运行小型网站?学习曲线是否非常陡峭?在场景 #4 中使用它需要多少系统管理?如果需要,我认为从 CloudFoundry.com 转移到另一个 CloudFoundry 应该相当容易。

c。在 AWS EC2 / EBS 上部署所描述的应用程序涉及多少系统管理?假设我不太关心临时中断,但关心永久数据丢失,我是否需要自己镜像 EBS,或者我可以让 AWS 去做吗?

d。哪些新选项(AppScale、CloudFoundry、EC2/EBS)适用于基于 Windows / Eclipse 的开发方法?哪个有最好的 Eclipse 插件?

我之所以这么问,是因为在快速查看 AppScale 文档后,他们似乎认为开发 VM 将由 Unix 主机托管,这对我来说又是一个麻烦。

e。我的哪个选项 1.-5。你会推荐我的情况吗?

我现在在#2和#4之间。

【问题讨论】:

  • 问题:您愿意为系统管理员/支持支付多少钱?如果您设置自己的解决方案,那么您将需要有人设置并支持它。这将比 GAE 总成本更高。此外,如果您认为 GAE 不可靠,请等到看到 EC2(我知道,我们都在两者上运行)。
  • 您问题中的所有内容都是我必须首先使用 GAE 的许多原因。

标签: google-app-engine amazon-ec2 cloud cloud-foundry cloud-hosting


【解决方案1】:

只是一些观察:

一个。 AppScale 是其他技术(runtimesdatastores)的精简包装,因此总的来说它与那些底层部分一样可靠。对于小型非关键任务网站,IMO 足够可靠。顺便说一句,内存缓存 1MB 限制是每个对象,而不是每个内存缓存。所以我想你可以把它分解成多个更小的对象。

b.我没有使用 CloudFoundry 的经验,但他们确实说他们是“测试版”并且他们没有 SLA:http://support.cloudfoundry.com/entries/20971351-cloud-foundry-sla\

c。我猜一个星期几个小时。 ESB 是基于磁盘的服务,因此您不应该使用它丢失数据。但是您仍然可以将 ECB 增量备份到 S3。有很多解决方案可以自动完成,例如:http://www.stardothosting.com/blog/2012/05/automated-amazon-ebs-snapshot-backup-script-with-7-day-retention/

d。 IMO EC2 是最成熟的,可用的工具最多。请注意,AppScale 只是一个包装器 - 您可以将其部署到 EC2。开发环境(Eclipse+Windows)与部署环境无关(一般是Linux,也可以是EC2上的Windows)。

e。我个人建议留在 GAE(= 选项 1)。恕我直言,其他任何事情都会不太可靠且成本更高(由于设置/支持成本,甚至没有比较基本服务成本)。

顺便说一句,如果您遇到 OutOfMemoryErrors,您应该真正检查您的代码。您将大量数据保存在内存中的什么位置?

【讨论】:

  • 彼得,感谢您的 cmets。 “所以我想你可以把它分解成多个更小的物体。”
  • 是的,实体大小和内存缓存对象大小限制为 1Mb。您存储的哪些结构化数据比这更大?如果你存储二进制或大文本数据,你应该使用 blobstore。
  • 文档在哪里假设本地环境是 Unix?
  • 数据都是文本,但每个文档都会随着时间的推移而增长。恕我直言,此文档假定 AppScale 工具将安装在 Unix 下:code.google.com/p/appscale/wiki/Getting_Started
猜你喜欢
  • 2013-11-15
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多