2013-10-08 8 views
6

私はClojure/ClojureScriptで遊んでいて、私はWebアプリケーションを作成しています。私は開発サーバーとしてリングを使用している間はすべてが問題ありません。プロダクションにおけるClojure/Clojurecriptアプリケーションのデプロイ

質問は生産のためにどの容器を使用すべきですか?私は生産のためにリングを使うべきですか?私はTomcatを使うべきですか? Clojureアプリケーションを導入するための推奨される方法はありますか?この側面に関するいくつかのドキュメントを教えてください。

ありがとうございます!

答えて

9

Java対Clojureで書かれたJavaサーブレットの展開については本質的に異なり、すべてのClojure Webライブラリとフレームワークは互換性のあるサーブレットを生成し、多くの展開オプションを持ちます。

nettyを使用して、システムベースのサービスから "lein run"を実行するだけで、リングベースのWebアプリケーションをプロダクションに大きな効果をもたらします。他の多くの人は、lein uberwarを使用してwarファイルを作成し、tomcatでそれをホストすることを選択します。特定のホスティング・メカニズムは、デプロイメント・プロセスよりも重要ではありません。すべてのJavaScriptファイルはCDNから提供されます。 Immutantはまた、楽しいと非常に "enterprisy"の感触とClojure指向の選択です。

最も重要なことは、配備を含む繰り返し可能なビルドを構築することです。 Palletは、学習曲線が少しありますが、行くのに最適な方法です。

6

いくつかのオプションがあります。

最初は簡単です。彼らは展開とテストに十分な無料の層を持っています。私はこれについてさらに詳しく説明しませんが、私はもはやHerokuを使わないことに決めました。

もう1つの一般的なオプションはAmazon AWSです。私はAWSでほとんどのアプリを使用しますlein-beanstalk [申し訳ありません、引用なし]。 Lein-beanstalkはかなり長い間使われてきており、よく管理されているようです。 Compojureを維持している同僚によって維持されています。

私はVPSを使用しています。私はNginxでlinuxビルドをセットアップし、gitでデプロイします。だから、基本的に、私の流れは、サイトを作成し、コンパイルしてuberjarをleinし、展開します。私はいくつかの人々が自分のアプリケーションでleiningen "lien ring server" cantationを使用できることを知っていて、Maven、Tomcat、Vagrantなどのデプロイメントなどの他の多くの設定を使用できますが、java -jar myApp-xxxxxをサーバーとそれは素晴らしい動作します。

ドキュメントに関する限り、Clojureのデプロイに関するドキュメントは特にありません。あなたが最初にあなたがそれを行う時にあなたがVPSルートに行きたいならば、あなたの頭を壁に向かって強打しなければならない。私は、私の問題のほとんどがClojureを特に関与していないことを発見しました。開発では

4

私が使用します。

lein ring server 

lein ring uberwar 

:その後、私が使用してwarファイルにそれをコンパイルするだけwebappsディレクトリに結果のjarファイルをドロップすると、それが動作します良い。私は途中で桟橋を使う。

関連する問題