Mais conteúdo relacionado
Semelhante a Nodeを稼働させる (20)
Mais de kumatch kumatch (6)
Nodeを稼働させる
- 6. はじめての Node
Node v0.4, その後 v0.6
!
forever で起動するようにしていたが、Node v0.6.2 に上げたら
プロセス操作できなくなってしまったので、しかたなく init.d ス
クリプト + monit へ移行した。
node は nvm でインストール。deploy は独自 (rsync)
- 8. Node 自体に慣れてきた
Node v0.6 => v0.8
!
東京 Node 学園祭で「binary install しろ」と言
われて驚きながらも環境を作り直す。
プロセス管理は init.d or supervisord with monit
- 10. インフラの構築&稼働方法の
転換期
Node v0.8 => v0.10
!
Chef + Capistrano によるインフラ構築へ移行
Node も nodejs recipe を使って binary install
プロセス管理は upstart + monit へ。
(試験的に forever, pm2、最終的にはこの時は採用せず)
- 14. 配布バイナリを使う
• Chef recipe もあります。
• binary / source どちらからでも構築可能
• Version manager プログラムで入れる手も。
色んなバージョンで試せる。
導入するユーザと Path に注意
- 20. pm2 (Node)
• forever + もっと便利な機能
• describe process
• monitoring (CPU, memory)
• Auto cluster (or fork)
- 22. 自動起動させたい?
• init.d + node
• upstart + node run
• upstart + forever
• upstart + pm2
もちろん
• nohup node
• forever start
• pm2 start
別に…
- 25. 余談:
root で動かせるならこんな手も
var user = “myapp”;
!
if (process.getuid() == 0) {
try {
process.setuid(user); // 以後 myapp プロセスに
} catch (e) {
// undefined user
}
}
- 27. 基本的には GC されてないだけ
• V8 が自動的にタイミングを見つけて GC する
• 一応手動で GC を起こすこともできる
• --expose-gc オプション付きで Node 起動
• GC すると “Stop the world”
- 34. create server
($ heroku create)
deploy application
($ git push heroku)
destroy server
($ heroku destroy)
Server lifecycle 3 (heroku)