仮想化環境はWindows Server 2008のHyper-Vをベースに、SLATやラージページなど最新のハードウェアアーキテクチャを利用。デプロイメントの方法としては、まずホストパーティションにホスト用のVHDファイルを導入。OSの差分VHDファイルをロードし、VHDファイルを直接起動させている。

ゲストパーティションも同様にOSおよびOSの差分、そしてアプリケーションのVHDをロードして起動する方式だ。

ちなみにWindows Azureでは、IISを利用してWebサイトやWebサービスのアプリケーションを実行するWebロール、ストレージサービスのQueueを経由してIISなしでバッチジョブやWindowsサービスのような処理を実行するWorkerロールというインスタンスが用意されている。

ゲストパーティションのOS部分はこのロールに応じたVHDがロードされるため、ロールが同じであれば既存のVHDファイルをそのまま利用することが可能だ。もちろんこれら一連の作業は自動化されており、ユーザーが意識することなく利用できる。

ロールが同じであれば、ゲストパーティションのOS部分に既存VHDファイルをそのまま利用できる

リクエストに応じて複製されるWebロールおよびWorkerロール

アプリケーションの配布は、Visual Studioで配布メニューを選択するとZipアーカイブのパッケージ「cspgkファイル」およびコンフィグレーション用の「cscfgファイル」が作成される。この2種類のファイルをWebポータル上にアップロードし、実行するという方式だ。なお、cscfgファイルはアプリケーションのアップロード後に変更することも可能となっている。

アプリケーションの配布とコンフィグレーション方法

実際にAzure Servicesへログインした画面。本番環境の「Production」およびテスト環境の「staging」が用意されている

ローカルからのアップロードも可能だが、今回は時間の関係からストレージ上に保存してあるプロジェクトファイルを使用した

cscfgファイル内にある「Instance count」の数値を書き換えることで、Windows Azure内のデータセンター内でスケールアウトを実現している