2011-07-15 18 views
14

非常に簡単な質問です。 JBoss上で実行される.war(〜40MB)ファイルがあります。 展開のベストプラクティス:warファイルを展開形式で展開する必要がありますか?か否か?Java Webアプリケーションの展開:爆発するかどうか爆発しないか?

爆発した場合は、いつでもプロパティファイルを更新することができます(プロパティファイルを変更するたびに新しい戦争を行う必要はありません)。

しかし、戦争を展開した形式で展開するのがベストプラクティスであるかどうかはわかりません。

ご了承ください。 :)

+0

また、「抽出された」の代わりに「爆発」と呼ばれることに決めたのは誰ですか?確かにそれはより楽しいですが、私たちはすべての人々のことを何かを呼び出す必要があります:)。 – bbarker

答えて

8

確かに分解された内容を変更することは、より迅速かつ効率的ですが、監査とトレーサビリティの考慮があります。 WARファイルをデプロイして "封印された"ものとして扱うことの利点の1つは、ソースコード管理システムで変更を加えなければならないことです。あなたは確かに、何らかの監査証跡なしに、アプリケーションの構成で望みどおりのものを変更する能力を人々に持たせたくありません。

懸念事項のJava EE分離は、通常、WARの開発者がアプリケーションサーバーの管理者と同じでないことを意味します。開発者が直接アクセスできない場合は、アプリケーションを熟知していない人が徹底的に変更していることを意味します。

私は、開発者が分解されたWARを修正することを禁じる極端な考え方を擁護しているわけではありません。

+0

ありがとう@duffymo。私はそれを検討します。しかし、私の要求に基づいて、これまでのバランスは爆発的に傾いています。 – pavanlimo

+0

数年後、私はこれが質問のためのより適切な答えだと思います。あなたが本当に必要な場合を除いて、答えは爆発しません。 – pavanlimo

1

再展開せずに.war内の設定を変更する必要がある場合、私は展開することをお勧めします。それ以外の場合は、ファイルを展開することをお勧めします(jbossはファイルをtmp/deploy/..に展開します)

+1

しかし、実稼働環境用に展開された形式で展開するのは「OK」ですか? – pavanlimo

+2

はい、もちろんです。他の多くのサイト運営者もこれを行っています(TeamCity、Hyperic HQなど) – powerMicha

+0

その情報のための@powerMichaに感謝します。万が一、Java Webアプリケーションのデプロイメントのベストプラクティスについて話しているドキュメントや記事がありますか? – pavanlimo

14

warファイルを展開形式で展開する必要がありますか?か否か?

これにはいくつかの要因に依存します:

  • あなたは、アプリケーション・サーバーの管理者が展開した後、WARファイルの内容を変更することを要求しますか?答えがyesの場合、特にプロパティファイルや設定ファイルが関係する場合は、展開形式を使用する必要があります。これにより、完全なWARファイルを再デプロイする必要なしに、ファイルを変更するのが容易になります。
  • 変更をプロダクションにどのように伝播しますか? JSPファイルを事前にコンパイルしておらず、展開されたWARファイルを含む領域に新しいバージョンのJSPをコピーして展開する場合は、巨大なWARファイルを再デプロイすることはできません最適な解ただし、これは展開の実践に依存することに注意してください。本番環境のWARファイルは、WARファイルの単一のハッシュを使用して、バージョン管理から生成されたビルドのレプリカであることを監査するほうが簡単です。増分変更を展開すると、展開されるすべてのファイルにハッシュが必要になることがわかります。
  • いつすぐにアプリケーションを展開して利用可能にしますか?この点は簡単ですが、アプリケーション・サーバーがWARファイルを爆発させ、必要な成果物を再作成しているため、起動に数分かかるアプリケーションのインスタンスが十分にあります。これにより、アプリケーションサーバーの再起動時にサーバーの動作がWARファイルを爆発させるような動作の場合、大幅なダウンタイムが発生する可能性があります。 JBossや問題の特定のバージョンの動作に気づいていないので、ダウンタイムを許容レベルに制限できることを確認するために、これを自分で確認することをお勧めします。
+0

それはかなり精巧だった。ありがとうございました。 – pavanlimo

+0

@pavanlimo、よろしくお願いします。 –

0

それはとにかく展開されますので、戦争として展開されてもプロパティを変更することができます...違いはありません。開発環境では少なくとも。

しかし、展開された形式で本番環境に展開すると、プロパティファイルを変更できるので、展開後に(本番の)プロパティを変更する必要はありません。あなたが戦争をしたのかどうかは関係ありません。

+0

私はあなたをはっきりと理解できませんでしたが、サーバを再起動すると、変更されたプロパティファイルは元のプロパティファイルに置き換えられます。 – pavanlimo

+0

@pavanlimo私は知っている、我々は開発中に一時的な場所でファイルを変更しました。あなたが開発者やプロダクションでこれをやっているのかどうかはわかりません。私の主張は、プロダクション環境(もしあれば)でプロパティを変更する理由を見ておくべきです。あなたが開発者について話しているなら、それは重要ではありませんが、私は戦争を好む。 – NimChimpsky