2013-07-01 97 views
7

我创建了我的第一个Play应用程序。哪种是最适合生产的部署方法?我应该将整个项目复制到生产服务器并运行播放开始?或者我应该从我的应用程序中进行一场战争,并在tomcat/jboss中进行部署?哪个是最推荐的方式?与它的轨道行为类型相比,让它感到困惑。请注意,这应该是一个大数据应用程序,它也可能稍后服务器加载请求。所以我们也在考虑可伸缩性,可用性和性能方面。此应用程序决定部署在云中。Play框架2.1应用程序部署

谢谢。

回答

20

正如其他人所说的,使用dist命令是为一次性应用程序部署Play最简单的方法。然而,阐述,我这里有一些其他的选择和我与他们的经验:

  • 当我有经常更新的应用程序,我通常在服务器上安装游戏,并通过Git的执行更新。这样做,每次更新后,我只需运行play stop(以停止正在运行的服务器),有时然后运行play clean以清除任何可能损坏的库或二进制文件,然后运行play stage以确保存在所有先决条件并执行编译,以及然后最后play start运行更新的应用程序的服务器。它看起来很多,但很容易通过快速bash脚本自动化。

  • 另一种方法是在前端Web服务器(如Apache,Nginx等)后面部署Play。如果要执行某种类型的负载平衡,但这不是必需的,因为Play随附其捆绑拥有服务器。文档:http://www.playframework.com/documentation/2.1.1/HTTPServer

  • 创建WAR归档使用play2war插件是另一种方式来部署,但除非你把它给别人谁已经在你提到的这些servlet容器内置了重大基础设施,我不会推荐它(正如许多大公司所做的那样)。使用servlet容器会增加Play本来应该去除的复杂程度(因此是集成服务器)。没有显着的性能增益,我知道使用这种方法超过前面描述的两个。

  • 当然,总是有play dist为您创建软件包,您可以上传到服务器并从那里运行play start。这可能是最简单的选择。文档:http://www.playframework.com/documentation/2.1.1/ProductionDist

出于性能和可扩展性,在游戏中的Netty服务器将起到非常充分,以卓越的你所需要的。这里有一条信誉良好的链接,展示了Netty在所有框架和“股票”Play应用程序中性能最快的表现,并且在性能方面领先于Rails/Django:http://www.techempower.com/blog/2013/04/05/frameworks-round-2/

不要忘记,如果您需要更多的负载平衡和可用性,您可以随时将您的部署架构更改为在前端服务器后面运行。这对Play来说是一个微不足道的变化。我仍然不会推荐WAR部署选项,除非像我说的那样,您已经有很大的servlet容器安装基础,因此有人迫使您为您的应用程序提供服务。

可伸缩性和性能也与其他因素有很大关系,比如使用缓存,数据库配置,并发使用(Play擅长)以及底层硬件或云的质量平台。例如,Instagram和Pinterest每天都为数百万人提供Python/Django堆栈,该堆栈在所有流行的基准测试中表现平平。他们通过大量缓存和高性能数据库(这通常是大型应用程序的瓶颈)来缓解这一问题。

冒这个问题的答案太长,我只会补充最后一件事。我也习惯了性能和可伸缩性,认为我需要最强大的堆栈和配置来运行我的应用程序。除非你像Google或Facebook那样说话,否则每个算法都必须进行精细调整,因为它每天会被轰炸10亿次。硬件(或云)资源便宜,但开发人员/系统管理员时间不是。您应该考虑在原始性能比较中部署应用的易用性和可维护性,即使在播放性能最佳的部署配置的情况下也可以说是最简单的选择。

+1

谢谢,非常详细的答案... :)顺便说一句,我使用MongoDB去与这个应用程序。 – popcoder

+1

谢谢!同样,MongoDB也很棒,但是和其他数据库一样,它的性能仍然有限制。某些类型的查询需要比关系数据库更长的时间,但是可扩展性的分片要容易得多。取决于数据的结构化/非结构化。一切都是技术上的折衷:-) –

4

您不需要使用Play的控制台来运行应用程序,它会消耗一些资源,它的主要目标是在开发阶段快速启动。

最好的选择是使用文档中描述的dist command。由于这一点,您甚至不需要在目标计算机上安装Play,因为dist创建了可以使用包含所有必需元素的独立应用程序(也是内置服务器,因此您无需使用WAR进行部署在任何容器中)。

如果你打算使用云,你也应该检查优惠,即。从Heroku或CloudBees,它允许您部署您的应用程序只是通过...推动更改通过git存储库,这是非常舒适的方式,检查documentation's home,向下滚动到链接:部署到......了解更多详情。

相关问题