そもそも“Azure”とは「青空」や「空の青色」を意味する。空は開かれており、制限なく広がっている。そのような空のイメージに重ね合わせて、広大な容量と柔軟性というコンセプトを表現しているのが“Windows Azure”という名前だ。
また当然ながら、Windows Azureは“雲(クラウド)”が浮かぶ「青い空」のイメージにも関連付けられている。あるマイクロソフトの社員が、「Windows Azure」という用語を初めて聞いて「マイクロソフトの空“Windows Azure”に、あなたの“雲”を浮かべてほしい。設計者はそんなことを考えて“Azure”と名付けたのではないか」という夢のある感想を述べていたが、まさにそういった意味も含まれているのだろう。
そんなさまざまな思いが込められたクラウドOS「Windows Azure」は、具体的にどんな機能を持つのだろうか。
●クラウドOS「Windows Azure」が持つ機能
Windows Azureは、Webアプリケーション(以降、Webクラウド・サービス)や、そこで使われるビジネス・ロジックのコード(以降、Workerクラウド・サービス)を実行するためのクラウド・サービス・ホスティング環境である。
この環境には、.NET Framework 3.5 SP1とIIS(Internet Information Services)7.0が含まれており、さらにログ出力機能などのランタイムAPI(Microsoft.ServiceHosting.ServiceRuntime名前空間)が提供されている。ただし、コードの実行はCAS(コード・アクセス・セキュリティ)により、部分的に制限される。
○ストレージ機能
また、「Windows Azure Storage Services」というストレージ機能(もしくは「Cloud Storage」と呼ばれる)がREST APIとして提供され、HTTP/HTTPSプロトコルによりアクセスできる。Windows Azure Storage Servicesは大規模なデータも効率的にアクセスできる(非リレーショナルの)シンプルなストレージ・サービスとして設計されており、次の3種類のデータが扱える。
○開発面の機能
Windows Azureに乗せるWeb/Workerクラウド・サービスは、オフラインのローカル環境で開発、デバッグが行える。もちろん、ローカル環境で上記のストレージ機能を利用することも可能だ。そして、当然ながらその開発ではVisual Studioが利用できる。
要するに、これまでとほとんど同じような感覚でクラウド・サービスを開発できるため、クラウド・サービスの開発へスキルを移行するのはそれほど大変ではないだろう。次の画面は実際にVisual StudioでWindows Azureのクラウド・サービスをローカル環境で開発しているところだ。
現在はC#やVisual Basicなどの.NET言語を使う必要があるが、将来、Ruby(Ruby on Rails)やPython、PHPなど、さまざまな言語をサポートする予定ということだ。
○運用面の機能
Windows Azureへクラウド・サービスを展開するには、Windows Azureが標準で提供しているWebポータルを利用する。
展開に必要な作業は、サービス・パッケージ(.cspkgファイル)や構成ファイル(.cscfgファイル)の場所、ラベル名(=例えばバージョン番号など)を指定して、ボタンをクリックするだけなので、非常に手軽に行える。アップグレードもダウンタイムなしで即座に行え、リクエストの増減に応じてシームレスにクラウド・サービスをスケールすることも可能だ。
○ステージングとプロダクションの切り替え
運用機能の中で筆者が秀逸だと思ったのが、ステージング(準備・検証中)とプロダクション(本番公開)のスイッチング機能が最初から用意されていることだ。
例えば本サイト@ITでも、公開記事はステージング・サーバに公開前の記事を準備してから編集局長に内容をチェックしてもらい、OKをもらった後で一気に本番サーバに転送する。これと同じような運用がWindows Azureでも行える。つまり、クラウド上での挙動を十分に確認した後で安全に運用開始できるというわけだ。
次の画面は実際にステージング/プロダクションの切り替えを行っている例だ。
●Windows Azureのそのほかの特徴
以上の機能性のほかにもいくつか知っておくべき特徴があるので、簡単に紹介しておこう。
○ユーティリティ・コンピューティング
Windows Azureの料金体系は未発表だが(CTP期間中は無償で試用可能)、正式版リリース時には、CPU利用時間やトラフィック量、ストレージ使用量、トランザクション数に応じた料金を支払う従量課金(Pay-as-you-grow)、いわゆるユーティリティ・コンピューティング方式が採用される予定だ。
○Windows Azureのデータセンター
Windows Azureは、数百万人のユーザーが利用してもダウンしないように設計されたマイクロソフトのデータセンターで運用される。
ここまでの説明ではWindows Azureを基盤とするソフトウェア部分について説明してきた。当然ながら、これらのソフトウェアを動かすためのハードウェア部分、つまり地理的に分散されたデータセンター内で相互接続されたコンピュータ群とネットワークのコンピュータ資源(=これを単一のシステム・イメージに見立てたものは「コンピューティング・ファブリック」と呼ばれる)があり、Windows Azureの下に隠れている。これは「Windows Azure Fabric」(以降、ファブリック)と呼ばれており、「Windows Azure Fabric Controler」(以降、ファブリック・コントローラ)により管理される(ちなみに、“fabric”の英単語の意味は「(複数の糸が組み合わされた)布」で、「Computing Fabric」を素直に日本語に訳せば「コンピューティング網」のようになるだろう)。
ファブリック・コントローラについては、通常、開発者が意識する必要はないが、分散化技術(=地理的に分散されたマイクロソフトのデータセンターのコンピュータ資源を管理する技術)や仮想化技術(=クラウド設計に最適なパフォーマンスを発揮するようにチューニングされたハイパーバイザ)といった先進の技術が用いられており、エンタープライズ環境に適応するクラウド環境として非常に強力な可用性と管理性を備えている(と、マイクロソフトは説明している)。
具体的には、前述のWindows Azureの機能で述べたように、クラウド・サービスを展開したり、クラウド・サービスを中断することなくアップグレードを実行したり、障害管理により例えばデータセンター内の1つのサーバが落ちても(ほかのサーバで自動的にカバーして)クラウド・サービスの利用には影響が出ないようにしたりといった可用性を提供する。また、リソースやロード・バランスの管理を行い、リクエストの増減に応じて開発者がクラウド・サービスをシームレスにスケール(拡張/収縮)できるようにする管理性も備えている。
●エンド・ユーザーから見たWindows Azure
Windows Azureはクラウド・サービスを提供する側のプラットフォーム環境であり、エンド・ユーザーが直接的に利用するものではない。従って、エンド・ユーザーがWindows Azure上のクラウド・アプリケーション(=Webクラウド・サービス)を見ても、それと一般的なASP.NET Webアプリケーションの見分けはなかなか付かないだろう。
例えば、次の2つのリンクは実際にWindows Azure上で実行されているクラウド・アプリケーションの例である。
これらのURLを見ると分かるが、「cloudapp.net」が(現CTP版の)Windows Azure上でホストされるクラウド・サービス(Hosted Service)で使えるドメインとなっている。ちなみに、Windows Azure Storage Services(Cloud Storage)のドメインは(現時点で)「blob.core.windows.net」「queue.core.windows.net」「table.core.windows.net」となっている。
それでは最後にAzure Services Platformの概要について説明する。
更新履歴 |
---|
【2009/01/22】「Fabric」の意味に関する記述をより詳しくしました。 |
Copyright© Digital Advantage Corp. All Rights Reserved.