我有一个小型的Google App Engine网站似乎已经超出了它,我想迁移到其他地方。
它基于Java / Stripes Framework / Objectify,仅使用来自Google服务的URLFetch。它目前使用约60个前端小时和~4 GB数据存储,每天约有5k的访问者每页浏览量达到25k。
我认为我应该迁移的原因:
我正在评估以下选项:
坚持GAE,优化应用程序,以不断增长的成本生活(缺点:仍然会有高成本和可靠性问题)
使用MongoDB作为数据存储转移到AWS EC2 / EBS(优点:可能是最成熟的解决方案,缺点:看起来很难设置,很容易造成架构/设计错误)。
使用Appscale很大程度上希望我的应用程序保持原样,但是将它托管在AWS EC2上(优点:在纸面上看起来很简单,缺点:似乎假定在很大程度上是Unix开发环境,不知道生产准备就绪或者是什么正在幕后发生)
将CloudFoundry.com与MongoDB一起用作数据存储区(缺点:不知道生产就绪,后测试成本未知)
使用某个托管服务提供商获取VPS或专用服务器,使用MongoDB作为数据存储区进行部署(缺点:可能教会我比其他选项更少的学习内容,需要做大量的系统管理)< / p>
这是一个爱好网站,所以目标的一部分是在实践中学习一些新技术,我只想花时间学习正确的技术。
注意 - 我有一些但非常有限的系统管理技能,特别是在Linux上,我不喜欢这样做。我之前在MongoDB做了一个小项目(从未投入生产)。我从未使用任何AWS基础架构。
我的问题:
一个。 AppScale是否足够成熟以便运行一个小网站而没有太多麻烦(错误,缺少文档等)?学习曲线是否非常陡峭?在方案#3中需要多少系统管理才能使用它?最重要的是 - 我是否正确理解AppScale上的Google 1MB等限制是否全部存在?
湾CloudFoundry是否足够成熟以便运行一个小网站而没有太多麻烦(错误,缺少文档等)?学习曲线是否非常陡峭?在方案#4中需要多少系统管理才能使用它?我认为如果需要,从CloudFoundry.com迁移到另一个CloudFoundry应该相当容易。
℃。在AWS EC2 / EBS上部署的sysadmining涉及到所描述的应用程序的程度是多少?假设我不关心临时中断,但关心永久性数据丢失,我是否需要自己镜像EBS,或者我可以离开AWS去做吗?
d。哪个新选项(AppScale,CloudFoundry,EC2 / EBS)可以在基于Windows / Eclipse的开发方法中正常工作?哪个有最好的Eclipse插件?
我问,因为在快速审查AppScale文档后,他们似乎认为开发虚拟机将由Unix主机托管,这对我来说是另一个麻烦。
即我的哪个选项1.-5。你会推荐我吗?
我现在在#2和#4之间分开。
答案 0 :(得分:4)
只是观察一下:
一个。 AppScale是围绕其他技术(runtimes,datastores)的薄包装器,因此通常它与底层部件一样可靠。对于一个小的非任务关键型网站,IMO足够可靠。顺便说一句,memcache 1MB限制是每个对象,而不是每个memcache。所以我想你可以将它分解成多个较小的对象。
湾我没有使用CloudFoundry的经验,但他们确实说他们是“测试版”并且他们没有SLA:http://support.cloudfoundry.com/entries/20971351-cloud-foundry-sla \
℃。我猜一周几个小时。 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)。
即我个人建议坚持使用GAE(=选项1)。恕我直言,其他任何东西都不太可靠,成本也更高(由于设置/支持成本,甚至没有比较基本服务成本)。
顺便说一句,如果您收到OutOfMemoryErrors,您应该检查您的代码。你在哪里将大量数据保存在内存中?