クラウドにおいてコンポジットな アプリケーション開発&管理を可能にする AppFabric Application の紹介 by Matt Winkler ~ クラウドカバー Episode 50

 

ひさびさに SteveWade がそろった Channel 9 人気番組 Cloud Cover

Episode 50 となる今回は AppFabric の開発チームから Matt Winkler を迎え、Windows Azure の新しい機能、AppFabric Application を紹介します。

 

 

いつもの通り、まずはニュースから。

 

Client Side Tracing for Windows Azure AppFabric Caching

Windows Azure チームブログから、AppFabric Caching に関してクライアントサイドでトレースするための方法の紹介。トラブルシューティングに関する記述もあるので、AppFabric Caching を評価中の方はご一読ください。

なお、AppFabric Caching に関しては、MSDN の Windows Azure デベロッパーセンターにおいて今月、「Windows Azure AppFabric キャッシュ (Caching)」という日本オリジナルのドキュメントを公開していますので、こちらもぜひご参照ください。

 

Windows Azure Diagnostics API and Service Runtime API References Improved

次のニュースは、Windows Azure の Diagnostics(ダイアグノスティック。診断)API と、Service Runtime API のドキュメント強化のお話。コードサンプルに関しても強化していますのでご活用ください。

 

Just Released: StockTrader 5.0

.NET のテクノロジーリファレンスとして実装されているサンプルアプリケーション Stock Trader が Windows Azure に対応し、バージョン 5.0 としてリリースされました。詳しくは Stock Trader のページを参照ください。。実際に Windows Azure 稼働している Stock Trader アプリケーションも確認いただけます。

image

 

Windows Azure Deployments and the Virtual IP

最後のニュースは、Windows Azure において仮想IPをどのように扱っているかに関してのブログポスト。

Windows Azure では、Application がデプロイされた時点で仮想IPが割り当てられ、デプロイメントが削除されるまでその割り当てが固定化されますよ、という内容で、今回はこれを明示的にブログにて説明させていただいています。

 

 

さて、ここからが本題の AppFabric Application の話題。

AppFabric Application は、AppFabric の機能(サービスバス、ACS、キャッシュ)や、Azure Storage のキュー、SQL Azure データベースといった Azure 上のコンポーネントを組み合わせて構築したアプリケーションを、開発からデプロイ後のメンテナンスまで、包括的に管理するための AppFabric の新機能になります。

image

 

さて、Wade 曰く、AppFabric Application は大きくいって3つのコアピースに分かれます。

  • Tool (開発者向けのツール)
  • Container (Windows Azure 上で AppFabric Application を稼働させるためのランタイム)
  • Application Manager (Windows Azure 上での AppFabric Application のモニタリング、管理機能)

 

最初の Tool に関しては、 “AppFabric Application Designer” として Visual Studio 2010 のアドインとして提供されている機能で、ダウンロード&インストールすることで利用することが可能です。

そして 2番目と3番目の機能(Container と Application Manager)は、AppFabric の Labs ポータルにおいて申し込み後、しばらくお待ちいただくことで利用することが可能です。

ちなみに、私は 7/14 ごろにこの AppFabric Application Manager の申し込みを行っていますが(クラウドカバー Episode 48 の紹介ブログを書いているときに申し込みました)、2週間ほどたった現時点でも Pending (承認待ち)の状態です。。。。

 

AppFabric Application Designer をインストールすると、Visual Studio において新規プロジェクト作成時に、AppFabric のプロジェクト テンプレートが表示されるようになります。今回のクラウドカバーでは、”AppFabric Application” のプロジェクト テンプレートを利用します。

image

 

作成された AppFabric Application のプロジェクトを含むソリューションに WCF サービスライブラリのプロジェクトを追加し、HelloCloudCover オペレーションを追加します。

image

 

サービスのインターフェイスを定義して、

image

 

単純な実装を追加。

image

 

 

次は AppFabric プロジェクトの発行(Publish)を行います(AppFabric Application Manager の CTP 受付が完了していないとこの後の部分は体験できませんので、クラウドカバーの Webcast から画面を抜き出します)。

image

 

さて、ブラウザから、AppFabric Application Manager へアクセスすると、すでに AppFabric Manager の管理下に置いている “AppFabricApplication3” というアプリケーションに並んで、今作成、発行した “AppFabricApplication5” が  “importing…” という状態で表示されています。

image

 

該当アプリケーション名をクリックすると、そのアプリケーションに対して行った最後のアクション、URI 等の情報を確認することが可能です。

image

 

 

AppFabric Application Manager へのアプリケーションの Import が終了すると、引き続きアプリケーションの Deploy を行うことが可能です。

image

 

 

さて、AppFabric Application では、アプリケーションに対するリソースの割り当てに関して、2つの方法があります。一つは Windows Azure のインスタンスを増やすことによる方法。もう一つは、Windows Azure インスタンス中のリソース配分を行う方法です。現在の AppFabric Application では CTP(プレビュー版)ということで、インスタンスの数によるスケーリング機能を提供している、とのことですが、将来的には AppFabric Application Manage から様々なリソース管理もできるようになるようです。

image

 

さて、先ほど Deploy したアプリケーションがそろそろ動き出したようです。

デプロイ後のサービス URI へ WCF のテストクライアントからアクセスし、サービス情報を取り出してみると、

image

先ほど作成した、HelloCloudCover オペレーションが確認できます。

image

 

実際のアプリケーション開発では、HelloCloudCover のような単純な WCF サービスだけでなく、様々なサービスコンポーネントを使用する可能性があります。AppFabric Application Designer では、そのようなコンポジットなアプリケーション作成のための機能も用意しています。

image

 

たとえば、Azure Table をサービスとして追加し、プロパティで、アカウント情報を入力し、

image

 

さらに、この AzureTable を利用するサービスにおいて、この Azure Table への参照を追加すると、、、

 

image

 

該当サービスのプロジェクトに対して、StorageClient ライブラリへの参照が追加されるほか、Azure Table を使用するためのクライアントコードを自動生成してくれます。

この際に、Azure Talbe のアカウント情報などは、AppFabric Application プロジェクト中に保存されるので、参照元のサービスと、Azure Table の関係は “疎” な状態を保てます。Cool!。

image

 

 

さて、AppFabric Application を用いることで、複雑なコンポジットなアプリケーションの開発と管理が、より直感的にできるようになります。以下のダイアグラムは複数のサービス間の参照情報をもとに、サービス連携をダイアグラムにしたものです。

image

 

AppFabric Application Manager については前述したとおり、申し込み制で使用できるまでにしばらくの時間がかかりますが、AppFabric Application Designer については、すでにダウンロード&インストール可能ですので、ご興味ある方はぜひお試しください。

 

では、Cloud King こと Wade 復帰後初の Tip of the Week!

image

 

今回はコンフィギュレーション設定に関しての Tip。

Windows Azure のロールインスタンスでは、コンフィギュレーション設定を変更した際に、RoleEnvironment クラスの Changed イベントが発生します。

Changed イベントが発生した際に、コンフィギュレーション設定変更に対しての振る舞い(特定の設定が変更された場合はロールインスタンスの再起動を行う、変更内容を Azure Table に記録しておく、など)を定義しておくことが可能です。

くわしくは、MSDNライブラリーの「RoleEnvironment Class」を参照ください。(言語で C# を選択すると、サンプルコードを参照できます。一番下のサンプルです。)

 

以上で、クラウドカバー Episode 50 ~ AppFabric Application の紹介は終わりです。

それでは、Enjoy!