Sonatype Nexus、Jenkins、Collabnet Subversion Edgeの組み込みアプリケーションサーバー

私は、以下を含むビルド開発環境をセットアップする必要があります

  • Sonatype Nexus
  • Jenkins
  • Collabnet Subversion

私のアプリケーションはGlassFishアプリケーションサーバー上で動作します。上記の3つのツールには、すべてアプリケーションサーバーが組み込まれています。私はそれぞれをダウンロードして試してみましたが、今は4つのアプリケーションサーバーが稼動していることに少し注意しています。

私は、それぞれが既存のアプリケーションサーバーに落とすことができるwarファイルの亜種も提供していることに気付きました。私は "Collabnet Subversion Edge"では、戦争インストールオプションが付いていないので、他の選択肢がないと思います。他の2つはwarファイルとしてダウンロードできます。

NexusとJenkinsの両方を同じアプリケーションサーバー上で実行することの短所は何ですか?何か欠点はありますか?私は現時点でそれを設定する方法を調べている1つです。それは、warファイルがアプリケーションサーバーによって展開/アーカイブ解除された後にのみ構成できるようです。

私はまた、正式なテストに使用されるように、これらの戦争ファイルを既存のグラスフィッシュインスタンスにドロップするのを嫌っています。おそらく私はTomcatをインストールして、これらのツールに使うべきだと思います。組み込みサーバーを使用するか、アプリケーションサーバーを1つだけ使用し、必要に応じてさらに多くのメモリを割り当てることをお勧めしますか?これらのツールのいずれかが組み込みサーバーでうまく機能するか、それとも何の違いもありませんか?

ありがとう

0

3 答え

3つのツールすべてが1つのGlassfish(または同様のアプリケーションサーバー)インスタンスを共有できます。問題は、分かりやすいメモリ処理パラメータを設定する責任を負うことです。 1つのアプリケーションでJava OutOfMemory例外が発生すると、すべてのアプリケーションが影響を受ける可能性があります.-(

さまざまなアプリのランチャースクリプトをチェックすると、Javaヒープとpermgen設定のデフォルトがそれぞれ異なることがわかります。

私のお勧めは、各アプリを隔離しておき、埋め込みアプリを使うことです。 JenkinsとNexusはどちらもかなり軽量です(私はCollabnetを使用しません)。

3
追加された

Hudson/JenkinsとNexusは、TomcatやGlassfishでwarファイルとして実行できます。しかし、どちらの方でも、バンドルされたアプリケーションサーバーを使用することをお勧めします。

NexusはJettyを内部的に使用します。 Hudson 3(Eclipseのベータ版)もそうです。 Old HudsonとJenkinsはどちらも内部的にwinstoneを使用します。これらはどちらも非常に軽量のコンテナであり、それらを並行して実行するオーバーヘッドはごくわずかです。

これらのサーバーが実際に行っていること(ビルドの実行、アーティファクトの配信など)から、より多くの影響を受けることになります。

あなたの人生をインストール、アップグレード、およびランタイムサポートのために簡単にするために、私は組み込みのデフォルトのアプリケーションサーバーに固執することをお勧めします。

2
追加された

私はJenkinsを使用していませんが、別の戦争として実行される単一のTomcatインスタンスでネクサスとハドソンが実行されるのを見ました。 nexusの場合、warバージョンとstandaloneバージョンの唯一の違いは、standaloneにはjettyが含まれているため、スタンドアロンで実行できますが、それは単なるラッパーです。実際のネクサスの実行は同じです。

私はジェンキンスにとっても同じことが当てはまると思います。したがって、1つのサーバーで4つのインスタンスを実行できるときに、4つのサーバーを実行する理由はありません。彼らはすべて異なるWebコンテキストを持っているので、うまく動作するはずです。

1
追加された