Microsoftのアーキテクト エバンジェリスト のBill Zack氏は、オンライン プレゼンテーション で、Windows Azure によって提供されるクラウドを使うための重要なシナリオとソリューションについて詳しく説明した。
ある使用パターンでクラウドに合うようにできるアプリケーションと、アプリのオーナーがそれを走らせることにもっと時間を使うため、クラウドにデプロイしない方がいいアプリケーションとがある。
仕事量
- 断続的な場合 – 1日、あるいは1年という一定期間の間で散発的使われるアプリケーション。一日あるいは月の終わりに走る、多くのバッチ処理がこのカテゴリに入る。そのようなアプリケーションに必要な能力を提供するのは、クラウドで動かすより、もっと高くつく。ほとんどの時間で、それぞれの能力は使用されていないからである。
- 早い成長か、早い衰退 – ビジネスの立ち上げによって遭遇する仕事量のパターン。立ち上げ時は、新しいビジネスの成功確率を正確に予測する事はできないし、その結果、実際必要な能力を予測することもできない。立ち上げ時は、普通、需要が伸びるにつれて、時間とともにその能力を少しづつ増加させる。そのようなアプリケーションは、クラウドに合っている。クラウドは、増加するリソースのニーズに素早く対応できるからである。
- 予測できない爆発的増加 – これは起きる、例えば、webサーバへの普通の負荷が、一時的に大きく増加するとき、非常に大きくて、システムは、一時的なアクセス量に対応できない。所有者は、そのような負荷を吸収できるだけの能力を供給しておくべきだったが、そのようなアクセス量のピークを予測することができなかった。例え予測できたとしたら、増やした能力は、ほとんどの時間は使用されなかっただろう。これは、クラウド化すべき候補である。
- 予測可能な爆発的増加 – 時間とともに、予測可能内で、絶えず負荷が変わる。
氏は、続けて、Windows Azure によって提供されるソリューションとともに、計算、ストレージ、コミュニケーション、デプロイそして管理のためのシナリオを記述した。
計算
- オンデマンドのアプリケーション インスタンス – アプリケーションが即座にスケールアップし、その後、スケールダウンする必要があるような、特別なイベントの間に、適応するパターンである。 Windows Azureは、そのようなニーズに、自動的に管理されるWeb Role と Worker Role によって対応する。
- Worker Roleの分散 – これが使われるのは、大きなジョブを小さな塊に分割して、ひとつの塊が、 Worker Roleインスタンスに関連付けされて、大きなジョブが実行される時である。
ストレージ
- Blob –Blobは、大量の構造化されていないデータを保存するために使われる。
- テーブル – 大量のデータを保存するためにリレーショナルでないソリューション。
- DB – SQL Azureは、クラウド中のリレーショナルなデータベースを提供する。
- データ保護 – クラウドに保存されるデータは、もしデータが慎重に扱うべき 情報を含んでいて、それが暴露されない保証を望むのであれば、暗号化できる。 Windows Azureは、近い将来、暗号化/復号のサービスを提供する。
- 情報サービス – Microsoft は、データを売ったり買ったりしたい企業向けのデータマーケットを持っている。
コミュニケーション
- サービス指向の統合 – Azureによって、アプリケーションは、他のアプリケーションによって提供されるサービスを使うことができる。 Microsoftの統合ソリューションは、 WCF Web Services で、Worker Roleは、そのようなエンドポイントを他からアクセスできるようにすることができる。
- メッセージング – Web Role と Worker Role間の非同期コミュニケーションために、 Windows Azure Queuesによってメッセージングが提供される。
- ファイアウォールを通すメッセージング – アプリケーションは、別にポートを開ける必要のないService Bus Queuesを使って お互いにコミュニケーションできる。
デプロイ
- クラウドへのデプロイ –アプリケーションは、別々のサービス定義ファイルとサービス コンフィギュレーションファイルを使ってデプロイされ、目的とする役割に従ってパッケージされる。 Web Role と Worker Roleそしてそれらのタイプは、サービス定義ファイルに定義され、サービス コンフィギュレーションファイルは、これらの役割のそれぞれの数を持っている
- オンプレミス アプリケーションをクラウドに移す – ほとんどのアプリケーションでこれができるわけではないが、単純な ASP.NET webサイトにポートできるものもある。
- 混合環境、オンプレミスそしてクラウド – Windows Azureは、 RESTインターフェース、 SQL Azureへのセキュアなアクセス、 Service Busそして Access Control Serviceを使って、クラウドにオンプレミスなアプリケーションとサービスの組み合わせを提供できる。
- デュアル アプリケーション – アプリケーションは、オンプレミスでもクラウドでも走るように設計できるが、設計プロセスは、簡単でない。もし組織がアプリケーションを自分のサーバーで、走らせ、クリスマスのような季節のピークの間には、クラウドを使えれば、これは役に立つであろう。
- セキュリティ フェデレーション(連携) – Windows Azure は、 Access Control Serviceによってセキュリティ連携を提供する。
- SaaS – クラウドにデプロイされたアプリケーションは、サービスとして提供できる。
管理
- 運用設計 – Windows Azureは、運用中の管理と問題の特定ができるように、診断用のAPIを提供する。
- サービス インスタンス管理 – APIあるいは、 Azure ポータルからアプリケーションのインスタンスを開始、停止、あるいは一時停止できる。