クラウドな開発環境 Cloud9 による Windows Azure アプリケーションの開発 ~ クラウドカバー Episode 71

 

今回の Cloud Cover は、Nathan TottenGlenn Block をホストに、クラウド上での開発環境 Cloud9 を提供している Cloud9 IDE 社から CEO の Ruben Daniels とエバンジェリストの Matt Pardee をゲストに招き、Cloud9 を使った Windows Azure アプリケーションの開発を紹介します。

 

では、いつものようにニュースから。

Service Bus support in azure npm 0.5.2

最初のニュースは、Node.js 用の Auzre SDK のニューバージョン 0.5.2 リリースのお知らせ。

今回のリリースでは、Service Bus のサポートが目玉機能です。また、これまで Azure SDK を使用する場合、Heroku でホスティングするためにいくらかの作業が必要だったのですが、今回のリリースでは Heroku のホスティング環境でそのまま動かせるようになりました。

 

◆ Announcing Reduced Pricing on SQL Azure and New 100MB Database Options and Windows Azure Storage and Compute

次は、SQL Azure に関するニュース。

まず、SQL Azure を利用いただく際の価格が下がりました。ご利用いただいているサービス内容によりますが、48% から 75% の価格割引になります。

 

さらに、新しく 100 MB のオプションが追加され、少量からでも SQL Azure の提供する高信頼性&操作性のクラウド ストレージサービスをご利用いただけるようになりました。

また、新機能としてポータルからの操作で、SQL Database をサブスクリプション間で移動できるようになっています。

 

ASP.NET MVC 4 Beta

Azure といえば Web アプリケーション開発、、、、ということで、最新の Web アプリケーション開発環境である ASP.NET MVC バージョン 4 のベータがリリースされました。

バージョン4でも様々な機能強化が行われていますが、モバイル端末への対応機能、そして、Web サービスを簡単に作ることができる Web API 機能が目玉です。

Windows Azure でも MVC 4 ベータのモジュールをアプリケーションに同梱してデプロイすれば利用可能です。現在ベータでの提供になっていますが、Go-Live ライセンス(正式リリース前のモジュール/製品を、サポートなしでOKであれば、そのままサービスに利用してよいライセンス。詳しくはライセンス条項を確認ください)となっているので、通常のサービスで利用いただくことが可能です。

 

Installing the Windows Azure SDK on Windows 8

Windows 8 環境に Windows Azure SDK をインストールするための方法です(素の SDK のインストール方法です。Visual Studio を利用した開発の場合は、「Installing the Windows Azure SDK for .NET on a Developer Machine with Visual Studio 2010 and Visual Studio 11」を参照ください)。

現在 Windows Azure SDK の Windows 8 対応を鋭意進めていますが、とにもかくにも Windows 8 で Windows Azure 開発をしたいんだ!、という方はぜひトライください。

Nathan が試しているところでは問題なく環境構築できたそうです。

 

 

では、本題の Cloud9。

Cloud9 はブラウザ上で動作する開発環境で、Windows 以外の OS を使用している場合でも利用可能な、クロスプラットフォームな Windows Azure 開発環境。

image

 

Cloud9 を利用する際には、Cloud9 上でアカウントを作成することもできますし、GitHub もしくは Bitbucket のアカウントを使ってログインすることも可能です。

image

 

また、利用パターンとしては、無償の「Standard」と月額 $15 の「Premium」が用意されています。

image

 

Matt がサインインすると、Matt が現在関わっているプロジェクトの一覧が表示されます。

image

 

もちろん、新しいプロジェクトを作成することも可能です。新規作成の場合は、プロジェクトの名称と、使用するリポジトリのタイプを選ぶだけでさくっと、新しいプロジェクトが作成されます。

image

 

プロジェクトを開くと、以下のようにブラウザ上で、Cloud9 の使い方ガイドが出たりする親切設計。

image

 

プロジェクトを開いた際には必要なコンポーネントのダウンロードのため、少し時間がかかったりしますが、その後はブラウザ上で想像以上に軽快な操作で動作します。

Glenn も、ブラウザアプリケーションとしての Cloud9 の完成度の高さ、オープンソースとしての可能性の大きさをベタほめです。

image

 

さて、Matt が Cloud9 で開いたのは Node のチャットアプリケーションです。

image

 

これまでも Cloud Cover で何度か取り上げられてきた Node.js。今回の Cloud Cover でもGlenn と Matt が説明していますが、Node.js はサーバーサイドの JavaScript の実行環境です。

エンジンとしては Chrome の V8 を利用しており、コンカレンシー(並列)実行が特徴となっています。具体的には Node.js 上でのプログラム実行はノンブロッキングな、非同期呼び出しとして行われ、複数のオペレーションを同時に実行できます。あるオペレーションを呼び出す際には、そのオペレーションが終了した際に呼び出されるコールバック用のオペレーションを指定しておき、操作を継続するイメージ。

今回 Matt が開いた Node チャットは、Node.js の特長(ノンブロッキングな非同期呼び出し)を説明するのに適したサンプルです。

ということで、早速実行を行いたいのですが、Cloud9 ではアプリケーションの実行環境も用意しており、「デバッグ」を開始すると、Cloud9 のサーバー上でアプリケーションのデバッグ実行が行われます。

image

 

表示された URL をクリックすると、新しいタブが開き、そこでアプリケーションのデバッグを行えます。ブレークポイントの設定も可能で、Cloud Cover では、ユーザーが Join した際に、一旦停止するように設定しています。

image

 

さらに、ステップ実行や変数の値の確認、

image

 

おまけに、インタラクティブなコードの実行も可能です。

image

image

 

また、Cloud9 では、開発環境(IDE)の基本機能として、コーディングを支援するためのチェック機能を提供しています。例えば、宣言はしたけれど使用されていない変数に取り消し線を引いたり、明示的な宣言を行わないためにグローバルの名前空間に作られてしまいそうな変数を教えてくれたり、という機能です。

これらの機能は、Cloud9 で現在開発を進めている AST(Abstract Syntax Tree)に関連する機能として実装されており、今後この機能を拡張することで JavaScript 以外の言語に対してもコーディング支援を行える機能として開発を進めるそうです。このあたり、詳しくは Cloud9 の開発チームの Blog エントリ「Towards JavaScript Refactoring」を参照ください。

 

さて、Glenn としては開発環境といえば、ショートカット機能の充実具合にも興味がある模様。これに対して Matt から、Cloud9 では Vim のモードが搭載されていること、またカスタマイズ可能なショートカット機能も用意されている、と説明され、一安心の Glenn。

image

 

さらに、開発したコードのデプロイ先としては、Heroku、Joyent、そしてわれらが Windows Azure を選択可能です。

imageimageimage

 

この機能によって、Visual Studio や Windows Azure SDK がインストールされていない PC や Mac からも、Cloud9 上で Node.js のアプリケーションの開発、そして Windows Azure へのデプロイを行うことが可能です。

 

ということで、ブラウザベースにもかかわらず機能満載&クラウドとの相性抜群の Cloud9 ですが、今後も Windows Azure との統合機能含め、さらなる発展が期待できそうです。

 

では、最後はいつもの通り Tip of the Week!

image

 

 

今回の Tip は、Glenn がはまった npm キャッシュクリーンの方法。

npm ~ Node Package Manager において、キャッシュが壊れてしまうことがあるそうで、そんな際にキャッシュをクリーンする方法です。

この問題で数時間を無駄にした Glenn 曰く、npm 使用時に問題が起こった時には、まず最初にキャッシュクリーンしてみることをお勧めするよ、とのこと。

詳しくはこちらのページを参照ください。

my tale of npm woe – when all else fails, clear you cache!

 

以上、クラウドカバー Episode 71 の紹介でした。

Enjoy Coding!