新公表「AppFabric」でAzureのクラウドとオンプレミスは地続に

 

2008年秋の発表からちょうど1年。マイクロソフトのクラウドサービス「Windows Azure Platform」が、ついに本格的に姿を現した。まず第1弾として米国や日本を含む21カ国で2010年1月1日に商用提供を開始し、2月には課金も出だしする。すでにこれ迄CTP版として稼働していたものと、1月の出だし時点で利用出来るサービスに機能的に大きな違いは無いが、これ迄の同社製品と異なり、商用サービスインの後もコンスタントに機能強化やバグフィックスが行なわれる予定だ。

 2009年11月17日に米国ロサンゼルスで開催した開発者向け催事、PDC2009(Professional Developers Conference)で同社は、新たに発表したアプリケーションサーバ「AppFabric」や「SQL Azure」を前面に押し出したデモンストレーションを交え、同社がクラウド時代に提供する価値を説明した。

「AppFabric」はアプリケーションサーバ+.NET Services

 新たに発表された「AppFabric」はオンプレミスのWindows Server 2008と、Windows Azure上の双方で実装されるアプリケーション実行環境だ。ファブリック(織物)と言う名前が示すとおり、多様なコンポーネントが有機的に結びつき、クラウドサービスの特徴で有る高可用性やスケールアウト、マルチテナント等の機能を実現する。

 AppFabricは、これ迄「Fabricコントーラ」と呼ばれていたものと「.NET Services」を統合したものだ。前者はHyper-V上でゲストOSとして稼働する64ビット版のWindows Server 2008(以後、VMと呼ぶ)を監視して、フェイルオーバーを行ったり、インスタンスの起動・終了をおこなうサービスだ。後者の.NET Servicesはオンプレミス上のアプリケーションを安全に外部に公開するためのサービスバスやアクセスコントロール、ワークフローを処理する3つのサービスから成る。

 VM上ではアプリケーションサーバの「Webロール」と、バックエンドで重たい計算処理やバッチ処理をおこなう「Workerロール」のホストと成る。各ロールは1つのVMに対応していて、現在のところ各VMは物理CPUコアに対応して居る。又、2010年には生のVMを「VMロール」として提供し、スナップショットの作成や、あらかじめ各種ランタイムをインストールしたOSイメージを保存して、カスタム環境のVM起動を容易にする機能も提供すると言う。Amazon EC2サービスでいえばAMIに相当し、アプライアンス的にWindowsアプリケーションが利用出来るVMイメージも登場する見込みだ。VMロールの先には、クラウド上でのリモートデスクトップの実現等も視野に有ると言う。

 WebロールはHyper-V上で動く「Windows Server 2008+IIS+ASP.NETランタイム+Fabric向け管理エージェント」だ。C#やPHP、Python、Java、C++をはじめ、IISで利用出来る言語を多く支援する。これにより、PHPやPythonを使ったOSS系のフレームワークも利用出来るように成る。開発環境はVisual Studioのほか、Eclipseも利用出来る。

 基調講演にはWordPressの開発者でAutomattic創業者のマット・マレンウェッグ(Matt Mullenweg)氏が登壇。WordPressがAzure上で動くことや、XMLファイルの編集だけで簡単にWebロールを100台や1000台に増やすことが出来ると話した。これはブログメディアにはうってつけの長所だ。Google App Engineではアプリケーションサーバの増減は完全に隠蔽されていて、開発者が気にする必要はなく、この点ではAzureは抽象度が一段階低い。自動スケーリングへのアプローチの違いは、料金体系の違いから来て居るのだろう。

 WordPressのマレンウェッグ氏に続いて、人気サイト「I Can Has Cheezeburger」等を運営する担当者も登壇し、ブログエントリがソーシャルブックマークサイト等で取り上げられたときに発生する極端なトラフィック増をさばくのに、Azureはとても有利だと説明した。同時に、おもわず笑ってしまう奇妙な看板をCGMとして集めた新規ブログメディア「ODDLYSPECIFIC.COM」を、Azure上で立ち上げたことを発表した。

 このほか、ピーキーなトラフィックをさばく為にAzureを利用するパートナーとしては、ドミノピザや自動車販売サイトのKelley Blue Book等が有ると言う。ドミノピザでは日曜日ごとにピークが有るが、特にスーパーボウルの開催される日曜日は極端にトラフィックが増えると言う。

memcached相当のオブジェクトキャッシュも統合

 これ迄「Velocity」の名称で呼ばれていたmemcached相当のメモリキャッシュ機能も、AppFabricに統合された。具体的にはWebロールとして起動し、設定ファイルを数行変更することでオブジェクトキャッシュを利用出来る。

 Windows AzureではバイナリオブジェクトをRESTで読み書きする「Blob」や、KVSの「Table」、分散処理時にタスクキューとして使う「Queue」といった、有る意味ではクラウドらしいストレージサービス群、「Windows Azure Storage Service」も提供する。ただ、これらストレージサービスよりも、むしろSQL Azureを中心にアプリケーションを構成するのがAzure立ち上げの初期には一般的となりそうだ。OSS系の開発環境でいえば、MySQLとmemcachedを組み合わせるのに相当する。誤解を恐れずにいえば、Azureは「オブジェクトキャッシュが統合されたASP.NET実行環境」と言う、現実的な路線を前面に押し出してきた格好だ。

スケールしなくてもSQLの市場価値は十分

 これはスケーラビリティの為にSQLを支援し無いと明言して居るGoogle App Engineと好対照と言える。AzureではMapReduce/Hadoopのような分散処理フレームワークも用意されてい無いため、Workerロールを使った分散処理をおこなうにはQueueを使った処理の仕組みを開発者が創る必要が有る。Azureではむしろ、こうした先進的なクラウドの利用形態よりも企業使い手が現在抱えて居るITシステムを徐々にクラウドと組み合わせて移行させるスムーズなパスを用意することにピントしてきて居ると言えるだろう。

 SQL Azureは1GB、10GBの2種類が有るが、いずれにしてもインスタンスは1つで、サイズも処理性能も大規模にはスケールし無い。将来的にはデータベースの動的分割やマージを実現するとして居るが、今のところは従来どおりパーティショニングによる手動分散で対応することに成る。ただ、マイクロソフトが顧客にアンケートした結果では半数を越える業務システムやWebサービスは10GBで充分足りると答えたと言う。今後、数十GBのサービス追加を予定して居るといい、開発者の既存スキルセットや既存アプリケーションの存在をかんがえると、むしろBigTableやKVSのような先進的な仕組みよりも、シングルインスタンスのDBサーバのほうがスイートスポットと成る可能性が有る。SQL Azureは標準で複数レプリカによるバックアップ/フェイルオーバーの提供をおこなうほか、バグフィックスのパッチ当て等はAzure側で面倒を見てくれる。

 今後、2010年上半期にはクローニング、同下半期には継続的な自動バックアップ等の機能を提供し、管理費用や手間をかんがえた場合には魅力的な選択肢となりそうだ。もちろん、SQL Azureがオンプレミスと同等か其れ以上のスループットを実現出来るかも大きなカギで、これ迄のCTP版の利用者の声をきくとパフォーマンスにはまだ課題が残って居るようだ。

 AppFabricと並び、Azureの2大構成要素としてマイクロソフトがSQL Azureを前面に押し出してきことと、アマゾンがMySQLのホスティングで同様のサービスを開始した背景には同じような事情がありそうだ。インメモリの分散ハッシュテーブルを使えば桁違いのスピードやスケーラビリティを実現出来るとしても、そのようなアプリケーションを多くの企業は持ってい無いし、方式も無い。

 初日基調講演でステージに立った同社チーフ・ソフトウェア・アーキテクトのレイ・オジー氏は、すでに開発者が持って居るスキルと、企業使い手が投資してきたIT資産を最大限に有効活用する、と言う立場を繰り返し強調する。この為にデータストアにはSQLを中心に据えることで、オンプレミスとクラウドの区別が、設計、開発の面でも、実行環境の面でも小さく成ることを事例を交えて紹介した。

 開発者から見れば、SQL Azureは、ほとんどSQL Serverと同等なので、クラウドだからといって特別なことがなく手軽だ。テーブルの作成やスキーマの設定、SQL文の実行等も、従来の管理ツールで可能だ。モデリングについてもVisual Studioを使ったデモンストレーションのなかでは、ドラッグ&ドロップでWebロール、Workerロール等を画面上に配置して、其れらに対して1つずつプロジェクトを関連付けるだけで、コードの変更なしに、オンプレミス向けに開発したアプリケーションをクラウド上にデプロイ可能で有ることを示して見せた。

 ただ、SQL Azureを中心にアプリケーションを創るとしても、Webアプリケーションであれば画像やテンプレートをBlobに保存するのが自然だろう。Windows Azureが提供するCDNを使う為にもBlobにコンテンツを置く必要が有る。だから、.NET 3.5 SP3から導入されたRESTを使ったデータアクセスAPIの「ADO.NET Data Services」を使うような場面は出てくるだろう。

 実際、Azure上にチケット販売サイトを構築した「TicketDirect」の事例では、タスクをQueueに、そのタスクが処理すべきデータをBlobに、そしてデータベースのパーティション情報をTableにといったように非SQLのストレージサービスも利用して居ると言う。

AppFabricでオンプレミスとクラウドが地続きに

 AppFabricはWindows Azureプラットフォームの根幹をなすサービス層だが、今後はオンプレミスのWindows Server 2008でもAzure上と同様にAppFabricを動かせると言う。そして今後は1カ所のWebコンソールから、すべてのノードを管理出来るようになり、クラウドとオンプレミスは「地続き」と成る。

 AppFabricはメッセージバスやアクセスコントロールを含んでおり、クラウド+オンプレミス環境でSOAを実現出来る。例えば、AppFabricのバスを介して、ファイアウォール内のオンプレミスサーバ上で動いて居るWebサービスを外部に公開し、他企業とのシステム連携をおこなうことも可能と言う。クラウドとオンプレミスでデータベースの同期をおこなう「Windows Azure Connectivity Agent」を使うことで、オンプレミス上のデータセットをクラウド上のアプリケーションで公開するといった使い方も可能だ。

Azureには柔らかい側面も!?

 メッセージバスやSOA、アクセスコントロールによるフェデレーション等、エンタープライズ向け機能も目立つWindows Azure Platformだが、一方でAzureには、もっと「軽い」使い方も有る。そんなデモンストレーションを行ったのは、何かの手違いで基調講演に乱入したのでは無いかと言うほどハイテンションなドン・ボックス氏とクリス・アンダーソン氏だ。

 2人は、「オレたちはエンタープライズなんて面倒くさいのは嫌いなんだ」と言うハッカー的なノリで、C++を使って環境変数が保存されて居るアドレスの隣のメモリ内容を読み出してWebで表示してみせたり、「x86ベースのクラウド」で有るのをいいことに、インラインアセンブラがAzure上で動くことを示してみせた。

 認証・認可フレームワークではJavaScriptでOAuthを使うWeb 2.0的なデモンストレーションや、ライブコーディングによるデータベースの作成とSQL文の実行等、従来どおりの手法も通用することも示し、Azureに柔らかい側面が有ることを印象付けた。基調講演ではさらりとしか紹介されなかったが、Azure上のBlobをローカルのNTFSにマウントする「drive x」等も、ちょっとした確認や処理を手軽におこなうための、柔らかいインターフェイスと言えるかもしれ無い。

いったん広げた風呂敷が縮んだ分、ピントはシャープに

 実は去年のAzure発表時にアナウンスされていたものの、ひっそりとAzureの構成図から消えてしまったサービスやプロジェクトも有る。一番大きいのはLive ServicesがAzureブランド下から外れたことだ。このほかSharePoint ServicesやDynamics CRM Servicesについても「未定」となっていて、ロードマップが示されてい無い。単に実装が追いつか無いと言う見方も出来るが、最もパイの大きいエンタープライズ市場でのWebスタックに狙いを定めてきた、とも受け取れる。

 先行するグーグルやアマゾンにキャッチアップして同種のサービスやアーキテクチャを実現、若しくは構想しつつ、これら先行2社とは異成る方向性を明確に打ち出してきた。.NET開発者や、.NETを採用する企業使い手にとっては真打ちの登場だが、まずは年明けの本格稼働迄に、どの程度のパフォーマンスや安定性が有るのか、自ら見極めてみるのが良さそうだ。

コメント

現在、この記事へのコメントはありません。

コメントを投稿する




コメント内容

トラックバックURL: 

ページの先頭へ