1

Azure プラットフォームを検討していますが、問題が発生しています。

実は、腑に落ちないことがあります…

Web ロールと worker ロールの違いを理解しています。しかし、具体的に Java アプリ用の Web ロールを作成するにはどうすればよいでしょうか?

Eclipse で Azure 用の Java アプリを開発する場合、Java サーバー (Tomcat7 を選択) + jdk をコピー/貼り付けする必要があるためです。エミュレーター内でJavaアプリを実行するだけだと思います。

しかし、webrole としてアプリを azure にデプロイする場合...war パッケージ + xml 構成ファイル (cscfg など) のみをアップロードするか、サーバーと jdk もアップロードしますか? 「エミュレーター」パラメーターの代わりに「クラウド」パラメーターを使用してプロジェクトをビルドしようとしたところ、150Mb の巨大な cspkg ファイルが作成されました...アプリを更新する必要があるたびに 150Mb をアップロードすることは真剣にできません...

.war ファイルのアップロードを許可しないのはなぜですか? また、サーバー ディストリビューションをアップロードする必要がある場合、フェールオーバーとセッション レプリケーションはどのようにセットアップされますか??

私はおそらく何かを逃します...

回答ありがとうございます


編集 :

実際、私が Web から読んだところによると、Java アプリケーションは Azure によってネイティブに処理されないため、パッケージ内に独自のアプリケーション サーバー (Tomcat、Glassfish など) を提供する必要があり、起動スクリプトがサーバーを実行します。あなたのアプリを中に入れて。新しいパッケージを再デプロイするたびに、jre + サーバー バイナリ + アプリケーション コードをアップロードする必要があります。

セッション レプリケーションなどの組み込みサポートはありません。複数のインスタンス間でセッションを「共有可能」にする場合は、Table Storage サービスを使用してセッション情報を保存する必要があります。

注:Eclipseでは、最新のプラグインでスティッキーセッションを設定できますが、それについては詳しくわかりません

したがって、Java アプリは Web ロールとしてではなく、独自のサーバーを追加するワーカー ロールとしてデプロイされます。

Webroles は、.NET および PHP アプリケーション専用です。

私が間違っている場合は修正してください。

4

2 に答える 2

1

回答ありがとうございます。

これは別の疑問をもたらします: Java パッケージの新しいバージョンをデプロイすると、「ボンネットの下」で何が起こるのでしょうか?

tomcat が主要なセキュリティ修正をリリースしたとしましょう。Tomcat の新しいバージョンを cspkg に埋め込むか (heavyyyyy)、または (David) が提案したように、blob に保存して (light !!) 使用する必要があります。もちろん、ほとんど更新されていない Java コードです。すでに実行中のインスタンスにこのパッケージをデプロイします。

彼らはどうなりますか?新しいパッケージで再起動しますか? 新しいインスタンスを生成し、現在実行中のインスタンスを強制終了しますか? 各インスタンスで実行中のアプリケーション サーバーを強制終了し、新しいパッケージ内で新しいアプリケーション サーバーを実行しますか? (非永続的な) ローカル ストレージ (安価なキャッシュとして使用する場合) はどうなりますか? 使用中のセッションはどうなりますか (BLOB に保存されず、インメモリにのみ保存されている場合)。

Azure 内のさまざまな Java サーバーのベンチマーク/比較表はありますか? (メモリフットプリント、同時接続など..

私の質問は奇妙に思えるかもしれませんが、私は現在 Google App Engine で作業しており (そして Azure に移行したいと考えています)、アプリをデプロイ/更新するために必要な唯一のアクションは、Eclipse で [デプロイ] ボタンをクリックすることです。そのため、現在、物事はまだかなり混乱しています。しかし実際には、独自の jre と独自のアプリケーション サーバーをアップロードする必要があるという事実により、多くの自由が追加されます。これは PaaS 内に IaaS の一部をもたらします。

于 2012-02-06T10:13:52.457 に答える
1

あなたが正しいです。一般に、Web ロールで Java/Tomcat を実行することもできますが、Web ロールでは IIS 内に少なくとも 1 つのサイトが必要です (IIS と Tomcat は TCP ポートを共有できないため、ポート 80 をこのサイトにバインドしないでください)。

Azure VM Roleで試す必要があります。このシナリオでは、すべてのシステム要件 (JRE、Tomcat など) で仮想マシンをローカルに作成します。この仮想イメージを VM ロールのテンプレートとして Azure にアップロードします。これで、アプリケーション ファイルのみをアップロードできます。

また、Blob Storage から JRE と Tomcat をダウンロードして解凍するスターアップ タスクを使用して、アップロード/デプロイ プロセスを高速化することもできます。Azure Bootstrapperが役に立ちます。

于 2012-02-05T23:05:57.033 に答える