クラウドな開発環境 Cloud9 による Windows Azure アプリケーションの開発 ~ クラウドカバー Episode 71
今回の Cloud Cover は、Nathan Totten と Glenn 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 をサブスクリプション間で移動できるようになっています。
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 開発環境。
Cloud9 を利用する際には、Cloud9 上でアカウントを作成することもできますし、GitHub もしくは Bitbucket のアカウントを使ってログインすることも可能です。
また、利用パターンとしては、無償の「Standard」と月額 $15 の「Premium」が用意されています。
Matt がサインインすると、Matt が現在関わっているプロジェクトの一覧が表示されます。
もちろん、新しいプロジェクトを作成することも可能です。新規作成の場合は、プロジェクトの名称と、使用するリポジトリのタイプを選ぶだけでさくっと、新しいプロジェクトが作成されます。
プロジェクトを開くと、以下のようにブラウザ上で、Cloud9 の使い方ガイドが出たりする親切設計。
プロジェクトを開いた際には必要なコンポーネントのダウンロードのため、少し時間がかかったりしますが、その後はブラウザ上で想像以上に軽快な操作で動作します。
Glenn も、ブラウザアプリケーションとしての Cloud9 の完成度の高さ、オープンソースとしての可能性の大きさをベタほめです。
さて、Matt が Cloud9 で開いたのは Node のチャットアプリケーションです。
これまでも Cloud Cover で何度か取り上げられてきた Node.js。今回の Cloud Cover でもGlenn と Matt が説明していますが、Node.js はサーバーサイドの JavaScript の実行環境です。
エンジンとしては Chrome の V8 を利用しており、コンカレンシー(並列)実行が特徴となっています。具体的には Node.js 上でのプログラム実行はノンブロッキングな、非同期呼び出しとして行われ、複数のオペレーションを同時に実行できます。あるオペレーションを呼び出す際には、そのオペレーションが終了した際に呼び出されるコールバック用のオペレーションを指定しておき、操作を継続するイメージ。
今回 Matt が開いた Node チャットは、Node.js の特長(ノンブロッキングな非同期呼び出し)を説明するのに適したサンプルです。
ということで、早速実行を行いたいのですが、Cloud9 ではアプリケーションの実行環境も用意しており、「デバッグ」を開始すると、Cloud9 のサーバー上でアプリケーションのデバッグ実行が行われます。
表示された URL をクリックすると、新しいタブが開き、そこでアプリケーションのデバッグを行えます。ブレークポイントの設定も可能で、Cloud Cover では、ユーザーが Join した際に、一旦停止するように設定しています。
さらに、ステップ実行や変数の値の確認、
おまけに、インタラクティブなコードの実行も可能です。
また、Cloud9 では、開発環境(IDE)の基本機能として、コーディングを支援するためのチェック機能を提供しています。例えば、宣言はしたけれど使用されていない変数に取り消し線を引いたり、明示的な宣言を行わないためにグローバルの名前空間に作られてしまいそうな変数を教えてくれたり、という機能です。
これらの機能は、Cloud9 で現在開発を進めている AST(Abstract Syntax Tree)に関連する機能として実装されており、今後この機能を拡張することで JavaScript 以外の言語に対してもコーディング支援を行える機能として開発を進めるそうです。このあたり、詳しくは Cloud9 の開発チームの Blog エントリ「Towards JavaScript Refactoring」を参照ください。
さて、Glenn としては開発環境といえば、ショートカット機能の充実具合にも興味がある模様。これに対して Matt から、Cloud9 では Vim のモードが搭載されていること、またカスタマイズ可能なショートカット機能も用意されている、と説明され、一安心の Glenn。
さらに、開発したコードのデプロイ先としては、Heroku、Joyent、そしてわれらが Windows Azure を選択可能です。
この機能によって、Visual Studio や Windows Azure SDK がインストールされていない PC や Mac からも、Cloud9 上で Node.js のアプリケーションの開発、そして Windows Azure へのデプロイを行うことが可能です。
ということで、ブラウザベースにもかかわらず機能満載&クラウドとの相性抜群の Cloud9 ですが、今後も Windows Azure との統合機能含め、さらなる発展が期待できそうです。
では、最後はいつもの通り Tip of the Week!
今回の 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!