ルシノビッチ氏がセッション「Inside Windows Azure」で内部を解説
DR対応も!「Build Windows」でわかったAzureの今後
2011年11月02日 06時00分更新
Windows 8は、クラウド側との連携を最初から念頭に置いて開発された。マイクロソフトがクラウドとするのは、Windows Liveの各サービスおよび、Windows Azureで構築されたサービスだ。
Azureは継続的に機能拡張されており、今年に入ってからもさまざまな拡張が行なわれたり、CTPによる機能のプレビューが行なわれている。
まず、Azure自体に関連するアップデートだが、以下のようなものがある。
- Storage Analytics
- Storage Geo-replication
- Service Bus CTP September Release
これにともない、Windows Azure SDK 1.5がリリースされ、前回紹介したVisual Studio 2011(現在はCTP段階)でも対応が行なわれた。
また、Windows AzureとスマートフォンやWindows 8と接続するためのToolkitとして、「Windows Azure toolkit for iOS/Android/Windows Phone」および「Windows Azure toolkit for Windows 8」が用意されたほか、SNSでゲームを開発するための「Windows Azure toolkit for Social Games」もリリースされた。
9月12日より米国で開催された「Build Windows」では、Windows Internalの著者マーク・ルシノビッチ(Mark Russinovich)氏による「Inside Windows Azure」というセッションが行なわれた。これは、Azure OSやAzureのデータセンターやFabric Controller、クラスタを構成するノードなどを解説するもの。これまであまり詳細が語られなかったAzureの内部を解説している唯一の情報となった。
Storage関連の強化点
AzureのStorage関係では、Analyticsがある。これは、ストレージに関するLogとMetricsの2つの機能からなり、前者はストレージアクセスに関するロギング機能、後者は単位時間あたりの統計情報だ。
Logによりアプリケーションのストレージ利用を追跡することが可能になる。Logはストレージに対してのリクエストを記録するもので、対象はBlob、TableおよびQueuesである。ただし、このLogは完全なものではなく、「Best Effort」であるとされている。また、ログ自体はAzureのBlobに格納されるため、アクセスはアプリケーションからも簡単に行なえる。
これに対してMetricsは、1時間ごとの統計情報を記録するもの。トランザクション数やエラー、成功、タイムアウトなどのパーセンテージ、平均レイテンシ(遅延)などの情報が含まれる。
Metricsは、Windows AzureのTableに記録される。これを使うことで、アプリケーションのストレージ利用を1時間単位で継続して見ていくことが可能だ。これにより、時間帯によるストレージ利用やその傾向をつかむことも可能になる。また、E2E(End to End)のレイテンシは、ストレージおよびアプリケーションの平均値が得られる。このため、処理が遅い場合に、アプリケーション自体の問題なのか、ストレージ設計によるものなのかを判断することも可能だ。
Geo-replicationは、ストレージのレプリケーションを離れた地域で行なうものだ。追加の機能ではなく、Azureの基本機能のアップデートとして自動的に有効になり、特に処理が必要になるものではない。
地理上の距離として数百マイル単位を見ており、災害などによるデータセンター障害や通信障害に対して、ストレージデータを保護することが可能になる。現時点では、BlobとTableが対応し、Queueについては、2012年に対応予定になっている。
ユーザーがアカウントを作成した地域を「Primary Location」、そこから離れた地域を「Secondary Location」として、そこにStorageのレプリケーションを行なう。特にGeo-replicationとしての料金は発生せず、すべてのストレージアカウントでデフォルト値がオンとされる。ただし、ユーザーがこれをオフにすることは可能になっている(Azure Supportへの連絡が必要)。
これにより、Azure上のサービスは、違う地域のデータセンターによるフェイルオーバーが可能となる。
クライアントとの連携
Windows 8では、標準でWindows Liveと連携する機能が多く搭載されているほか、ログインをWindows Live IDとして同時にWindows Live側にもログインする機能がある。
Windows Liveは、マイクロソフトの運営するサービスなので、独自のクラウドサービスを開発するためには、Windows Azureを使う。このために、用意されているのがWindows Azure toolkit for Windows 8だ。
Azure自体は、ASP.NETなどでプログラミング可能で、Windows 8側からこれにアクセスすることで、ある程度のサービスは作ることができる。しかし、一番問題になるのは、Azure側からクライアント側への通知である。必ずしも、クライアント側でAzureをアクセスするアプリケーションが動作しているとは限らない。そこでWindows 8には、インターネット側にあるマイクロソフトのPushサービスを経由してユーザーに通知を行なうWindows Push Notification Serviceが用意される。これに対してAzure側から通知を行なうことで、Windows 8のアプリを送り付けることが可能になる。
Windows Azure toolkit for Windows 8は、こうしたアプリケーションを開発するためのものだ。サンプルアプリケーションやVS11のテンプレート、そしてAzure側で利用できるC#コード(Windows Push Notification Recipe)などが含まれている。
この連載の記事
-
第3回
ソフトウェア・仮想化
Metro Styleに対応するVisual Studio 11と開発ツール -
第2回
ソフトウェア・仮想化
IISはWebSocketに対応!Hyper-Vは仮想マシン数を拡大 -
第1回
ソフトウェア・仮想化
Buildの公開情報から見るWindows Server 8 - この連載の一覧へ