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上に移行しました。
既存の構成
マイグレーション後の構成
最終目標
- 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