赤シャツ Scott Guthrie 再び ~ Windows Azure SDK 1.6 を語る ~ クラウドカバー Episode 65
今回のクラウドカバーは Scott Guthrie (スコット ガスリー)をゲストに迎え Windows Azure SDK についてディスカッションします。
Scott Guthrie は、メールアドレス(MS社内ではアリアス(alias)と呼ぶ)が、ScottGu と綴るため、”スコット グー”、あるいは “グー” と呼ばれたりもします。もともとは ASP.NET の立ち上げチームの一人で、後に ASP.NET の開発責任者を担当し、その後 IIS や Silverlight など Web テクノロジー全般の開発責任人者を歴任。現在は Azure の開発プラットフォームに関する開発チームの責任者です。
ちなみに日本初登場は Visual Studio 2008 のローンチイベント。その際の様子&詳しい経歴はこちらのページを参照ください(なお、このイベントでも彼のトレードマークである「赤シャツ」の準備があったのですが、”日本”でのイベント、ということで赤シャツではない登壇になったのでした)。
では最初にニュースから。
◆ Using Scala and the Play Framework in Windows Azure
Steve のブログから、Scala と Play Framework を Windows Azure で使う方法に関して。
イベント Devoxx のスケジュールページを Scala と Play Framework で Azure 上に構築しています。いつものようにコードも公開されているので、言語ファンな方は是非
なお、Play Framework におけるテンプレートエンジンは ASP.NET の Razor 記法にインスパイアされて作成されています。これは ScottGu 的にもうれしい話。
◆ Outsourcing User Authentication in a Windows Phone Application
Wade のブログより、Windows Phone 向けの Windows Azure アプリケーション構築用 ACS 利用のための NuGet パッケージの解説です(説明の修飾部が長い、、、)。
NuGet を利用することで、必要な部品(パッケージ)だけを、依存関係含めプロジェクトにインストールでき、パッケージに更新があった場合に適切に扱ってくれるから楽だよねー、というお話。
ああ、ちなみに NuGet も ScottGu が ASP.NET を担当していた際のプロジェクトです。
◆ Ten Basic Troubleshooting Tips for Windows Azure
“THE” David Aiken のブログから、Windows Azure でトラブルシュートするために基本となる10の事項。
- 診断用アカウントと、プロダクション用のアカウントを分けよう。
- わかってると思うけど、Compute と Storage は同じデータセンターで使おう。
- パフォーマンスカウンターでは正しい項目を指定して、実際にデータが収集されていることを確認しよう。
などなど。
クラウドカバーの中では David のブログ エントリの最後にある謎の文字列が話題でした、、、、
Cooperate Vice President な ScottGu がゲストな今回はいつもよりテンポよく進みます。
最後にニュース、として今回の本題、Azure SDK のリリース(Novemmber リリース。SDK1.6)について。
◆ Now Available! Updated Windows Azure SDK & Windows Azure HPC Scheduler SDK
SDK本体の話はこの後、ってことで HPC Scheduler と Windows Azure Library for .NET 1.6 を紹介しています。
特に Windows Azure Library for .NET はこれまで Windows Azure AppFabric SDK として、Windows Azure SDK 本体と別に提供されていた機能ですが、今回のリリースからは統合されリリースされることになりました。Windows Azure において最も PaaS らしい機能である Service Bus や Queue などを利用する際に必要となりますので、まだ使ったことない方は Windows Azure Training Kit を使ってこの機会に試してみてください。
では、ここからが本題。PC交換のための時間を取って、、、、
いよいよ Guthrie の時間へ♪
Steve からの、今回の SDK リリースが開発者にとってどんなメリットがあるのか、という問いかけに、一つ目は ease of use を追求し、余計なものを省くこと行った、二つ目に開発プラットフォームをとしての強化を行った、と答える Scott。
具体的には、AppFabric SDK を統合して開発環境の設定をシンプルにしたり、NuGet の適用を進めた点。また、強化点としては Visual Studio でのツールサポートを改善した、とのこと。
早速デモで見ていきます。
まずは、Vidual Studio を立ち上げますが、最初に作成するのはクラウド プロジェクトではなく、通常の ASP.NET MVC 3 プロジェクト。Azure SDK ではサーバーサイドのプログラムを Azure に乗せるための「仕組み」(後で出てくる Deployment Project の追加の機能)を用意しているので、自由にサーバーサイドの開発を行うことができます。
Windows Azure な機能、たとえば Service Bus を使いたい、というときには NuGet で必要な DLL、設定をプロジェクトに追加することが可能です。
また、Azure にデプロイ(あるいは発行)するぞ、というときには、ソリューションエクスプローラー上で、”Add Windows Azure Deployment Project” を選択すると、自動で該当プロジェクトを Azure に配置するためのプロジェクトが追加されます。
クラウドプロジェクトにおいて、Web Role として配置されるプロジェクトのプロパティ(例えばインスタンスサイズや、インスタンスの個数)を変更しましょう。
おさらいですが、SDK 1.6 における大きな変更点として、通常のサーバーサイド プロジェクトから開発を開始し、Azure 特有の機能を使う際には NuGet で必要なパッケージをプロジェクトに追加、最後にデプロイのための設定をプロジェクトに追加する、といった感じで、これまでの開発と同じような流れで Azure アプリケーションを開発することができるようになっています。
イメージ的には開発したアプリケーションの配置先として、今回はホスティングサービス、今回はクラウド(Azure)、と自由に選べるような流れ。
いい感じです。
既存の Web アプリケーションにおいて、Azure の機能を利用したい、あるいは Azure に配置したい、と思っても簡単に適用できる流れになっていますね。
(これまでも手動でクラウドプロジェクトを追加し、既存 Web アプリケーションを Web Role として追加することで、同様のことが可能でしたが、ツールのシナリオとしてちゃんとガイドがあるので、安心感があります)
さて引き続き、ScottGu もう一つのこだわり、配置(発行)のシナリオについて見ていきます。
Visual Studio での Azure アプリケーション開発においては、セキュアなアプリケーション配置を行うために、Azure サイドと Visual Studio において証明書の交換を行うなど、若干複雑な流れを必要としていました。これが今回の SDK 1.6 において、セキュリティ強度は保ったまま、大幅に自動化&簡略化。
ソリューション エクスプローラーで 「発行」メニューを選択すると、新しいUIが。
ここで、ウィンドウに出ているリンクをクリックすると Windows Azure のポータルに遷移し、Visual Studio との連携に必要な設定をダウンロードできます。
ダウンロードした情報を、先ほどの Visual Studio のウィンドウで読み込めば、Windows Azure の契約情報等が読み込まれてきます。すでに(SDK.15等の利用時に) Visual Studio において同様の設定を行っている場合には、この作業を飛ばすことが可能です。
さて、次は発行を行うホステッドサービスを作成しましょう。データセンターの選択も忘れずに。
既存のホステッドサービスを使用するのであれば、メニューから選択するだけでOKです。
発行するホステッドサービスを指定したら、プロダクション(本番)かステージングか、あるいはコンフィギュレーションはリリースかデバッグか、等々選んでいきます。
Remote Desktop 接続の設定も、簡単に行えるようになりました(証明書の交換を意識することがなくなりました)。また、Remote Desktop の有効期間もデフォルトで1年間となっています
発行で使用するストレージアカウントの設定も自動で行ってくれます(デフォルトで値が入っていますので、必要に応じて変更してください。ストレージアカウントがない場合は自動で作成するようになっています)。
また、発行を行う際に、SDK 1.6 からは、既存のプロジェクトがあった場合に、(SDK 1.5 までのように)既存のデータを削除するのではなく、アップグレードとして扱うようになっています。
したがって、インスタンス数2以上で立ち上げているサービスであれば、強化された In-Place Upgrade の機能を使って、サービスを止めることなく更新することが可能になっています。
また、これにより、これまでよりも発行にかかるスピードが大幅に短縮されています。
実測値として、本日私が発行した際の時間は以下のような感じ。
初回(下のほう)が、おおよそ20分(11:26から11:45)発行にかかっているのに対して、2回目は8分程度(12:05から12:13)で発行が終わっています。
発行のスピードに関しては、今後も改善していき、初回に5分、更新では2分、といったスピードになるようにしたいと、ScottGu。今後も楽しみです。
さて、最後は恒例の Tip of the Week.
いつも楽しいオープニングを用意してくれる Bob ですが、今回のリクエストは、「Gu」な何か♪
今回の Tip は、Visual Studio における Azure へのプロジェクト発行の裏側、ということで、ざざっと出てきたのが、実際に発行の際に Azure とやり取りされるのと同じデータ。発行先の URL や、証明書の情報が含まれた XML 文書です。
ということで、Wade、このファイルを使って、実際に Visual Studio が自動的に行っている Azure とのやり取りをエミュレートするプログラムを披露。
証明書ストアへの証明書のインストール等々を実施してくれます。
Visual Studio で実際に行っていると簡単に行える作業ですが、実際にはセキュアな発行を行うために様々な手続きが行われているのですねー。
また、この手続き自体は、プログラムで実行できるものなので、Visual Studio 以外の開発環境でも同様の手続きを自動化することは可能なようです。
ということで、今回のクラウドカバーは以上です。
ぜひ SDK 1.6 で改善された開発エクスペリエンスをお楽しみください!
それでは!