さて、いよいよマイクロソフトが提供しようとしている (日本では2/23から正式提供) Windows Azure Platform について、何回かに分けて説明をします。
ちなみに、”Azure”は「あじゅ~る」と発音します。
Windows Azure Platform は、以下の構成要素から成り立っています。
- 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 のデータセンター、ネットワーク、サーバーなどの設備設置や日常運用をする組織。この絵だと一番下。
さて、これらのサービスなのですが、通常のサーバー製品と何が異なるのでしょう?それは、クラウドの本質でもあると思いますが、以下の絵が象徴的です。
これは、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に臨んでいるという事です。
その要素を少しご紹介しました。
最後に、以下の絵を。
実は、この絵はアニメーションでご説明したいのですが、今はスライドのまま。
Windows Azureは、実は「インフラ」。つまり青い部分から先に構築されました。最初はGlobal Foundation ServiceのDatacenterからです。
そして、緑の「開発者モデル」は後から。つまりSDKから。
そして、次回以降ご紹介しますが、青い部分と緑の部分が交わった部分。これはAzureの「ストレージ」なのですが、データ・レプリケーションと、パーティションが階層構造になっており、その上にストレージのアプリケーションが構築されています。つまり、Windows Azure (Windows Azure Platformとは記載していませんよ) のストレージサービス全てが、高可用性で (レプリケーションされているので)、高パフォーマンスで (負荷分散用に分割されているので)、大規模データを扱える(分割されているので) のです。
実に良くできています。
単なる仮想OSをホスティングしているのとは、異なること、お気づきいただけたでしょうか?そして、今後仮想OSのホスティングをした際に、どのレイヤーにそのサービスを提供してくるのか、楽しみです。