2012-03-20 3 views
4

環境:が展開

  • のJava EE Webアプリケーション
  • JDK:1.6、AS
  • ます。WebSphereアプリケーションサーバ7、
  • OS:redhatzLinux

私はWebsphereの管理者ではありません。私は以下の問題を解決する方法やスクリプトを開発するように求められています:

私は3つのノードNodeA NodeBとNodeCを持つクラスタを持っています。私のアプリケーションはこれらのクラスタ上で動作します。私はこれらのノードに自分のアプリケーションを配備して、一度にすべてをダウンさせる必要はありません。最近では、このように展開が行われています。コンソールから一度にすべてのサーバーを一斉に停止させるために夜間になります。次に、デプロイメント・マネージャーと同じマシン上にあるメイン・ノードにアプリケーションをインストールし、すべてのサーバーを同期させて1つずつバックアップします。私はを行うように求めています何

は、私たちがアプリケーションをアップグレードするか、これがアプリケーションにダウンタイムの原因であるとして、すべてをダウンさせないことによって、新しいEARファイルをインストールすることです。これを達成する方法はありますか? WAS 7は非常に成熟した製品です。私はそれを行う方法が必要であると確信しています。

私は、アプリケーション(アプリケーション> Websphereエンタープライズアプリケーション)を選択し、更新を選択して「アプリケーション全体を置換」ラジオボタンと「ローカル」ラジオボタンを選択すると、ファイルシステム "を開き、新しいイヤーファイルをポイントします。しかし、その場合は、更新時にすべてのサーバーを停止させることになります。前と同じです。オンライン展開はありません。

私はこれがあるが問題ことができる場合、私はこの

を解決しなければならないツールが教えてください何を使用するのではと思ったので、私はJavaプログラマ午前:

1我々はNODEA をダウンさせます) 2)NODEAをクラスタから削除する(ノードの削除ボタンを押すかremoveNode.shを使用する) 3)NODEAに新しいEarをインストールする(これは同じ管理コンソールでもシェルスクリプトやjythonでも、スタンドアロンサーバーのようなものかもしれません) 3)次にもう一度起動しますそれをクラスタに追加します。 NODEとNODECは古いアプリケーションバージョンで、NODEAには新しいアプリケーションがあります。

その後、我々は今、我々は古い

と新しいアプリケーションとNODECを持つ2つのノードを持っているバッククラスタ

に追加もう一度 を、それを起動 NODEBにapplciationをインストールするクラスタ からNODEB 削除NODEBをダウンさせます私たちはNODECのために同じプロセスを試みます。

これは機能しますか。誰もこれを試したことがありますか?何が起こる可能性があると思いますか。

ここからのご意見をお待ちしております。私はこのフォーラムに経験豊富なpplがいると確信しています。私はこれがまれな問題だとは思っていません。これは、ハイアベイラビリティの要件で組織が望むものだと思います。

ご協力いただきありがとうございます。 シード...

答えて

2

これはHow can i do zero down time deployment on cluster environment?の可能な複製です。基本的にその質問からの私の答えです:

アプリケーションをアップデートした後、 "Rollout Update"機能を利用することができます。更新後にノードを保存および同期するのではなく、次のタスクを自動的に実行するこの機能を使用して、高可用性を維持しながら変更をすべてのデプロイメントターゲットに伝播できるようにします(水平方向のクラスタを想定します。あなたがやるように聞こえるノード):

  1. 停止:クラスタ内の各ノード(一度に、継続的な可用性を有効にする)のために

      マスター構成に
    1. 保存セッションの変更
    2. ノード上のクラスタメンバー
    3. Synノード
    4. スタートに(自動的にアプリケーションを起動する)アプリケーションサーバーまたは
+0

@shelly返事のおかげで、いくつかのいずれかでも同じことを提案し、私はそれを試してみましたが、それはロールアウト更新部分に失敗し、私は展開を更新し、クリックされたときには、展開を開始する「と述べました更新してからマスターリポジトリにコミットしてから、「コミットがマスターリポジトリに保存できませんでした」を2回試しましたが動作しませんでした。ここで何が問題になるか。 – sarmahdi

+1

「ロールアウトの更新」は、HAを維持しながらアプリケーションを更新する適切な方法です。あなたがそれを試みたときに発生した特定の問題に関しては、私はよく分かりません。ログに何か、または追加のコンテキストや情報がありますか?別の質問をして、その問題のトラブルシューティングに役立つことがあります。 – shelley

0

をchronize、次の手順に従うことができます。

  1. 停止ノードA
  2. コメントアウトまたはロードバランサまたはプラグイン(だから、トラフィックがノードに来ることはありません)
  3. 展開からノードAを無効にするアプリケーションを除くすべてのnodeagents。
  4. 変更は、ノードエージェントが起動しているノードAでのみ同期されます。
  5. プラグイン/ロードバランサからノードAのコメントを外して有効にします。

  6. プラグイン/ロードバランサからのノードBのコメント/ディセーブル化により、ノード上のトラフィックの受信を停止します。

  7. ノードBのノードエージェントを起動すると、ノード上のファイルの変更が同期されます。耳のアプリケーションは、同期後に停止して開始します。
  8. プラグイン/ロードバランサからノードBのコメントを外して有効にします。

残りのすべてのノードで手順6,7,8を繰り返します。

よろしく、 Laiqueアーメド