@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

東京Node学園 9時限目 #tng9 に行って来ました

色々あって勉強会に出るのも久しぶりな気がします。
だいぶ遅くなりましたが、資料がアップされて下書きしていたのを思い出したので、メモを投下しておきます。


TV視聴参加型システムを支える伸縮可能型Socket.IOクラスタの裏側

資料 → TV視聴参加型システムを支える Socket.IOクラスタの裏側 // Speaker Deck

  • MIESとは
    • http://www.bascule-go.com/product/
    • ダブルスクリーン視聴によるテレビ番組への参加体験を提供する
    • スマートフォンの操作が連動する
    • テレビを見ながら、テレビとスマフォが連携する、それがテレビに表示される
    • BloodyTube
      • テレビの中のゲームに参加出来る
      • ポイントは実店舗で利用できる
    • これの裏側でMIESが動いている
  • リアルタイムメッセージングシステム
    • 要件
      • リアルタイムに友達の情報を共通したい
      • ブロードキャスト配信したい
      • 1つの案件ではなく、色々と使えるように汎用性を持たせたい
      • クロスブラウザ
      • なるべく安く
      • スケール、番組は1時間くらいだから、20万ユーザくらいはよろしくね。
    • Socket.IO
      • マルチトランスポート
    • 問題点
      • 2回アクセス問題
      • スケールアウト、RedisStore
      • プロキシで対応する
      • 独自ノード管理する これを採用した
    • 何が出来るの?
  • ソケット接続確立まで
    • 一度コンシューマで認証してから、APIサーバに認証しにいく。
    • 接続先を返してもらって、そこからソケットサーバを見に行く。
  • メッセージ配信
    • ユーザAがAPIを叩くと、APIサーバがソケットサーバへ
    • ソケットサーバから別のユーザにプッシュする
  • メッセージ配信
    • コンシューマからAPIを叩く
    • APIサーバから、ソケットサーバ群にブロードキャストし、ソケットサーバがプッシュする
    • ソケットサーバ間もSocket.IOで接続する
      • パフォーマンスが良くなった。でも問題もある。
  • ノード管理
    • バッチでソケットサーバ群を監視している。その情報をDBに入れている
    • APIサーバはDBを参照して、どこに繋げれば良いかを判定する
    • ノード追加
      • 死んだら、DBを更新する、更新されたら、APIサーバは別のところにつなげるようにする
  • サーバTips
    • 特定のノードに偏らないように、ノード毎に重み付けを保持する
    • Socket.IOのコネクションの数により決定する
    • github node-sio ...
      • Socket.IOのパラメータ調整
      • reconnect_failedのバグがある
  • さらなるステップ
    • 実績
      • 同時20万ユーザ接続。テストですけど。今の構成で2倍3倍はいけそうです。
    • 100万超えを目指したい。
    • そのために
      • APIサーバとソケットサーバの結合度を下げる
      • 間にリレーサーバを挟む
      • ジョブキュー
      • Amazon SNS
      • データストア
      • Twemproxy+Redis
      • Riakを検討
  • 1台あたりの接続数を上げるための施策
    • Cluster化を採用する
    • あるいはSocket.IOをやめる
      • Sock.js ただし、レイヤーが違うっぽいので、
      • Engine.io
  • まとめ
    • TVとスマフォがリアルタイムに連動するプラットフォーム
    • Socket.IOでも十分に大量の接続が捌ける が 工夫は必要
    • リアルタイムによる弊害を認識しておく
      • アクセスが集中しない工夫
      • ソケットが繋がらなかったクライアントも救う手段を用意しておく

Co-Meeting のリアルタイム Web プラクティス

co-meeting | リアルタイムコラボレーションツール

  • co-meeting
    • チームの全てを共有するリアルタイムコミュニケーションシステム
  • CROWY
  • co-meeting
    • リアルタイムな掲示板みたいなもの
    • Evernoteがリアルタイムになった感じのもの
    • インプット→まるまる→アウトプット
      • GithubのIssueとか
      • PivotalのTrackerのストーリー
      • BasecompのTodo
      • Redmineのチケットなど
  • 実装について
  • stunnel-haproxy で接続
    • リアルタイム意外の部分はRails
    • Jetty上でSocket.IO-Javaで実装している。ApacheWaveでチャットを使っている。
      • その関係でJavaで実装している
    • 画像系はAmazon S3
    • アプリケーションデータはMongoDB
    • RailsとのデータやりとりはRedis
    • OCFS2+iSCSI
  • Apache Wave
    • Google Waveが前身です
      • 2009年9月プレビューリリース:リファレンス実装
      • 2010年5月 正式リリース(Google.IO)
      • 8月 クローズ宣言:Wave in a Box , work around
      • 2012年3月閉鎖:Apacheプロジェクト
  • waveプロトコル
    • 一文字一文字送信して、返す。
    • チューニングポイントでもある。
    • JSONでやりとりする。Wave GWTでHTMLをレンダリング
    • Jettyで受けて、Socket.ioからWaveサーバにいく。そこからProtcolBufferで。
    • WebSocket, XHR-PollingをSocket.ioで吸収する。
  • Socket.io-java
    • Socket.ioのプロトコルJavaサーバー実装
    • Socket.ioの機能が利用できる
    • ただし、あんまり使っている人が居ない。
      • バグが多い、対応しているバージョンが古い
      • 本家がどこかわからない
      • 無いよりましな程度でしか使えない
  • 改修ポイント
    • Socket.io-javaは1人コケると全員アウト!
      • そこは非同期で吸収して、1個1個送るように修正しました。
    • レスポンスが帰ってこないと次が送らない
      • 競合の整合性を担保するためのもの
      • レスポンスのバージョンをあわせないといけない
      • 今は、ポップアップでアラートするにとどまっている
  • インフラとしてのJava
    • メモリ管理リツールや、ノウハウが豊富
  • Ruby on Rails + Apache Wave
    • ユーザ管理とか、普通の画面はJavaで実装する必要はない
    • Railsは何でも揃っているから、色々と頑張らなくてもよい
      • コアな部分にリソースを投入出来る
    • セッション情報は、Redisに登録する(RailsのセッションIDを使う)
    • Socket.io接続後、認証をリクエストする
  • RailsのPubsub
    • Rails側からPublishして、SubcribeでJetty側に通知して、ユーザにプッシュする、ユーザがRails側から取りに行く。

LT

Node.js + Unity
  • Unity
    • 3Dゲームの開発ツールゲームエンジン
    • iOS,Android,デスクトップ向けが作れる
    • ゲームに限らず、3Dでやりたい場合には、Unityを使えばいいとおもう。
    • unity <-> node <-> smartphone
"Yeomanでtmlib.jsのゲームを量産する"話
  • tmlib
    • Time is Maney Library
    • ゲーム用のライブラリ
    • b-rogue
      • これもtmlibで作られている
  • 今、tmlibとsocket.ioでゲームを作っている。
    • YomanでScaffoldのツールを作って、やっています。
    • Yoman1.0で、yoって言うものになっています。
      • Gruntとかそのまま使えたほうが良いから。
    • Express
      • Scaffoldだけでこれが出来上がる
第1回 納涼もんご祭り
  • http://mongodb.jp/mongo/noryo2013/top*title
  • 7/28 東工大蔵前会館 参加費無料
  • 隅田川の花火の翌日です。いつきてもいいですよ。
  • 懇親会もあります。渋谷のイカセンターでやっています。
  • スタッフも募集しています。

東京Node学園 8時限目 #tng8 に行ってきました

と言うことで、メモを投下。

Param Tuner

資料 → ParamTuner 東京Node学園#8
しばらく中に入れなくて、聞けてませんでした。
統計解析の話だったようです。資料見て自習します。

  • QA
    • JavaScriptで統計解析やるにあたってデータの量とかはどうなんですか?
      • 実際にはHadoopで裏でやっていますが、その前段階の傾向を見るのに使っています
      • なので、そんなにデータは多くはないです。

Nodeとプロミスと時々、関数型

資料 → Node, Promises and Functional Programming // Speaker Deck

  • ことの経緯
  • 非同期処理を書く時に何を考えるのか?
    • タスク同士の依存関係を考える
    • 必要な操作の順序を考える
    • 最後に、その制御フローを考える
  • コールバック VS プロミス
    • コールバックの良くないところ
      • 処理をモジュール化したり組み立てたりするのが難しい
      • 逐次処理か並列処理かを明示的に制御する必要がある。
      • あと、ネストが深くなってしまう問題があるけど、重要な論点ではない。
    • 複数のファイルを並列的にfs.statしてmtimeを取り出す処理
    • 複数ファイル全ての結果が揃ったら次の処理を行う
    • この実装をした後に、追加の処理を入れたいとする
      • 1つ目のファイルからサイズを取り出したい処理を追加
    • 単純に追加すると、ファイルに2度アクセスすることになり効率が悪くなる
    • 正しい順序で、効率良く処理させると、実装がかなり複雑になる
    • 結果
      • 正しくコードを書くのが大変
      • 設計の意図が明確にならないので、メンテナンスが大変
      • 逐次処理か並列処理かで、後続の処理を実装する方法が変わってしまう
  • プロミスとは
    • 完了していないかもしれない計算の結果が入っている箱
    • プロミス自体も値なので、関数の間で受け渡しが出来る
    • 計算が完了すると特定の処理を呼び出したりする(ものが多い)
  • しかしながら
    • 必ずしも全てのプロミスが関数型ではない
    • 言語やライブラリによって異なる
  • 関数型とは?
    • あらゆるものを値として扱うことで問題を解く手法
    • 命令型はHowを記述して伝える
    • 関数型はWhatを値同士の関係によって記述して伝える
      • 関数は、値同士の依存関係を定義するもの
    • 関数は、引数を得て、戻り値を返す
      • 複数の関数を合成して、大きな関数にする
      • 別の関数への入力として、パイプラインを作る。
  • 関数型プログラミング
    • あらゆるものを値として扱い、
    • 値同士の依存関係を関数で表現し、
    • 複数の関数を合成してより大きな関数を作る
  • 先の例で言うと
    • 複数の非同期計算を合成して大きな計算をする
    • 後で処理を追加したいときには
      • thenを使う
      • thenは、プロミスに依存する別の非同期処理を記述する
      • thenで記述された処理は、値がいつ利用可能になり、どんな順番で処理するかを気にする必要がない
  • プロミスとthenを使うと
    • 記述された依存関係を元に実行順序を自動的に解決するので、
    • 依存関係でプログラミング出来る
  • 結果を待ちたい場合
    • プロミスの配列をリストに対するプロミスにする
    • これによって待合せが表現できる
  • 課題に戻って
    • プロミスを使うと、必要な操作の順序を考えなくても良い
    • なので、非常にシンプルにプログラミングが出来る
  • プロミスは難しい
    • 先のブログに対する反論記事
    • プロミスを使うと
      • thenやlistで意味的に隠蔽してしまうので、認知的コストが大きい
      • プロミスを使ったものは、学習コストがかかる
  • 反論に対する反論
    • 簡単であるかよりも、シンプルであるかを問うべき
    • やりたいことが変わった時に、コードの変更が少なくて済む
  • 結局
    • どちらもただしいと思う
    • コストとメリットを天秤にかける
      • ただ、非同期プログラミングのコストの支払期限は意外と早いのでは?
  • まとめ
    • コールバックはとっつきやすい
    • 変更に強くするならプロミス
  • メッセージ
@koichik さんから
  • 3年ほど前はnode.jsでもプロミスを使っていました
  • しかしながら、あんまり評判が良くなかったようです。
  • プロミスが嫌われていたのは、プロミス自身ではなくて、JavaScriptでのプロミス自身がいけていなかったから。
  • 先の例で言うと、実際にはエラー処理をしなければならないが記述されていない
  • エラー処理を実装すると、結局冗長にせざるを得ない
  • 現在、node.jsではメカニズムとして一番シンプルなコールバックのみ提供している
  • プロミスの実装は、別のモジュールで色々な人が作っている
  • node.jsのスタンスとしては、モジュールとして好きなものを作っていいよということが現在のスタンス

LT

LET IT CRASH!?

資料 → 東京Node学園#8 Let It Crash!?

  • Let It Crash?
  • 堅牢なコードを書くには?
    • ディフェンシブプログラミング
      • 失敗する可能性があるものは失敗するので、失敗に備えておこう
      • 引数などはチェック、例外を捕まえる
      • アプリがエラーから回復する
      • 通常処理とエラー処理が混在する
    • Let it crash
      • 失敗に備えない
      • 例外を捕まえないで、スーパーバイザがエラーから回復する
      • 通常の処理と分離出来る
  • スーパーバイザ
    • 1つクラッシュすれば、それだけリトライ。One4One
    • 1つクラッシュすれば、関連を全てリトライ。All4One
  • You! さっさとクラッシュしちゃいなよ!
    • process.on('uncaughtException')
      • OnErrorResumeNextとは違うのですよ。
    • domain.on('error')
      • エラーを無視するな
      • エラーが起きたら、プロセスをシャットダウンしなさい

といった所でLTタイム終了しちゃいましたが、まだ半分までです。
domainのAPIドキュメントを見てね!

LT2 Object.defineProperty

資料 → 不明

  • Object.defineProperty
var obj = {};
Object.defineProperty(obj, 'prop', {
    // ここにプロパティのオプションを書く
});
  • オプション
    • configure
      • falseを設定すると、上書きとか削除とかできなくする
    • enumerable
      • for inのループで出てこなくなる
    • wraitable
      • 上書きできなくなる。
      • 定数とか。厳密には定数とは違う。現状のJavaScriptで実現出来る方法。
    • get, set
      • getter / setter が定義が出来る
  • 複数のプロパティをまとめて定義することも可能
Object.defineProperty(obj, {
    'prop1': {
         // オプション
    },
    'prop2': {
        // オプション
    }
})

サーバサイドJavaScript Node.js入門

サーバサイドJavaScript Node.js入門

Macにnode.jsをインストールする

OS: OS X 10.8.2 Mountain Lion
node.js: v0.8.17
MacBook Proを買ったので、開発環境を作っています。今回はnode.jsを入れましょう。
Node.jsからINSTALLボタンを押してダウンロードします。
ダウンロードしたファイルを選択して起動しましょう。
ポチポチと進んでいけば簡単にインストールされるはずです。
ターミナルを起動して、バージョンを確認します。

$ node -v
v0.8.17

きちんとバージョンが表示されていればOK。

東京Node学園 7時限目 #tng7 に行ってきました

メモったことを書き残しておきます。

学園祭告知

  • 11/18に法政大学で東京Node学園 学園祭を行います。
  • 公式サイトはこちら→東京Node学園祭2012
    • 申し込み開始しています
    • 学園祭は無料、後夜祭は有料
    • セッションとLTの講演者も募集中
  • 盛り上げるためにAdventCalendar的なものも行います

lev

資料→Lev

  • lev
    • connectFree/lev · GitHub
    • Lua向けのイベントベースIO
    • プラットフォームです
    • 特徴
      • 早い
      • 低メモリ
      • 簡単にCのライブラリと統合出来る
    • levはLuvitをForkしてるけど、ほぼフルスクラッチで書いています。
    • Apache2.0ライセンス
  • 開発者からのビデオメッセージ
    • NodeはV8エンジンで動いていてスゲー!楽しい!けどね。。。
    • でも、JavaScriptなんだよね、もっと男前の言語でやれたらいいね。
    • Cっぽくて、早いのがいいよね
    • Pythonみたいに、Rubyみたいに
    • マルチコアはこれから作っていくよ
  • ベンチマーク
    • Node 0.8.9, Levit 0.5.0 と比較しても速度、メモリ使用量ともに良好
  • cBuffer
    • コアになる部分
    • 完全にCで実装
  • MessagePack
    • kengonakajimaさんのライブラリをcBuffer用にカスタマイズしている
    • このライブラリはオリジナルのMessagePackより早かった
  • Multi-Core
  • APIの見直し
    • fsのsyncとasyncが分かれているものを見直している
  • Build System
    • 今はmakeファイル
    • 今後は、cmakeにしたい
  • 動作プラットフォーム
  • ロードマップ
    • Webアプリケーションのプラットフォームにしたい
    • npmのようなパッケージ管理の仕組み
    • 既存のLuaのパッケージシステムにも対応しあい
    • 正規表現

Stream Stream Stream!

資料→Node Academy 7 | "Stream Stream Stream !!!"
StriamHandbook→meso/stream-handbook · GitHub

  • Stream
    • インタフェースです
    • stdinとか、stdoutとか、httpなどなど。
    • Readable、Writableとその両方の特性をもつ2種類がある
    • onとemitが使える
    • Streamは継承することが出来る
  • Readable Stream
    • いくつかのAPIを実装していること
      • process.stdin
      • fs.ReadStream
      • http.ServerRequest
  • Writable Stream
    • Readable Streamと対応するいくつかのAPIを実装していること
      • process.stdout
      • fs.WriteStream
      • http.ServerResponse
  • パイプ
    • unixのパイプと同じイメージ
    • readable | writable のように使える
    • 読み書きでスピードが異なる場合に、そのギャップを埋める必要があるが
    • パイプを使わない場合には面倒な処理を入れないといけない
    • パイプを使うと、その実装をよろしくやってくれる
  • Filter Stream
    • readable かつ writable
    • 左から右へ流れていってしまう
    • その途中で、圧縮するとか、暗号化するとかの処理を挟むことが出来る
  • Duplex Stream
    • 入り口と出口が独立しているので、勝手に左から右へ流れていくことはない

LT

Node製のWebアプリをGraceful Restartする方法

資料→Graceful restartをnode.jsで試してみた。
qilin→atsuya/qilin · GitHub

  • 優雅な再起動
    • モジュールを書き換えた場合に、Warkerスレッドにdisconnectかけて、新しいスレッドをforkする
  • こちらのレジにお並びくださいなイメージ
  • qilinで実装される。Worker数が指定出来る。
  • upモジュールを使うとHotdeploy的な事が出来る
    • ただしパフォーマンスは良くない
ArduinoとNode.js(WebSocket)でつくったオシロスコープの自慢

資料→ArduinoとNodeでつくるオシロスコープ

  • オシロスコープ
    • 電圧の動きをグラフ化するもの
    • 結構イイお値段する
  • ArduinoとNode.jsで作ってみた
    • 振動を電圧に変えて送っている
    • AD変換して、シリアル通信で送り続けている
    • 遠隔でも大丈夫
  • ハードウェアとイベント駆動は相性が良い
node-webkit でデスクトップアプリを作ってみた

資料→tng7 LT // Speaker Deck

  • Write Once Run anywhere的な、でもまだそうでもない。
  • Chroniumからコードぶっこ抜いて、Nodeとくっつけた感じ
  • nodeを使ってGUIの構築が可能
  • Intelの中の人が開発しているらしい
pp.jsについて

資料→Introduction pp.js
GithubVoQn/pp.js · GitHub

  • async.jsを目指したものを作っている
    • async.js自体は非同期ではなくて、非同処理を楽にするもの?らしい。
    • 擬似並列?
node-mrubyの話
  • mrubyはrubyを軽くした実装
  • node.jsにmrubyを組み込んだ
  • すごい簡単
  • npmに上がっている
  • mrubyはまだまだ発展途上
node-canvas でクライアントサイドのライブラリを動かしてみた

資料→About node-canvas (#tng7) // Speaker Deck
githubnulltask/node-processing · GitHub
githubnulltask/node-three.js · GitHub

hooleganの宣伝

サイト→http://hoolegan.com/

  • イベントの盛り上がりを可視化するサービスでnode.jsを使っている
  • スマフォでアクセスして、良かったら上向きにして振る、いまいちだったら下向きにして振る

東京Node学園 6時限目 #tng6 に行ってきました

ちょっと色々ありまして遅くなりましたが行ってきたのでメモしたものを投下しておきます。

10分で作る Node.js Auto Scale 環境 with Amazon CloudFormation

資料→10分で作る Node.js Auto Scale 環境 with CloudFormation

  • AWSで1億リクエスト/日 をやってみる話。つまり1200リクエスト/秒。
  • AWS
    • ELBからインスタンス複数置いて、DBをつつきにいく構成。
    • 単純だけどやることがいっぱいあって結構大変。
  • Cloud Formation
    • インスタンスの構成のテンプレート
    • 自分だけのPaaS環境を構築することが出来る
    • アプリのURLはgithubのzipダウンロードのURLを指定
    • ワンクリックで出来ちゃう
  • Nodeインストール
    • コードからのインストールはマイクロインスタンスだと10分くらいかかるので、バイナリでインストールすると1分で済む
    • JSON形式で構成を各
    • AIMが不要
  • AutoScale
    • CloudWatchのアラームで実現する
    • アプリの特性によってどの項目を監視するのかが決まってくる
      • Nodeの場合はCPUとかネットワーク
      • JSONで書く
  • アプリのDeployとUpdate
    • 環境設定のJSを使う
    • アップデート
      • githubのZipのURLを変える(リリースブランチを使うとか)
      • 古いアプリのサーバを殺せば監視されているので自動的に新しいアプリのサーバが立ち上がる
    • WebSocket
      • 接続中にサーバが死ぬと再接続出来なくなる(接続先が無いから)
      • 負荷が収まってインスタンスを落とすと接続出来なくなってしまう
      • クライアント側で再接続するようなことをしなければならない
  • まとめ
    • Pusherのクローンを作ってる
    • テンプレートも配布します
  • Q&A
    • おいくらくらいかかるの?
      • どれくらいスケールするかによります
      • 30日で5000円から1万円くらい
    • 設定のJSONgithubに置くの?
      • S3に置きます
      • 1クリックでなくても良いならファイルアップロードでやります

文字コードと Node

資料→東京Node学園#6 文字コードと Node

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

聞きながらこの本のことを思い出した。そう言えば積んだままだった。

そうだったのか! 学べる process.nextTick()

資料→そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する

  • イベントループとprocess.nextTickをわかればいいよ。ここがNodeで大事。
  • chromeと同じペースでリリースしていこうと思ったけど無理があった。
  • v0.6とv0.8でイベントループとprocess.nextTick()は結構変わっている
    • 今回はv0.8ベースで説明
  • イベントループ
    • Nodeの心臓部
    • Nodeが起動するとuv_runが動く
    • uv_runはループ処理をしているだけ
    • handleとreqがなくなれば終了します
  • handle
    • I/Oが発生していないときも動く
    • server.listen()とか
  • req
    • I/Oが発生しているとき
    • http.get()とか
  • イベントループは7つのステップ
    • 3のrun_idleで止まるような処理をしてはいけない
    • 何でnextTickが3つあるの?
      • 呼び出し順と入れ子の場合の呼び出し順を守るため
  • v0.9では変えるよ
  • 正しい使い方
    • emit 非同期イベントの発生時
    • コールバック呼び出し
    • 守ろう!混ぜるな危険
      • 非同期のときは非同期のコールバック
      • 同期のときは同期のコールバック
    • nextTickの再帰は避けよう
      • マスタプロセスではしないで、子プロセスでやる
  • まとめ
    • 7つのステップを理解すること
    • 2つの用途を守って使おう
    • CPUを使う場合は子プロセスでやろう
    • 再帰処理はAPIが変わるかもしれないから気をつけて

#txjs でやった npm の話

資料→https://npm-tng6.s3.amazonaws.com/

  • インストールは0クリック
  • npmの依存関係はnpmで管理
  • npmはgit/github時代のもの
  • npmのコードはとても良い
  • npm helpステキ
  • npm -install --save でpackage.jsonにも追加してくれる
  • npm init はgit cloneの後でやる
  • npm shrinkwrap で依存関係をロックするバージョンをロック出来る
  • prepublishでCoffeeScript等をコンパイル
  • バージョンの指定は>より~が良い
  • npm cache cleanでv0.8用にしよう

LT大会

破綻させない大規模JavaScript

資料(原稿)→原稿

  • ネイティブからHTML5ベースにするお仕事
  • JSerの人はテスト書かない
  • Rubyから色々ぱくってきた
  • CofeeScriptでやったった
  • Jasmine Headless Webkit
  • Railsのディレクトリ構成
セキココ
  • http://sekico.co/
  • NodeとSocketio
  • 勉強会とかイベントでの座席をベースにリアルタイムなコミュニケーションを実現
  • PHPとNodeを組み合わせた
SSL証明書取得のススメ
  • SAN
    • 1個の証明書に複数入れる
      • でも認証局があんまりない&お高い
  • SNI
    • OpenSSL9.8移行
      • 時代が追いついた
  • NodeでNSI
    • 証明書を文字列からBuffer経由で
      • デフォルトはcreateServerで
      • 追加はaddContextで
  • startSSL
    • 1年間有効なClass1証明書を無料で取り放題
  • SSLとNodeで結構重くなるらしい
腕とNode

資料→0628 東京 node 学園 6時限目 LT 「腕 と Node」

Node.jsのPaasまとめ

資料→Node.js PaaS

  • 結論:好きなの使え