Microsoft ITが6週間で顧客向けアプリケーションをWindows Azureにデプロイした方法

How Microsoft IT Deployed a Customer-Facing Application to Windows Azure in Six Weeksを元ネタに投稿したエントリーです。

Microsoftボリュームライセンスサイトで提供しているOnline Product Use RightsとOnline Service Provider Use RightsツールをWindows Azure上に移行しました。

既存の構成

Figure 1. Online PUR legacy architecture

マイグレーション後の構成

Figure 2. Final Windows Azure architecture for the Online PUR/SPUR tool

最終目標

  • Windows Azure platform上に完全にホストすること
  • Microsoft.com上でホストしていた時と同様のエクスペリエンスとパフォーマンスを提供すること
  • Windows Azure platformの長所と可能性を生かす設計であること
  • アプリケーションのコンポーネントとコードを可能な限り再利用することで効率よく移行すること

設計

  • WebアプリケーションUIはVM Roleへ
    コアコンポーネントにMNP Frameworkを使用しており、これを使用しないと大幅な書き換えが必要になる。MNP FrameworkはWindows Azure Webロール上で動作させられなかった。
  • WebアプリケーションビジネスロジックはWorker Roleへ
  • SQLServerデータベースはSQL Azureへ

SQL Azure絡みで実施した対応

  • Textデータ型
    SQL ServerのTextデータ型は、SQLAzureでは提供されていません。
    代わりに、nvarchar(max)データ型を使用しました。
  • クラスター化インデックス
    SQL Azureのテーブルはすべてクラスター化インデックスが必要です。
    クラスター化インデックスの無いテーブルにクラスター化インデックスを作成しました。
  • Microsoft Office Open XML
    Microsoft Office Open XMLに対応していません。
    アプリケーションコードを修正し、別のXML機能を使用するようにしました。
  • SQL Agent
    SQL Agentがありません。
    SQL Agentでやっていた自動監視を、Microsoft System Center Operation Managerで実施するためのユーティリティを書きました

結論

Windows Azure platformを使用して、Microsot ITは、レガシーアプリケーションを6週間でWindows Azureにホストするソリューションへマイグレーションしました。

マイグレーションするには、アプリケーションコードを多少リファクタリングする必要がありました。Microsoft ITは、Windows Azure platform上でアプリケーションを動作させるためのマイグレーションプラクティスを得る機会となりました。

プロダクトとテクノロジー

  • Windows Azure VM Role
  • Windows Azure Worker Role
  • SQL Azure
  • System Center Operations Manager 2007 R3
  • Microsoft Visual Studio 2010
  • Windows Azure SDK 1.4