2013-10-08 38 views
6

我正在玩Clojure/ClojureScript,并正在编写一个Web应用程序。当我使用ring作为开发服务器时,一切都很好。在生产中部署Clojure/Clojurescript应用程序

的问题是我应该用什么容器进行生产?我是否也应该使用戒指进行制作?我应该使用Tomcat吗?有推荐的方式来部署Clojure应用程序吗?你能指出我关于这方面的一些文件吗?

谢谢!

回答

9

没有什么有关部署是用Java编写的与Clojure中,所有的Clojure的网络库和框架产生compatable的servlet,所以你有很多的部署选择一个Java servlet本质上的不同。

我们使用netty只需要从一个系统服务运行“雷音运行”来运行我们的基于环的Web应用程序在生产中影响很大。许多其他人选择使用lein uberwar来生成war文件并在tomcat上托管该文件。具体的托管机制似乎不如部署过程相关。所有的JavaScript文件都是从CDN提供的。 Immutant也是一个有趣且非常符合Clojure的选择,具有强烈的“企业”感。

因为最重要的是建立一个可重复的构建,包括部署什么打动我。 Pallet是一个很好的方式,虽然它有一点学习曲线。

6

有几个选项。

第一个很简单:Heroku。他们有一个可用于部署和测试的免费层。我不会在这方面进一步细节,但我决定不再使用Heroku。

另一个常见选项是Amazon AWS。我收集AWS上的大多数应用程序使用lein-beanstalk [对不起,这里没有引用]。 Lein-beanstalk已经出现了很长一段时间,看起来很好。它也由维护Compojure的同一个人维护。

我使用VPS。我使用Nginx建立了Linux版本,并使用git进行部署。所以,基本上,我的流程是创建网站,编译lein uberjar,然后部署。我知道有些人可以并且确实在他们的应用中使用了Leiningen“留声机环”服务器,并使用了许多其他配置,例如Maven,Tomcat,使用Vagrant进行部署等,但是我只是运行java -jar myApp-xxxxx服务器,它的效果很好。

至于文档,也确实出现了文件上的Clojure部署专门缺乏。如果你想在第一次使用VPS路线时遇到困难,那么你必须将自己的头撞在墙上,然后弄清楚。我发现几乎没有涉及Clojure的具体问题。

4

在发展中,我使用:

lein ring server 

:然后把它编译成我用一个war文件:

lein ring uberwar 

:和刚落产生的jar文件到webapps目录,它的工作原理精细。我使用码头

相关问题