Upload
Download free for 30 days
Login
Submit Search
Nodeを稼働させる
4 likes
6,881 views
kumatch kumatch
Node.js 大阪勉強会 2014-06-14
Software
Related topics:
Node.js Development
Read more
1 of 35
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
More Related Content
PDF
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
zgock
PDF
Lxc で始めるケチケチ仮想化生活?!
Etsuji Nakai
PDF
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Masataka Tsukamoto
PDF
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
Yoshinari Kadokawa
PDF
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
ODP
自宅サーバ仮想化
anubis_369
PPTX
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
Wataru NOGUCHI
PPTX
軽量Kubernetes環境 K3Sのご紹介
Tetsurou Yano
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
zgock
Lxc で始めるケチケチ仮想化生活?!
Etsuji Nakai
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Masataka Tsukamoto
多段LXC構成でOpenStackを構築 - LT@コンテナ型仮想化情報交換会LT
Yoshinari Kadokawa
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
自宅サーバ仮想化
anubis_369
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
Wataru NOGUCHI
軽量Kubernetes環境 K3Sのご紹介
Tetsurou Yano
What's hot
(20)
PDF
RancherでMesosクラスタをデプロイしてみる的ななにか
Masataka Tsukamoto
PDF
boot2docker の format-me の話
Kazuhiro Nishiyama
PDF
SocketStream入門
Kohei Kadowaki
PDF
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
PDF
初心者がOpenIndianaで自宅サーバを作ったよって話
Masataka Tsukamoto
PPTX
これから始める人のための自動化入門~Ubuntu Jujuを使って〜– OpenStack最新情報セミナー 2015年7月
VirtualTech Japan Inc.
PDF
RancherがみつめるAWX 〜お前のコンテナ、息してるの?〜
Masataka Tsukamoto
PPTX
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
VirtualTech Japan Inc.
PPTX
今時のDev opsの取り組み事例集
Wataru NOGUCHI
PDF
サーバ構築自動化 On aws sqaleの場合
Ryo Kuroda
PPTX
Ubuntu Jujuを使ったOpenStack環境構築 – OpenStack最新情報セミナー 2015年7月
VirtualTech Japan Inc.
PDF
Eucalyptus on OpenStack
irix_jp
PPTX
Dockerstart
chanwoopark29
PDF
20120731 c4 saリリースパーティlt
Kaz Watanabe
PDF
Eucalyptus 2.0 始めました!
Osamu Habuka
PPTX
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
PDF
openSUSEの紹介とサーバ構築
Kento Kawakami
PPTX
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
Tetsurou Yano
PDF
20131019 Eucalyptus in OSC 2013 Tokyo/Fall
Osamu Habuka
PDF
最近のJuju/MAASについて 〜 15分版 - OpenStack最新情報セミナー 2017年11月
VirtualTech Japan Inc.
RancherでMesosクラスタをデプロイしてみる的ななにか
Masataka Tsukamoto
boot2docker の format-me の話
Kazuhiro Nishiyama
SocketStream入門
Kohei Kadowaki
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
初心者がOpenIndianaで自宅サーバを作ったよって話
Masataka Tsukamoto
これから始める人のための自動化入門~Ubuntu Jujuを使って〜– OpenStack最新情報セミナー 2015年7月
VirtualTech Japan Inc.
RancherがみつめるAWX 〜お前のコンテナ、息してるの?〜
Masataka Tsukamoto
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
VirtualTech Japan Inc.
今時のDev opsの取り組み事例集
Wataru NOGUCHI
サーバ構築自動化 On aws sqaleの場合
Ryo Kuroda
Ubuntu Jujuを使ったOpenStack環境構築 – OpenStack最新情報セミナー 2015年7月
VirtualTech Japan Inc.
Eucalyptus on OpenStack
irix_jp
Dockerstart
chanwoopark29
20120731 c4 saリリースパーティlt
Kaz Watanabe
Eucalyptus 2.0 始めました!
Osamu Habuka
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
openSUSEの紹介とサーバ構築
Kento Kawakami
SIerにおけるKubernetes活用(OSSユーザーによる勉強会-公開版)
Tetsurou Yano
20131019 Eucalyptus in OSC 2013 Tokyo/Fall
Osamu Habuka
最近のJuju/MAASについて 〜 15分版 - OpenStack最新情報セミナー 2017年11月
VirtualTech Japan Inc.
Ad
Viewers also liked
(17)
PDF
Scalable Node.js with Redis Store
kamiyam .
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
PDF
Iketeru Gopher 5 points
Takuya Ueda
PPTX
TitaniumとNode.jsは兄弟
Toshiro Yagi
PDF
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
PDF
Node.js patterns of module export / require
kumatch kumatch
PDF
Node.js勉強会 Framework Koa
kamiyam .
PDF
Extensible web
Jxck Jxck
PDF
9 anti-patterns for node.js teams
Jeff Harrell
PDF
webエンジニアのためのはじめてのredis
nasa9084
PDF
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
Mitsuru Ogawa
PDF
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
Amazon Web Services Japan
PDF
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
PPTX
Socket.ioを使ってライフゲームで遊ぶ
孝平 高田
PDF
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
Yosaku Toyama
PDF
これからの Microservices
Toru Yamaguchi
PDF
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
Scalable Node.js with Redis Store
kamiyam .
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
Iketeru Gopher 5 points
Takuya Ueda
TitaniumとNode.jsは兄弟
Toshiro Yagi
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
Node.js patterns of module export / require
kumatch kumatch
Node.js勉強会 Framework Koa
kamiyam .
Extensible web
Jxck Jxck
9 anti-patterns for node.js teams
Jeff Harrell
webエンジニアのためのはじめてのredis
nasa9084
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
Mitsuru Ogawa
[AWSマイスターシリーズ]Amazon CloudWatch & Auto Scaling
Amazon Web Services Japan
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
Socket.ioを使ってライフゲームで遊ぶ
孝平 高田
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
Yosaku Toyama
これからの Microservices
Toru Yamaguchi
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
Ad
More from kumatch kumatch
(6)
PDF
AngularJSからReactに移ったケースの話
kumatch kumatch
PDF
Node platforms
kumatch kumatch
PDF
Node.js Error & Debug Leveling
kumatch kumatch
PDF
Learning a node stream
kumatch kumatch
PDF
[Node] Multiprocessing and runs continuously
kumatch kumatch
PDF
PHPカンファレンス関西2011/スマートフォン時代のWebシステム
kumatch kumatch
AngularJSからReactに移ったケースの話
kumatch kumatch
Node platforms
kumatch kumatch
Node.js Error & Debug Leveling
kumatch kumatch
Learning a node stream
kumatch kumatch
[Node] Multiprocessing and runs continuously
kumatch kumatch
PHPカンファレンス関西2011/スマートフォン時代のWebシステム
kumatch kumatch
Nodeを稼働させる
1.
Node を稼働させる in production 2014-06-14
2.
Yosuke Kumakura (kumatch) @kumatch Feedtailor
inc. Current game: Diablo3 reaper of souls
3.
「みんなどうやって Node を (production
で) 動かしているの?」 というお話があったので
4.
Agenda • これまでやった Node
production を振り返り ます。 • これから動かそうとしている人に参考になり そうな問題点をあげていきます。
5.
2011
6.
はじめての Node Node v0.4,
その後 v0.6 ! forever で起動するようにしていたが、Node v0.6.2 に上げたら プロセス操作できなくなってしまったので、しかたなく init.d ス クリプト + monit へ移行した。 node は nvm でインストール。deploy は独自 (rsync)
7.
2012
8.
Node 自体に慣れてきた Node v0.6
=> v0.8 ! 東京 Node 学園祭で「binary install しろ」と言 われて驚きながらも環境を作り直す。 プロセス管理は init.d or supervisord with monit
9.
2013
10.
インフラの構築&稼働方法の 転換期 Node v0.8 =>
v0.10 ! Chef + Capistrano によるインフラ構築へ移行 Node も nodejs recipe を使って binary install プロセス管理は upstart + monit へ。 (試験的に forever, pm2、最終的にはこの時は採用せず)
11.
Production Node サーバを 作るのに出くわす問題
12.
Node 実行環境 どうやって作るの?問題
13.
配布バイナリを使う • 公式配布バイナリに Windows,
OSX, Linux, Solaris 版あり • 各種 OS パッケージマネージャでも配布 • 少し古い場合あり
14.
配布バイナリを使う • Chef recipe
もあります。 • binary / source どちらからでも構築可能 • Version manager プログラムで入れる手も。 色んなバージョンで試せる。 導入するユーザと Path に注意
15.
Node 起動プログラム どうするの?問題
16.
機能性 柔軟性 pm2 / forever upstart init
scripts 先ほど色々あげていましたが… 環境に適した/やりやすい方法を選ぶ
17.
init scripts • shell
で出来ることなら大抵いけるはず • 自分で頑張れば何でもできる • 自分で全部頑張る必要あり
18.
upstart • init script
をもう少し書きやすく • 自動起動/プロセスが落ちたら再開など最低 限のプロセス管理機能が簡単に使える • その上で案外と色々できる
19.
forever (Node) • node
プロセスを常駐させるための module • プロセスが落ちても即時復帰 • 標準/エラー出力先, PID 管理なども自動で用意 される or 指定可能
20.
pm2 (Node) • forever
+ もっと便利な機能 • describe process • monitoring (CPU, memory) • Auto cluster (or fork)
21.
etc. • foreman • supervisor •
….
22.
自動起動させたい? • init.d +
node • upstart + node run • upstart + forever • upstart + pm2 もちろん • nohup node • forever start • pm2 start 別に…
23.
Node プロセス 誰で動かすの?問題
24.
意外と悩むプロセス所有権 • root or
専用ユーザ • 利用手段次第では、目的のユーザでプロセス を動かすのにちょっとだけ苦労する
25.
余談: root で動かせるならこんな手も var user
= “myapp”; ! if (process.getuid() == 0) { try { process.setuid(user); // 以後 myapp プロセスに } catch (e) { // undefined user } }
26.
Node プロセス メモリ い過ぎてない?問題
27.
基本的には GC されてないだけ •
V8 が自動的にタイミングを見つけて GC する • 一応手動で GC を起こすこともできる • --expose-gc オプション付きで Node 起動 • GC すると “Stop the world”
28.
(現実的な量で) メモリ利用量が多い傾向の内容 • (HTTP などの)
クライアント数が本当に多い • コード内で読み込む (require) ファイルが多い • (DB などの) コネクションインスタンスを扱っ ている
29.
Node プロセス CPU い過ぎてない?問題
30.
他に影響を与えない程度に CPU をがっつり使う傾向にある • 見てるタイミング次第で色々ある •
コード(処理のフロー)を見直す • (稀に) 本当に張り付いてしまっていることが ある • monit 等で CPU 張り付きプロセスを落とす
31.
Node Production サーバの ライフサイクル
32.
create server deploy application start /
run application Server lifecycle 1 initial setup stop application update / restart server
33.
create server (from template) deploy application start
application ($ pm2 start) destroy server Server lifecycle 2
34.
create server ($ heroku
create) deploy application ($ git push heroku) destroy server ($ heroku destroy) Server lifecycle 3 (heroku)
35.
まとめ • 「Node プロセスを動かす」部分のみに フォーカスして、考えるポイントとなる問題 を紹介 •
問題に対しての解法はいくつもある • サーバ/サービスをどう運用させたいかで 問題に対する解法を選ぶ
Download