Enterprise Watch
バックナンバー

Microsoftの戦略的クラウド「Azure(アジュール)」を見る【第一回】

Azureの全体像

 2008年10月末に米国で開催されたPDC 2008(Professional Developer Conference 2008)において発表されたのがMicrosoftのクラウド「Azure(アジュール)」だ。Microsoftが本格的にクラウドへ向かうということで、AzureはPDCでも多くのデベロッパーの注目を集めていた。このAzureについて、基礎知識から3月に米国で開催されたMIX(デザイナー向けのカンファレンス)で追加された事柄を踏まえて、現在わかる範囲で仕組みを紹介していく。


Azureとは?

 ビル・ゲイツ氏がリタイアした後、Microsoftをテクノロジー面でリードしていくCSA(チーフ・ソフトウェア・アーキテクト)のレイ・オジー氏は、PDC 2008の基調講演で、「Azureは、Microsoftが持つさまざまなソフトウェアをサービスとして提供します。開発者の方々は、今までの培ってきたWindowsのノウハウを生かしたクラウドサービスを構築できます。また、Azureは、クラウド環境として、単独で存在するのではなく、Microsoftが進めているSoftware+Serviceというコンセプトの基に、社内の中にあるWindows環境(オンプレミス=On Premises)と融合して利用できるようにしています」と語っている。

 Azureは、クラウドで動作するOS「Windows Azure」、Windows Azure上にサービスとして用意される「Live Services」「.NET Services」「SQL Services」「SharePoint Services」「Dynamics CRM Services」などによって構築される。Microsoftは、クラウドOSのWindows Azureから提供されるサービスまでを合わせて「Azure Services Platform」と呼んでいる。つまり、これら全体がAzureといわれるものだ。

 このAzure Services Platform上では、Microsoftが提供するオンラインサービスのすべてが動作することになる。コンシューマ向けのWindows Liveから、ビジネス向けのOffice Live(将来的には、Office 14のWeb版も)、エンタープライズ向けのExchange Online、SharePoint Online、Dynamics CRM OnlineなどがAzureで提供される。

 これらのオンラインサービスはAzure上に構築されるため、データの相互連携などを行うことができる。また、開発者が独自のプログラムやビジネスロジックをAzure上に構築して、独自のクラウドサービスを作ることもできるし、Microsoftが提供しているオンラインサービスと連携して動作することもできる。


Microsoftのクラウド「Azure」の全体像。Microsoftでは、Azure上に、さまざまなソフトウェア、サービスを構築し、開発者に提供していく予定だ クラウドOSにあたるWindows Azure上には、データベースやファイル共有、.NET Framework、SharePoint、Dynamics CRMなど、さまざまな基本サービスが提供される
Azure上では、ASP.NET、C#、C++などのMicrosoftの言語だけでなく、PHP、Rubyなどのオープンソース系の言語も使用できる

 「クラウド環境を提供している多くの企業は、ハードウェアやOSなどのインフラ部分しか提供していません。しかし、これだけではクラウドサービスを開発するためのソフトウェアは足りないのです。Azureでは、開発者が独自にデータベースをクラウド環境にインストールするのではなく、Microsoftが持つさまざまなプラットフォームソフトウェアをクラウド上に用意していきます。これにより、開発者は、オンプレミスで使い慣れているMicrosoftのプラットフォームソフトウェアを使って、クラウドサービスの開発が簡単にできるようになります」(オジー氏)

 実際、2008年末に提供されたWindows Liveのサービス、Microsoft Onlineのサービスなどは、まだAzure上に移行されているわけではない。これは、それぞれのサービスが、Azureという大きなコンセプトにしたがって作られてはいなかったからだ。このため、2~3年をかけて、すべてのオンラインサービスをAzure上に移行していくことになる。

 Azureは、ある意味Microsoftが持つソフトウェア資産のほとんどを集結させたサービスといえるだろう。クラウドOSとなるWindows Azureは、Windows Server 2008 R2と仮想化ソフトのHyper-Vを改良したものとなる。また、開発者が作ったクラウドサービスのCPUパワーやメモリ、ストレージを管理するには、System Centerが利用されている(開発コード名:アトランタ)。


2008年10月末に米国で行われたPDC 2008でデモされたBluehoo社のSNSサービス(http://m.bluehoo.com/)。このサービスは、現在開発中だが、Azure上に構築されている。キャラクターの一つ一つが、ユーザーを表している。ユーザーは、PCだけでなく、携帯電話などからもアクセスできる Bluehoo社の管理ツール。Azure上でどのくらいのリソースを使用しているかが、一目でわかる

Azureは、クラウド上のユーザー認証システムとオンプレミス(社内サーバー)のActive Directoryを連携させて動かすことができる。これにより、クラウドサービスの利用を、社内のActive Directoryでコントロールすることもできる
 もう一つ重要なのは、クラウド環境と企業内のサーバー(オンプレミス)を接続するために、「Microsoft Service Connector」というソフトウェア、そしてクラウド側の受け口になる「Federation Gateway」が用意される。これにより、企業内にある認証サーバー「Active Directory」のデータをクラウド上でも連携して利用することができる。つまり、クラウドとオンプレミスの両方で、同じActive Directoryを利用して、ユーザー認証や権限などを一元的に管理することができる。


Azure Service Platformの構成要素-Windows Azure

 クラウドOSであるWindows Azureは、Windows Server 2008 R2をベースにしたOS。クラウドで必要な機能が追加されたり、クラウドで必要のない機能が省かれたりしている。

 Windows Azureで独特なのがストレージだ。Windows Server 2008などでは、直接ファイルI/Oを操作して、ファイルを作成したり、読み込んだりすることができる。しかし、Windows Azureでは、WindowsのAPIとしてのファイルI/Oは、用意されていない。その代わり、新しいストレージシステム(ブロブ、テーブル、キューなど)が用意されている。

 これは、クラウドという環境のため、固有のハードウェア環境に依存したシステムを排除したためだろう。確かに、世界各地にあるデータセンターで運用ができるようにするためには、ストレージ自体もスケーラブルで、仮想化された方が使いやすいのだろう。

 開発者にとって気になるのは、Windows Azureはどういった開発環境でプログラミングできるのかということだろう。さすがMicrosoftといえるのは、この部分だ。

 開発者は、既存のVisual StudioとWindows Azure SDKを使って、デスクトップ上でクラウドサービスの開発ができる。開発言語としては、ASP.NET、C#、Visual Basicなどが利用できる。C++などのネイティブコードに関しては、2008年にリリースされたCTP版ではサポートされていないが、2009年にリリースされるAzureではサポートされる。

 将来的には、Visual Studioだけでなく、よりオープンな言語でクラウドサービスを構築することができるようになる。実際、Microsoftでは、Eclipse、PHP、Ruby、Pyton、Javaなどのサポートを計画している。


Azure Service Platformの構成要素-.NET Services

 .NET Servicesでは、Service Bus、Access Control、Workflow Servicesなどが提供されている。

 .NET Services Busは、クラウド環境やオンプレミスのサーバーなどにあるさまざまなサービスを結合させるためのインターフェイスや管理などを行う。近ごろ話題になっているSOAにおけるEnterprise Service Bus(ESB)をMicrosoftのクラウドに適応させたモノだと考えればいい。

 Access Controlは、ユーザーの権限を確認して、どういったサービスにアクセスできるのか? などを管理する。もちろん、社内のサーバー(オンプレミス)に置かれた、Active Directoryと連携して動作することもできる。このために、Geneva(ジェネバ)というコード名でいわれているフレームワーク(サーバーも)が用意されている。Genevaでは、セキュリティトークン型の認証サービスを提供する。また、Windows Vistaに搭載されているCardSpaceをサポートしているため、ログイン操作を簡単にすることが可能だ。

 Workflow Servicesは、クラウド環境でWorkFlowをコントロールするために作られている。例えば、クラウド上のどういったサービスとサービスを接続して、データを渡していくのかなどといったことが、WorkFlowにより管理できる。また、Windows VistaやWindows Server 2008には、.NET FrameworkにWorkFlow Foundationが用意されている。ある意味、これと連携するクラウド側の仕組みだと思えばいい。


Azure Service Platformの構成要素-SQL Services・SharePoint Services・Dynamics CRM Services

 SQL Servicesは、いわばSQL Server 2008をクラウドに用意したものだ。現在、6つの機能が用意されている。

 3月に開催されたMIXで最も大きく変更されたのが、SQL Servicesだ。当初、データベースエンジンとしては、SQL Serverが利用されているが、データモデルに関しては、ACE(Authority、Container、Entity)というモデルがPDCで公開されたCTPでは採用されていた。しかし、多くの開発者から、ACEモデルではなく、通常のSQLのデータモデルを使用したいというリクエストが非常に多かった。

 このため、MIXでSDSの仕様変更を行い、リレーショナルデータベースをそのまま利用できるようにした。この変更により、T-SQLなどが利用できるようになった。データベースアクセスもADO.NETやODBCなどが利用できるようになった。逆にACEモデルは、今後サポートされないことになる。

 Databaseは、通常のデータベースアクセスだ。Data Syncは、インターネットを経由して、クラウド側にあるデータやクライアントにあるデータを同期させる仕組みだ。クライアントは、PCだけでなく、携帯電話やiPhoneなどのデバイスも対象となる。

 SQL Server 2008で強化されたData Mining機能も入っている。このほか、Reporting機能、データベースからデータをデータウェアハウスで利用するときに必要となるExtraction(抽出)、Transformation(変換)、Load(挿入)などETL機能もある。Reference Data機能も用意されている。

 Windows Server 2008で提供されているSharePoint ServicesとAzure上でも提供している。このベースの上にOffice LiveやLive Meetingなどのコンファレンスサービスが構築される。

 Dynamics CRM Servicesは、Microsoftが提供しているCRMソフトのDynamics CRMのベースとなるサービス。UIを持ったCRMソフトではなく、Dynamics CRMを動作させるために基本的なサービスがAzure上に構築されている。オンライン版のDynamics CRM Onlineは、このサービスを利用して構築される。

 SharePoint ServicesやDynamics CRM Servicesは、それぞれのオンライン版を構築するためのサービスだが、開発者がそれぞれのサービスから必要な部分をServices Busで接続して、独自のクラウドサービスを構築することもできる。そういった意味では、これらのサービスは、インフラといえる。


Azure Service Platformの構成要素-Live Services

 Live Servicesは、Azureのために作られたといってもいいサービスだ。夏ごろにβサービスが行われていたLive Meshのクラウド側のサービスでもある。

 Live Servicesを使えば、ファイルをクラウドにアップしたり、デバイスに転送したりすることができる。Live Servicesでは、こういったことを行うためのインフラを提供している。単にファイルの同期システムだけでなく、クラウド側にデータを保存したり、必要なデータをデバイスと同期したりすることができる。

 Microsoftでは、Live Servicesをオンプレミスと連携して動作させるために、.NET Framework 4.0にLive Frameworkを用意する。これにより、オンプレミスのサーバーやクライアント、デバイスとデータの連携ができるようになる。


 現在、Azureは、CTP(Community Technology Preview)の段階にあるため、価格などは明らかにされていない。ただ、CTPの環境を見る限り、Azure上に構築したサービスが使用したコンピュータ環境、CPUタイム、データ量などで、費用を換算するようだ。また、サービスレベル(365日24時間の動作を保証するのか? 少しくらいダウンしてもかまわないのか)などによっても、価格は異なるようだ。


http://www.azure.com/の画面。現在、Azureは、限定的なβテスターに公開されている。開発のために必要なSDKは、誰でも使用できる。Azure SDKは、デスクトップPC上にAzure環境を作成する。開発者は、Visual StudioでAzure上のソフトを開発できる 現在、βテスターに公開されているAzure。開発者は、Visual Studioで開発したソフトをパッキングして、クラウドのAzureにアップして、クラウド上で動かす。Microsoftでは、Azureを企業だけでなく、個人の開発者にも使ってもらえるように公開していく予定だ

 次回より、Windows Azure、SQL Services、.NET Services、Live Servicesなどの詳細に関して説明していく。


関連記事
  ・ Microsoftの戦略的クラウド「Azure(アジュール)」を見る【第二回】(2009/03/24)
  ・ Microsoftの戦略的クラウド「Azure(アジュール)」を見る【第三回】(2009/03/25)
  ・ Microsoftの戦略的クラウド「Azure(アジュール)」を見る【第四回】(2009/03/26)
  ・ Microsoftの戦略的クラウド「Azure(アジュール)」を見る【最終回】(2009/03/27)


( 山本 雅史 )
2009/03/23 11:45

Enterprise Watch ホームページ
Copyright (c) 2009 Impress Watch Corporation, an Impress Group company. All rights reserved.