Google App Engine有哪些替代方案?

时间:2020-03-06 14:55:50  来源:igfitidea点击:

考虑到我已经想保留很多代码,GAE有哪些替代方法。换句话说,我正在挖掘python。但是,我的用例更多是请求数量少,CPU使用率类型用例更多,而且我担心自己可能永远无法使用App Engine。我听过很多人在谈论Amazon Web Services和其他类型的云提供商,但是我很难看到其他大多数产品在哪里提供App提供的一系列服务(数据查询,用户身份验证,自动扩展)引擎提供。我在这里有什么选择?

解决方案

亚马逊的弹性计算云或者EC2是一个不错的选择。我们基本上是在Linux VM的服务器上运行,可以通过Web界面(打开和关闭)进行控制,当然也可以通过SSH或者通常设置的任何方式进行访问...
并且由于它是我们控制的Linux安装,因此我们当然可以根据需要运行python。

我对查看如何将App Engine轻松与用于CPU密集型请求的另一台服务器结合起来更感兴趣。

我认为,由于GAE属于自己的类,因此目前不存在GAE的另一种选择(关于代码可移植性)。当然,GAE是云计算,但我将GAE视为云计算的子集。亚马逊的EC2也是云计算(以及Joyent Accelerators,Slicehost Slices),但显然它们也是两种不同的野兽。因此,现在我们处于一种需要根据需要重新考虑体系结构的情况下。

GAE的直接好处是,它与基础架构(可扩展的Web服务器和数据库管理)相关,因此基本上免维护。 GAE更适合那些只希望专注于他们的应用程序而不是底层系统的开发人员。在某种程度上,我们可以认为开发人员友好。现在还应该说,这些其他云计算解决方案还尝试通过提供VM映像/模板,让我们只尽可能多地担心自己的应用程序。最终,需求将决定我们应该采用的方法。

现在,考虑到所有这些,我们还可以构建可能也满足我们需求的混合解决方案和变通方法。例如,GAE似乎并不直接适合我们描述的此特定应用程序需求。换句话说,GAE提供了相对较高的请求数量,较低的cpu周期数量(不确定付费版本是否会有所不同)。

但是,解决此难题的一种方法是构建一个定制解决方案,其中以GAE为前端,以Amazon AWS(EC2,S3和SQS)为后端。有人会说我们最好在AWS上构建整个堆栈,但这可能还涉及重写许多现有代码。此外,作为变通办法,以前的stackoverflow帖子介绍了一种模拟GAE中的后台任务的方法。此外,我们还可以查看HTTP Map / Reduce来分配工作量。

Microsoft Windows Azure可能值得考虑。恐怕我还没有使用过它,所以不能说它是否有用,我们应该记住,它现在是CTP。

在这里查看。

如果我们对云感兴趣,并且可能想为生产和/或者测试创建自己的云,则必须查看Eucalyptus。据称它与EC2兼容,但是是开源的。

AppScale

AppScale是一个平台,允许用户部署和托管自己的Google App Engine应用程序。它会在Amazon EC2和Eucalyptus以及Xen和KVM上自动执行。它已由AppScale Systems开发并维护。它支持Python,Go,PHP和Java Google App Engine平台。

http://github.com/AppScale/appscale

...到2015年差不多了,看来容器是前进的道路。 GAE的替代方案正在出现:

谷歌已经发布了Kubernetes,这是由他们开发的用于管理GCE容器的容器调度软件,但也可以在其他集群上使用。

Docker上即将发布一些PaaS,例如

  • http://deis.io/
  • http://www.tsuru.io/
  • 甚至Appscale本身也支持Docker

值得关注的有趣东西。

TyphoonAE正在尝试这样做。我尚未对其进行测试,但是尽管它仍处于测试阶段,但它似乎在积极的开发中是最少的。