Microsoft PDC2009レポート

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

2009/11/18

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

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

ray.jpg 初日の基調講演でステージに立ったマイクロソフトのチーフ・ソフトウェア・アーキテクト、レイ・オジー(Ray Ozzie)氏
sched.jpg 4年前に全社宛てメモで構想を共有し、昨年概要を発表。そして今秋いよいよ本格始動となる。すでにCTP版は動いており、それが1月1日に正式な商用サービスとなる。課金は2月から

「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ロールの先には、クラウド上でのリモートデスクトップの実現なども視野にあるという。

vmsize.jpg VMサイズと価格の一覧(クリックで拡大)

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

matt.jpg WordPressの開発者でAutomattic創業者のマット・マレンウェッグ氏

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

wordpress.jpg Azure上で動くWordPress
wpscale.jpg Webロールの数を100、1000と増やすことでトラフィック増にも簡単に対応できるという

 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つずつプロジェクトを関連付けるだけで、コードの変更なしに、オンプレミス向けに開発したアプリケーションをクラウド上にデプロイ可能であることを示して見せた。

model.jpg Visual Studio 2010を使ったモデリングの例。ドラッグ&ドロップで利用するWebロールやWorkerロール、SQL Azureなどを配置して、それぞれにプロジェクトを割り当てるデモンストレーション

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

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

ticket.jpg SQL AzureとAzure Storage Serviceの双方を使ったチケット販売サイト「TicketDirect」の構成例

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

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

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

appfabric.jpg AppFabricはWindows AzureプラットフォームとオンプレミスのWindows Server 2008で動き、両者の連携をシームレスにすると同時にアプリケーションに同一の稼働環境を与えるという
appfabric2.jpg AppFabric上のノードを統一的に管理するコンソールのプロトタイプ画面

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を採用する企業ユーザーにとっては真打ちの登場だが、まずは年明けの本格稼働までに、どの程度のパフォーマンスや安定性があるのか、自ら見極めてみるのが良さそうだ。

関連リンク

(@IT 西村賢)

情報をお寄せください:

Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える

キャリアアップ


- PR -

注目のテーマ

- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

シニアのショッピングがスマホ化 50代後半の3人に1人、60代前半の5人に1人が利用 ――ビデオリサーチ調べ
シニア層のスマホ利用はネットショッピングにも拡大。キャッシュレス化も進んでいるよう...

パルコが進めるリアル店舗の顧客行動分析、セレンディピティーを呼ぶ「DAPCサイクル」とは
店舗のデジタル化で顧客体験はどう変わるのか。そして、その先に待つショッピングセンタ...

アジア太平洋地域の中小企業における顧客サービスのトレンド――Genesys調査
アジア太平洋地域13カ国のビジネスおよびITの意思決定者400人を対象に行った実態調査です。