HerokuがNode.jsをサポート
Experimental Node.js Support
- 2010.4.28にホスティングやってるHeroku(今回初めて知った)がNode.jsのサポートをアナウンスしてたらしい
- まだ実験フェーズという位置づけ。
以下斜め読んだ内容
- Herokuのロードマップについて 前回ポストした
- (補足)前回ポストの内容
- 現在Heroku上で動くアプリは先週だけで1,500、全体で6万以上
- 今後のロードマップ
- これまでシンプルなものから徐々に複雑な機能を追加していった。その際にシンプルさと開発者の生産性向上にマッチするものをリリースしてきたし、次のリリースもそういうものになる
- 次の新機能は、リアルタイム/イベントドリブンな/多階層(multi-tier)なアプリがデプロイできるようになる
- (補足)前回ポストの内容
- リアルタイムアプリケーションとイベントドリブンなアーキテクチャ。
- これを次のステップの候補に考えてる。
- 現状のRubyアプリ
- たいてい同期的
- I/Oはデフォルトでブロック
- 例。ファイルをアップ/サービスを引っ張ってくる/データを待ってる間、アプリはブロックされたまま。
- I/Oブロックを取り除くことは可能だが、とてもメンドクサイ
- 例1。自分が書いてるコードや自分のコードが読み込んでるものの中から、I/Oブロックしてるところをひとつずつ取り除く
- 例2。EventMachineのようなライブラリを使って、I/Oブロックを取り除く
- Adam Wigginsがいいこと言ってる
- 「eventmachineのようなライブラリは本当に直感的に使えるという代物にはならない。イベントドリブンなI/Oは決定的な転換でイベントドリブンなI/Oと言語レベルの根本的な統合(deep language integration)が必須だから。その点Javascriptはブラウザに起源を持つため元々イベントドリブンな言語。」
- Node.js
- javascript用のイベント駆動型のI/O(evented I/O)
- V8エンジンの上に構築される
- イベントドリブンなI/Oのハンドリングが驚くほどシンプルになる
- (Herokuが異常にこだわってる)シンプルさと開発者の生産性向上に完璧にマッチしてる
- RubyコミュニティはNode.jsへの反応は早かったし、十分理由がある。
- 既存のアプリの中で、リアルタイムのイベントハンドリングや大量の同時実行が必要になる部分がある
- Node.jsを使うと、カンタンでエレガントにできる
- Express(Node.jsフレームワーク)のようなフレームワークが既にあることもNode.jsの適用をラクにしてる
- c.f.Node.js For My Tiny Ruby Brain: Keeping Promises -- techno weenie
- 既存のアプリの中で、リアルタイムのイベントハンドリングや大量の同時実行が必要になる部分がある
- Herokuの提供するサービスにおいて、Node.jsはランタイムを決める上での選択肢の1つになってる
- コースBruneous BeechでNode.jsをランタイムに選べる
- プラットフォームとしてNode.jsをサポートすることは色々疑問・質問が生み出す
- サポート方法の変更
- サポートするNode.jsのバージョン
- 既存アプリとNode.jsの統合の仕方
- Node.jsサポートはHerokuでは実験フェーズ
- このフェーズでRubyコミュニティとNode.jsのコラボレーションを見届けたい
- 今後数ヶ月経過したら、色々出た問題・疑問へHerokuから回答をしていく
- HerokuでNode.jsを使うには?
- メール(nodejs@heroku.com)くれ