Windows Azure Platform とは

さて、いよいよマイクロソフトが提供しようとしている (日本では2/23から正式提供) Windows Azure Platform について、何回かに分けて説明をします。
ちなみに、”Azure”は「あじゅ~る」と発音します。

Windows Azure Platform は、以下の構成要素から成り立っています。

image

  • Windows Azure Platform
    • マイクロソフトのクラウドサービス全般
  • Windows Azure
    • クラウド上でのオペレーティングサービス。アプリケーションの稼働・監視/管理環境
  • SQL Azure
    • クラウド上でのRelational Data Service。SQL Serverのクラウド拡張版
  • Windows Azure Platform AppFabric (以前は.NET Serviceと呼ばれていました)
    • クラウド上でのシステム連携に必要なサービス(部品)群。現在は、サービスバスとアクセス制御のみ。ワークフローが2010年中に提供予定
  • Global Foundation Service
    • Windows Azure Platform のデータセンター、ネットワーク、サーバーなどの設備設置や日常運用をする組織。この絵だと一番下。

さて、これらのサービスなのですが、通常のサーバー製品と何が異なるのでしょう?それは、クラウドの本質でもあると思いますが、以下の絵が象徴的です。

image

これは、Bingサービスのシステムのイメージ図です。
大きな文字を見てください。

インターネット規模のアクセスを処理しないとサービスが成立しません。その中でマイクロソフト自身も「スケーラビリティ」をどう効率的に確保していけばいいのかを学習し学んでいるわけです。つまり大規模分散処理ですね。コモディティ化した、といえば聞こえはいいですが、要は安いけどそれ程壊れないハードウェアを大量に並べる必要性があったわけです。これは、ネットワーク/ハードウェア的なアーキテクチャ。
じゃ、ソフトウェアのアプリケーションアーキテクチャはどうか? Webというのは非常にそれに優れていることは皆さんご承知の通り。1つのサーバーでリクエスト毎にOSやアプリケーションがなるべく多くの処理ができるよう、マルチスレッド動作をするようになっていますよね。

サーバー台数が増えれば、当然故障率もあがりますよね。
となると、いちいちそれを監視システムがチェックし。それも10秒単位でやっているシステムはないでしょうから。そんな事をすれば、サーバーの本番稼働にも負荷になりますし、監視ネットワークが専用で必要になるかもしれません。ですので、通常は1 or 2 分単位で稼働チェックをしているでしょう。その稼働チェックで「エラー」が発生すれば、人が直す。そんなことはいちいちやっていられないのです。
サーバーも大量に購入します。その度に「チケット」を切って作業依頼をし、CDからOSインストール、パッチを全部適用し、アプリケーションを入れ、管理者ユーザーを追加し、共有フォルダを設定し、アクセス権を設定し。それを個別サーバーごとにやる。
そんなことやっていられないのです。
じゃ、どうするか?
自動化」です。全部は自動化できませんが、ある程度自動化するわけです。

物理サーバーが横に大量に並んでいます。
丁度上の絵では、「データ管理」のサーバー群のうち1台が「赤く」なっていますね。アプリケーション、ハード。なんらかの「エラー」が発生しています。
ですが、1つがダメになっても「データ管理」のサービス自体は、正常に動作しています。
こういう観点での「高可用性」。
壊れる前提でシステム全体を設計していきます。データは二重化。常に複数個所に同じデータが保たれています。1つが壊れても平気です。

皆さんのお手元に「RFP」のドキュメントあるのではないでしょうか?
各ベンダーに出したドキュメント。
良く比べていただきたいのです。

  • 圧倒的スケーラビリティが不要にするもの。キャパシティプランニング。ストレージ、CPUなどは、問題ではない
  • 高可用性がもたらすもの。安価なハードウェア、ソフトウェアによる初期投資の最適化。かつ、災害対策、バックアップの簡素化。必然的に、ストレージ、ネットワーク、ハードウェア、ソフトウェアが簡素化され、安定したシステムに。当然構築・保守難易度が下がり、SIコストも低減
  • 導入、監視の自動化。運用コストが削減されるだけなく、属人化された運用が減り、ある一定以上のレベルでの高度な運用「サービス」の提供

ご存じかもしれませんが、今日Windows Azure Platformでは大量の「Hyper-V」が動作しています。
サーバーの仮想化をしただけでは、真のコスト削減にはつながらないのです。
クラウドの技術をよくみてください。製品だけでなく、そこには、マイクロソフトが1994年のMSNのサービスイン以来、実に15年以上にもわたり「Webの世界」で生きてきた(うまくいっているかは別ですが)、知恵・経験があってこそのクラウドコンピューティングと言えます。

若干、お話が「プライベート・クラウド」と呼ばれる部分にも及びました。

今回感じ取っていただきたかったのは、Microsoftがとにかくその圧倒的なスピード感とスケールで、Windows Azure Platformに臨んでいるという事です。
その要素を少しご紹介しました。

最後に、以下の絵を。

image

実は、この絵はアニメーションでご説明したいのですが、今はスライドのまま。
Windows Azureは、実は「インフラ」。つまり青い部分から先に構築されました。最初はGlobal Foundation ServiceのDatacenterからです。
そして、緑の「開発者モデル」は後から。つまりSDKから。

そして、次回以降ご紹介しますが、青い部分と緑の部分が交わった部分。これはAzureの「ストレージ」なのですが、データ・レプリケーションと、パーティションが階層構造になっており、その上にストレージのアプリケーションが構築されています。つまり、Windows Azure (Windows Azure Platformとは記載していませんよ) のストレージサービス全てが、高可用性で (レプリケーションされているので)、高パフォーマンスで (負荷分散用に分割されているので)、大規模データを扱える(分割されているので) のです。

実に良くできています。

単なる仮想OSをホスティングしているのとは、異なること、お気づきいただけたでしょうか?そして、今後仮想OSのホスティングをした際に、どのレイヤーにそのサービスを提供してくるのか、楽しみです。

クラウドのビジネス価値

間が空きました。
このBlogは実は毎週Updateしようとしているのですが、それがダメですね。来週から毎日15分でやりきります。
結果、まとまっておらず、まさにWeb log となるかもしれませんが、それはご容赦を

さて、Windows Azure platform ですが、クラウドコンピューティングの中で非常に面白いポジションを占めています。SaaSという言葉。まだ現役なのですが、XaaSという分類があります。

image

Windows AzureはPlatform なんですね。
某、ベンダーさんがIaaSとされていましたが・・・・がんばれ、某ベンダーのSEさん。

Platform ということは、実はひとつ気が付くことがあります。そう、Microsoftの製品、ほとんどがPlatfrom製品です。じゃ、何のPlatformか。それは「Application Platform」つまり、システムを構築する際の部品であり基盤である。という部分です。

その価値は、といえば、非常に単純なのですが、PaaSから下すべてを「あまり」考慮しなくてよい。という事につきると思います。

じゃ、具体的に何か?個人的な見解ですが、以下がかなり不要になるのではないでしょうか?

  • 設備
    • Network
    • Storage
    • Hardware
    • OS
  • 開発時
    • キャパシティ設計
    • 可用性設計
    • インフラ設計
  • 維持
    • 機材の保守費
    • インフラ部分の維持要員

何かにお気づきになりましたか?

そう、「インフラ」のトピックが多いのです。

システム運用をしている「皆さん」だからこそ、しっかりこれが

  • 「何なのか?」
  • 「どんな目的に使えるのか?」
  • 「自分たちのどんな問題を解決できるのか?」

について調査していくべきかと思います。

毎年、xxx保守切れ対応をしている皆様。Windows 7対応ご迷惑をおかけしていますが・・・
それを脱却する事考えませんか?前向きに。

とある方から言われて「はっ」とした一言です。

「もう、ハードウェアの面倒みてられないんだよ。全部引きずられるでしょ」

クラウド・ホスティングへの真実だと思います。

AzureMMCの設定 on Windows 7

Windows AzureのTraining Kit には非常に参考になるツールがいくつか入っています。その中のWindows Azure MMCは Azure StorageのBlogとQuquesの中を閲覧できるため、大変便利です。というか必須です。
ここではそのセットアップ方法を残しておきます。

Download:

http://code.msdn.microsoft.com/windowsazuremmc

こちらの記載時点では August Update をもとにしています。

1) ダウンロードした、”WindowsAzureMMC.Setup.exe”を実行します。通常ですと、”C:WindowsAzureMMC"フォルダに実行モジュールが展開されます。

2) .NET Framework 3.5 の依存チェックモジュールが英語対応しかしていませんので、これを修正します。

C:WindowsAzureMMCAssetsDependencyCheckerScriptsDependenciesCheckCheckNET35SP1.ps1

を開きます。
3行目の

$ComponentPath = "HKLM:SOFTWAREMicrosoftNET Framework Setupndpv3.51033"

を 以下のように変えます。

#$ComponentPath = "HKLM:SOFTWAREMicrosoftNET Framework Setupndpv3.51033"
$ComponentPath = "HKLM:SOFTWAREMicrosoftNET Framework Setupndpv3.51041"

日本語環境にはこのキーは存在していません。

image

3) コマンドプロンプトを「管理者権限」で起動させ、C:WindowsAzureMMC に移動。StartHere.cmd を実行させます。
これで、Dependencyチェックを通過できます。
image

これを通過させると、C:WindowsAzureMMC 配下に、AzureBlobsAndQueuesManager.msc が生成されます。
image

これを起動します。
image

[New Connection] から自身のAzure Storage アカウントの情報を入力します。

image

これで、Blob/ Queue の内容を確認できます。
コンテナを選択すると、アップロードもダウンロードも可能ですので・・・これで超便利に!!!

image