normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Windows Azure 上で Java アプリケーションを動作させるためのTIPS

ついったーを眺めていたところ、Azure チームの方が以下の発言をしていた。

「クラウドとして Windows Azure を利用するJava開発者なら、この記事は必ず読むべき」という事らしい。せっかくなので、記事を通読して得た知見を以下に記載する。

JavaでWebアプリを動作させるには

サーブレットJSPを対象としたアクセラレータが公開されている。Jetty版は id:haru-tama さんが作成していることも特筆したい

RoleEntryPoint や VMロールが提供されたことで若干注目度がさがったものの、Windows Azure上で任意のアプリケーションを動かす AzureRunMe も健在だ。

Windows Azureに限らず、クラウドサービスではインスタンス数を増加することでスケールアウトすることが可能だ。この際、セッションデータの共有方法を検討する必要があるが、Java アプリケーションの場合、以下二つの方法が提供されている。

  • Atomus TomcatAzureSessionManager
    • Javaアプリケーション専用(というか、Tomcat専用と思われる)。JBoss ASとかはTomcatをバンドルしているので動作すると思われるが、Jetty や WebLogic, WebSphere等は動作が難しいと予想される。
    • jar として提供され、Tomcatが動作する Workerロールに配置するだけで動作する?ため、追加ロールは不要
  • Windows Azure Sticky HTTP Session Router
    • Javaアプリケーションに限らず任意のアプリケーションに対して Sticky なセッションを提供する。
    • 全てのリクエストを受け付けるロールを新規に立ち上げる必要がある。

RDB関連について

もともと SQL Server を利用している場合、ほぼそのまま SQL Azure に移行することが可能だ。こちらに関しては以前に記述した記事があるため、是非参照して頂きたい。

また、移行ツールとしては SQL Azure Migration Wizard が存在する

ストレージサービスについて

最近は息をしていないので不安を感じているが、以下のプロジェクトが存在する。

利用方法については、@IT に以下の記事が公開されているので別途参照して頂きたい。

開発ツールについて

こちらについては、皆が大好き? Eclipse での開発ツールが提供されている。

ストレージエクスプローラ、開発Fabric、開発Fabricでのデバッグ機能等が提供されている。

所感

Java 版の開発環境も整ってきたが、Java向けのロール提供 Java版 AppFabric のバージョンアップ等が足りないというのが印象だ。セッション共有、SQL Azure の利用は可能であるため、通常のWebアプリケーションであれば動作は可能だと考えらえる。

以下はJava版 AppFabric だが、大分更新が止まっている。。。