さて、今回のクラウドカバーは、ハワイ休暇でココロがまだ Redmond に戻ってきていない Wade に代わり、Windows Azure Marketplace の Program Manager (開発チームのメンバー)である Christian Liensberger をゲストに、Steve と2人で進めます。
まずはいつものようにニュースから。
◆ Announcing Improved In-place Updates
一つ目のニュースは In-Place-Update の改善について。
運営中の Web サービスの更新には、ステージングと本番環境のIP割り当てをスワップ(交換)することにより、ダウンタイムなしでサービス更新を行う「VIP(Virtual IP) スワップ」と、今回のニュースのトピックである In-Place-Update があります。 In-Place-Update は本番環境で稼働中のサービスを、インスタンスごとに適宜アップグレードしていくことにより、徐々にサービスの更新を行う方法です。
ただ In-Place-Upgarade では、若干の制約があり、インスタンスサイズの変更や、エンドポイントの変更などが発生する場合に使用できませんでした。例えば、リモートデスクトップ接続を有効にしたい、と思った場合、エンドポイントの変更が発生するため、VIP スワップでの更新が必要だったりしたのです。
今回の In-Place-Update の更新でこういった制約条件が緩和されたことにより、より広いシナリオで In-Place-Update を利用いただくことが可能になっています。
運営中のサービス更新においては重要な話題となります。詳しくは表記のブログエントリを参照ください。
◆ Windows Azure DevCamp in Silicon Valley
Windows Azure のトレーニングがシリコンバレーのマウンテンビューにある Microsoft キャンパスで行われたようです。いいですね。行ってみたいです。。。。。
◆ Field Note: Calling the Windows Azure Storage API Asynchronously
Windows Azure Storage に対して、Asynchronously(非同期) にアクセスする API の使用法に関するガイダンスです。
大量のアクセスを裁く必要のある Web サービスの場合、ストレージアクセスに係る I/O 待ちがボトルネックになる場合があります。このような場合に非同期なストレージアクセスが必要になるかもしれません。あるいは、データの先読みによってユーザーエクスペリエンスを向上させる、といった用途にも用いることができるでしょう。
このドキュメントでは、2つの非同期アクセスの実装パターンを紹介しています。
◆ Windows Azure Marketplace Now Available in 26 Countries
最後のニュースは Windows Azure Marketplace のニュースです。といってもこれは前回のクラウドカバーのニュースのコーナーでも取り上げているニュース。
今回のクラウドカバーは、このニュースである Marketplace について掘り下げていきます。
まず Christian が説明する Marketplace の特長としては、アプリケーションの開発者が、Marketplace が展開している国々における税制や通貨の違いなどを気にすることなく、世界に向けてアプリケーション販売を行うことができる、という点です。
また Marketplace の使い方については Windows Azure Trainingkit、 あるいは、Windows Azure Marketplace の Web ページにある App Publishing Kit にコード解説等含め用意されています。
さて、Windows Azure の Marketplace では、アプリケーション利用者の課金情報をアプリケーションから確認するための API が用意されています。サービス事業者(アプリケーション開発者)はこの情報をもとに、ユーザーに対するサービス提供を行うことが可能になっています。
サービス事業者は、このような仕組み(各国に対応した課金の仕組みや販売のためのチャンネル、あるいはユーザー認証の仕組み)を自前で用意する必要がなくなり、よりビジネスのコア部分に注力することができます。
Windows Azure Marketplace ですが、まだ多くのアプリケーションが集まっている、というわけではありません。認知度的にまだ高くないことも一つの要因としてあげられるようですが、登録されているアプリケーションが少ないということは、Marketplace にやってきたユーザーに対してアピールする機会も多い、とポジティブにチャンスと思っていただき、今のうちに登録いただくのもよいかもしれません
なお、Windows Azure の Marketplace にサインアップし、アカウントを作るのは無料で可能です。
また、Windows Azure Marketplace にある、データ販売の仕組み Datamarket には無償で提供されているデータも数多くあります。
無償のデータの利用を行うに当たっては、クレジットカードの登録は不要ですので、まずはこういったものを利用いただくのもよいかもしれません。
例えば、United Nations が提供しているデータを利用したい、と思ったら、Marketplace にログインして、データ購読(SIGN UP)のボタンを押すだけで、そのデータを利用することが可能になります。データは .NET のプログラムから利用するだけでなく、ブラウザ上から閲覧することもできますし、Excel の PowePivot から扱うこともできます。
DataMarket では、データを OData 形式で公開しているため、下記のような URL でデータにアクセスすることが可能です。
https://api.datamarket.azure.com/Data.ashx/UnitedNations/NationalAccounts/DataSeries?$top=100
アプリケーションにおいてデータを利用する際には、上記のエンドポイントに対して適切な認証情報とともにアクセスを行うことでデータを取得できるようになるわけです。
「Marketplace が便利なのはわかったけれど、課金や認証のためのコードを書くのは大変だったりするんでしょう?」(意訳)と、Steve。
「いいえー、2,3時間もあれば十分だし、トレーニングキットもあるよ。トレーニングキットは1時間程度の内容だし、君のような訓練されたあじゅらーなら、もっと早くできるよ」(意訳)と、Christian。
Marketplace には、”Playground” と呼ばれる練習用のアプリケーション公開場所も用意されています。こちらはもちろん無料で利用可能ですので、アプリケーションの販売前にテスト的に Marketplace のエクスペリエンスを試す際などにはこちらを利用ください。
また、Windows Azure Marketplace では、アプリケーションの販売を開始する際(Publishする際)にも費用は掛かりません。Marketplace で実際にアプリケーションが売れた場合にのみ、費用が必要になります。具体的には、アプリケーションの販売価格のうち、20%の手数料を引いた残りの金額が、アプリケーション開発者に支払われます。
「なるほど、Marketplace の便利さはよくわかったし、簡単に使えることも理解できたよ。これは開発者にとって、ビジネスツールという面でとても重要だし、まずはみんな試してみるべきだね」(意訳)と、Steve。
さて、最後に登場したのは DataMarket で販売されている Mirosoft Translator サービスを利用した Excel な翻訳サンプル。
翻訳先の言語を選択することで、元の文章を様々な言語に翻訳することが可能です。
Microsoft Translator は Wade が作った BabelCam でも使われているサービスです(BabelCam は Windows Phone で撮影した文字情報を OCR で文字認識し、Microsoft Translator によって翻訳するアプリケーションです)。
では最後はハワイに行った Wade をフィーチャーしながらの Tip of the Week!
今回のトピックは、Nathan による「Running Processes in Windows Azure」から。
SDK 1.5 の機能強化により、ProgramEntryPoint を使用したアプリケーション起動の定義が可能になりました。これを利用することにより、.NET のコードを用意することなく、WorkerRole 上で、Node.js などの非 .NET なアプリケーション実行環境を用意することが可能になります。
Nathan の Blog において解説がありますが、単純なイメージとしてはサービス定義(csdef)において、以下のような感じの定義を行い、Node.js の実行環境を Worker Role の含めて Windows Azure に配置する感じ。簡単そうですね。
<EntryPoint>
<
EntryPoint
>
<ProgramEntryPoint commandLine="node.exe app.js" setReadyOnProcessStart="true" />
ProgramEntryPoint
commandLine
=
"node.exe app.js"
setReadyOnProcessStart
"true"
/>
</EntryPoint>
</
このような環境が用意されることで、.NET 以外のアプリケーション実行環境においても、Windows Azure を利用しやすくなるかと。
以上、クラウドカバー Episode 62、Windows Azure Marketplace の紹介でした。
それでは!