デプロイオプション
事実上、Play アプリケーションはどこにでもデプロイすることができます: サーブレットコンテナの中や、スタンドアロンサーバとして、または Google App Engine、Stack、クラウドにもデプロイすることができます。
スタンドアロン Play アプリケーション
もっとも簡単で堅牢な方法は、Play アプリケーションをどのコンテナにも乗せずに実行することです。バーチャルホストのような高度な HTTP の機能が必要な場合は、フロントに Lighttpd や Apache のような HTTP サーバを使用することができます。
内蔵の HTTP サーバは 1 秒あたり数千の HTTP リクエストを捌くことができるので、これが性能のボトルネックになることは決してありません。さらに、この HTTP サーバはより効率的なスレッドモデルを使用します (Servlet コンテナは 1 リクエストあたり 1 つのスレッドを使用します) 。モジュール を使うことで、別のサーバ (Grizzly、Netty、その他...) を使用することもできます。
これらのサーバは、長時間のポーリングをサポートしており、実行スレッドをブロックせずに非常に長い (長時間タスクの完了を待つ) リクエストや、ファイルオブジェクト (それから、Content-Length を指定すれば、どのような入力ストリームでも) の直接ストリーミングを管理することができます。
開発工程で使用したものと同じ環境を使用するので、この方法でアプリケーションを実行する場合、問題はほとんど起こりません。JEE アプリケーションサーバにデプロイするときにだけ、大量のバグ (異なるホームディレクトリ、クラスローダの問題、ライブラリの競合、その他...) が検出されます。
より詳しい情報については、 アプリケーションの本番稼動 を参照してください。
アプリケーションサーバ
Play アプリケーションは、お好みのアプリケーションサーバで実行することもできます。ほとんどのアプリケーションサーバーは特別な設定なしでサポートされています。
アプリケーションサーバ互換性マトリクス
JBoss 4.2.x | JBoss 5.x | JBoss 6M2 | Glasshfish v3 | IBM Websphere 6.1 | IBM Websphere 7 | Geronimo 2.x | Tomcat 6.x | Jetty 7.x | Resin 4.0.5 |
---|---|---|---|---|---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
これらのアプリケーションサーバで play 1.0.2 が動作することは分かっています; この他に動作する配備環境があれば、遠慮なく報告してください。
デプロイ
アプリケーションを war ファイルとしてパッケージする必要があります。これは、以下のコマンドで容易に実行できます:
play war myapp -o myapp.war
アプリケーションサーバが展開された WAR ファイルの配備をサポートしていることを確認してください。
これでアプリケーションをデプロイする準備が整いました。
アプリケーションのライブラリ間におけるバージョン不整合を避けるため、Play アプリケーションを他のアプリケーションから ‘隔離’ するようアドバイスされています。この手順はベンダに特化したものであり、標準的な JEE/サーブレットコンテナ仕様によるものではありません。
WAR ファイルを ‘隔離’ するために、アプリケーションサーバのマニュアルを参照することをお勧めします。以下の例は、JBoss アプリケーションサーバにおいて war ファイルを隔離する方法です。これがオプションの手順であることに注意してください:
アプリケーションの war ディレクトリにある myapp.war/WEB-INF/jboss-web.xml に以下の内容を挿入 (または新規に作成) してください:
<jboss-web>
<class-loading java2classloadingcompliance="false">
<loader-repository>
com.example:archive=unique-archive-name
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
com.example:archive=unique-archive-name を一意であり続ける名前に書き換えてください。
Google App Engine (GAE)
Play! アプリケーションは容易に GAE にデプロイすることができます。以下のようにして関連する GAE モジュール をインストールします。
play install gae
Google App Engine へのデプロイも非常に簡単です:
play gae:deploy myapp
より詳しい情報については、 モジュールのドキュメント を参照してください。
Stax クラウドホスティングプラットフォーム
Stax クラウドホスティングプラットホーム へのデプロイもこれ以上ないほど簡単です。Stax モジュールのインストールとデプロイにかかるのは数秒です。
より詳しい情報については、 モジュールのドキュメント を参照してください。
考察を続けます
次: 本番環境へのデプロイ