2008/11/20
PDCを終えて その3 Windows Azure アーキテクチャ
PDCを終えて その1 PDCを終えて その2 Windows Azure登場 PDCを終えて その3 Windows Azure アーキテクチャ
「ロサンゼルス 10月末の気候」
ロサンゼルスは、日によって日中30度近くにもなり、夜は長袖が必要なくらいの気候です、ところが、アメリカのカンファレンス会場は大抵エアコンがすごく効いていますので、ジャケット、パーカーなどをお持ちなること御勧めします。アメリカの方は、半袖の方が多いのですが、日本人は、とても半袖で過ごすことができない寒さです。
「アーキテクチャから理解する」
いつもそうなのですが、初めて見るテクノロジーは、アーキテクチャから理解するようにしています、アーキテクチャの目的も俯瞰してものを見るため、あるいは、使う人に理解してもらうためにありますのでそのようにすべきと考えています。アプリケーションの場合、アーキテクチャは、コードの俯瞰であり、設計者の意図、制約が示されています。最近は、EA、ザックマンフレームワークにあるように様々な視点のアーキテクチャ存在しますが、私の場合ほとんどアプリケーションアーキテクチャを意味します。
それでは、Windows Azureのアーキテクチャについて説明していきたいと思います。前回、
Windows Azureの実態は、クラウド上にある冗長性を考慮した、WebRole( ASP.NET ) + WorkerRole + Storage (Table, BLOB, Queue )です、もちろん、Worker, Storage はオプションです。
と書きましたが、下にWindows Azureのアーキテクチャ図をPDCの PPTから抜粋して説明します。
まず、フロントエンドは、ロードバランサーが複数のWebに振り分けていきます。WebRoleの部分は、厳密に言うと違うと思いますが、VSで開発される方には、下記のようにASP.NETのWebアプリケーションです。おそらく、別のアーキテクチャ資料から想像すると、この単位(WebRole, WokerRole, Storageの単位)で仮想サーバになっているようです。Web部分が中心的な存在になります、WebRoleからAccount情報を通して、Storageにアクセスします。

典型的なプロジェクト構成で作ったソリューションの画像を添付します。

WokerRoleは、COM+やサービスプログラム、ワーカースレッドとは似ているようですこし違うものなのですが、ようは常駐型、ワーカサービスです。現在のテンプレートもWhileループで、特定の情報、イベント、キューをチェックするような構成になっています。これも、冗長構成をとれますので、コンフィグだけでインスタンスの数を指定できます。キューや、ストレージへのアクセスは、Webと同じように、Account情報を元にして行います。GetHealthStatus()の戻りが、Healthyっていうのはすこしオシャレですね。
いい言い方をすれば、すでにエンタープライズで適用できるアーキテクチャフレームワークが提供されています、この点がWindows AzureがPAASであることを示しています。AmazonのEC2は、サーバそのものを提供しているので、HAASと呼べると思います。ASP.NETという開発はそのまま使えるのですが、100%そのまま現行のWebアプリケーションをクラウドへというものではなく、Windows Azureのアーキテクチャに従って構築する必要がある部分があることを注意しなくてはいけません。リリースされる頃にはこの点はもっと解消されているかもしれません、サービス思考で作られている方のほうが移行は簡単になることは間違いないです。