ファブリック
ファブリックは、マイクロソフトが構築したデータセンターにあるハードウェアを仮想化により統合して1つの巨大な計算機資源として管理・運用する。このリソースから仮想マシンを作り出し、コンピューティングサービスとストレージサービスを動作させている。
実際は、データセンターにPCサーバーが設置されていて、クラウド用のハイパーバイザー(仮想マシン制御プログラム)が動作している。このハイパーバイザーがユーザー契約に則って仮想マシンを作り出し、その中でServer版Windows(実態は「Windows Server 2008」そのものと言われる)が動作し、その上にAzureのアプリケーション環境が作られる。これが「コンピューティング」サービスであり、同様にして仮想マシンによる「ストレージ」サービスも動作させている。
ストレージ
ストレージサービスはファイルシステムではなく、「BLOB」(Binary Large OBject)、「テーブル」、「キュー」という3タイプのデータ形式を提供し、.NETのLINQ(Language Integrated Query、統合言語クエリー)やADO.NET(データアクセス用のクラスライブラリ)でアクセスが可能なほか、URIやHTTPを使うREST(Representational State Transfer)形式としてもアクセスが可能だ。
これは、Windows AzureではもっぱらWebアプリケーションが提供されると想定した措置だ。格納できるデータに上限(当面は最大10GB)はあるものの、データセンター内では3つ以上のコピーが常に保持されており、システムエラーなどのデータ消失にも対策している。
アプリケーションは、Webページを生成してユーザーからの入力などを受け取る「Webロール」と、独立して動作する「Workerロール」の2つのインスタンス(オブジェクト実体)を組み合わせて開発する。
たとえばオンライン販売のサイトを実現する場合、Webロールでは、商品やショッピングカートの表示、ユーザー情報の入力を行なう。Workerロールでは実際の商品購入の処理をバックヤードで行なう。この2つのロールは独立して動作しており、Azureデータサービスのキューを使って相互に通信できる。
.NET Services
このほかにWindows Azureでは、SQL Azureと.NET Servicesの2つのオプションサービスを提供する。SQL Azureは簡単にいえば、SQL Serverが提供するリレーショナルデータベース機能。.NET Servicesは、ローカルPC上で動作する.NETアプリケーション(オンプレミス・アプリケーション)と、Windows Azure上のアプリケーションを連携させるための機能である。具体的には、ユーザーの実行権限などを管理する「.NETアクセスコントロール」と、オンプレミスアプリケーション間の通信を取り持つ「.NETサービスバス」という2つの機能が提供される。