Microsoftが同社のクラウドコンピューティングプラットフォームである「Windows Azure Platform」(以降、Azure)を最初に発表した際、筆者はそれをどう評価すべきか判断できなかった。Microsoftはただ流行に乗り遅れまいとしているだけなのか、それともクラウドコンピューティングというパラダイムは本当にエンタープライズの使用に耐えられるものになっているのかといった疑問に答えを出すことができなかったのである。
Azureが利用可能になったという発表の直後、筆者は関連情報に目を通してみた。しかし、基本的なことを理解していない筆者のような人向けに書かれた情報はほとんどなかった。また、残念なことにMicrosoftは、有益な情報をオンラインビデオとして公開するという、いつもの悪い癖を出してしまっていたのである・・・IT関係の仕事をしているのであれば、自分にとって必要な情報が本当に含まれているかどうか分からないビデオを3時間も4時間も見るだけの暇を持て余しているとでも思っているのだろうか。とは言うものの、筆者はこういった情報をふるいにかけ、Azureの正体と、Azureを用いた開発を支える基本的なコンセプトについて探り出すことができた。
Azureはプラットフォームである
最初に、Azureという言葉自体は製品名ではなく、プラットフォームを構成する複数のサービスを包含したものであるということを理解しておく必要がある。現在発表されているサービスには以下のものがある。
- Windows Azureサービスを用いることで、Microsoftのサーバ上にコードを配備できるようになる。このコードはローカルのストレージリソース(ブロブストレージやキューストレージ、テーブルストレージ)にアクセスすることができる。
- Microsoft SQL Azure(以降、SQL Azure)はクラウドに配置されているデータベースが搭載している機能を提供するサービスである。このサービスでは、SQL Serverが提供しているようなTransact-SQL(T-SQL)を使用できるようになっているものの、完全なSQL Serverインスタンスが稼働しているわけではない(このため、SQL Serverに搭載されているすべてのストアドプロシージャが利用可能となっているわけではない)。とは言うものの、SQL Serverと統合することは可能である。
- Windows Azure Platform AppFabric(以降、Azure AppFabric)というサービスバスを使用することで、LAN内のアプリケーションとAzureクラウドを連携させることができるようになる。つまり、このサービスによって認証やセキュリティといったものが取り扱えるようになるわけである。
- 「Dallas」(コードネーム)は、Windows Azure上に配備されているアプリケーションやサービスのマーケットプレースである。
Windows AzureとSQL Azureでは従量制の課金方式となっている一方、Azure AppFabricでは接続単位の課金方式となっている。これら3つのサービスはいずれも、データ転送で追加課金されるようになっている(すべての価格情報についてはこのページを参照のこと)。ただし、サービスレベル契約(SLA)に目を通してみると、率直に言って、ミッションクリティカルなアプリケーションに耐えられる内容だとは思えない(保証されている稼働率は99.9%となっている)。「99.999%」の稼働率を実現するには多額の費用が必要となるのは確かである。しかし稼働率が「99.9%」ということは、1カ月間に約40分間のサービス停止時間が発生し得るということを意味している。あなたの企業は、こういったアプリケーション停止を看過できるだろうか?それでは問題があるというのであれば、Azureの採用は見送った方がよいだろう。