使用AND设计要部署的应用,而不使用Google App Engine

时间:2013-05-18 20:44:07

标签: java google-app-engine rest google-cloud-datastore

使用Google App Engine完成应用程序开发后,如果我不需要App Engine就可以轻松分发应用程序?我唯一想到的是GAE有一些使用数据存储区的专有API。因此,如果我需要将我的应用程序作为.war文件(例如)提供,而不会使用App Engine进行部署,我需要做的就是在构建.war之前首先重构任何获取/存储数据的代码。 , 对?

我不知道提供完成的网络应用程序产品的标准方法是什么 - 我只使用过GAE,但我现在正在启动一个项目,目前对最终可交付成果的要求不确定。

所以我想知道,如果我为GAE开发,转换有多容易?

此外,在为GAE撰写文章时,我可以做些什么或考虑什么来优化项目,以便我最终可能拥有的任何包装选项?

2 个答案:

答案 0 :(得分:1)

只要您的应用没有任何依赖于Google App引擎的元素,只要该位置可以支持Tomcat或GlassFish服务器,您就可以在任何地方进行部署。有时这需要您手动安装服务器,因此您必须阅读它。有很多关于这个主题的帮助,只是尝试将您的问题分解为尽可能最低的步骤。

我还建议使用像spring和hibernate这样的框架来帮助减轻头痛。他们需要一段时间才能理解,但如果你想要在余生中进行编程,那将是值得的。

答案 1 :(得分:0)

我不同意Pbrain19。

GAE数据存储区与SQL完全不同,并且对于事务具有自己有趣的最终一致行为。这意味着对于需要强一致性或事务的任何事情,您将不得不使用适当的祖先来构建数据。这将对您的代码产生相当大的影响。

您还需要对数据结构进行非规范化(与SQL相比),以最大限度地降低数据存储成本并提高性能。您可以在SQL中执行许多查询,而这些查询在GAE中无法执行,您必须以解决此问题的方式构建应用程序。

一旦你做了这些,你可能会有很大一部分应用程序需要重建。

你也不想使用Spring,因为它会让你的实例启动时非常痛苦。

因此,除非它是一个非常简单的hello world应用程序,否则重构将不会是微不足道的 - 特别是在您开始在任何数据建模中使用祖先时。

如果您使用GAE数据存储区,我建议您不要尝试将应用设计为便携式。

如果您正在使用Cloud SQL,那么制作便携式应用程序会更好。