7

.warサーバーとして実行される非Javaアプリケーションのビルド、デプロイメント、および更新を可能にする、十分に統合されたアプリケーション管理スタックはありますか?たとえば、サーバー(Webサーバーではなく、サーブレットがない)であるメッセージコンシューマー、または.jarJettyが埋め込まれた実行可能ファイル?

の構築とデプロイ.warは非常に簡単です。Mavenには戦争の原型があり、Jenkinsには.warさまざまなアプリケーションサーバーにファイルをデプロイするためのプラグインのヒープがあり、そのほとんどは実行時に新しいWebアプリケーションのアップロードを受け入れます。Elastic Beanstalkのようなツールは、このプロセスをさらに簡単にし、サーバー環境の管理に結び付けます。

対照的に、実行可能ファイルをデプロイすることは、車輪の再発明.jarのように思えます。依存関係をシェーディングし、多数のMavenプラグインを使用して実行可能アーティファクトを作成する最良の方法を整理し、このアーティファクトをどこかに配置してから、ターゲットサーバーにインストールし、必要に応じて交換/アップグレードする方法を見つける必要があります(Debianパッケージこれを行う1つの方法になります)。

これはすべて私には非常に「手動」のように思え.warます。アプリケーションサーバーにアプリケーションをデプロイすることは、そのような環境に自然に適合していなくても、ツールサポートのメリットを享受できるようにするために有利であるように思われます。

4

2 に答える 2

4

これは、アプリケーションをosgiコンテナーにデプロイすることで実装できます。

osgiバンドルの開始時に、osgiライフサイクルに接続してアプリケーションを実行できます。次に、コンテナーをリモートで開始および停止できます(コンテナーがそれをサポートしている場合)。

アプリケーションは、依存関係をosgiマニフェストの一部として定義できますが、Mavenを使用する場合、シェーディングプラグインを使用してjarをシェーディングすることは難しくありません。コンテナー内の数百のジャーを処理するよりも、管理する方が簡単だと思います。

この質問では、jenkinsを使用したosgiバンドルの継続的デプロイについて説明します。

別の(そしてより標準的な)方法は、デプロイメントを自動化するスクリプトを作成することです。おそらく、 puppetchefなどの専用ツールを使用します。puppet用のmavenプラグインがあり、これを使用すると、mavenリポジトリからアーティファクトを抽出してpuppetスクリプトで使用できます。

jenkinsからpuppetまたはChefを実行するのは簡単です。必要に応じて、技術者以外のスタッフにデプロイビルドへのアクセスを提供し、ボタンをクリックするだけで新しいビルドを環境にデプロイできるようにすることができます。

@bagheeraのように、アプリケーションのrpmを構築し、サービスとして開始することは、展開スクリプトの複雑さを軽減するための良い方法です。

于 2012-07-14T11:11:44.620 に答える
3

自己完結型の実行可能 jar を構築するための依存関係マネージャーと、展開用のパッケージ マネージャーを探しているようです。あなたが言及したツール以外に、ビルド + 依存関係管理用のant+ivyと、Linux でのパッケージ管理用のrpmbuild +rpm+yum をチェックアウトできます。

于 2012-07-12T05:28:18.963 に答える