railsの運用について

7
http://www.sonicgarden.jp/ TIS株式会社 社内カ SonicGarden並河 祐貴 Railsの運用について

Upload: yuuki-namikawa

Post on 24-May-2015

2.167 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Railsの運用について

http://www.sonicgarden.jp/

TIS株式会社

社内ベンチャーカンパニー

「SonicGarden」

並河 祐貴

Railsの運用について

Page 2: Railsの運用について

1 http://www.sonicgarden.jp/

Railsアプリのシステム構成

� よくあるWeb3階層

�リバースプロキシ/ロードバランサ

�HTTPリクエストの受付、バックエンドの適切なWeb/APサーバへHTTPリクエストを委譲、静的コンテンツはリバースプロキシ自身が

レスポンスを返すこともある

�Web/APサーバ

�フロントから渡されたHTTPリクエストを処理

�動的コンテンツの部分(リクエスト)は、CGIなど何かしらのアダプタ

を介して、アプリケーション処理を実行

�DBサーバ

Page 3: Railsの運用について

2 http://www.sonicgarden.jp/

Web/APサーバでの振舞い

� 1. HTTPリクエストを受付

� 2. アダプタを介して、Rubyプログラムがアプリケーション処理を実行(1プロセス)

� 3. HTTPレスポンスを返す

HTTPアダプタ(CGI等)

Ruby

� 1リクエストが1Rubyプロセスに割り当てられる

� 規模が大きくなったら、複数のRubyプロセスで待ち受ける運用

Page 4: Railsの運用について

3 http://www.sonicgarden.jp/

スタンダードなWeb/APサーバ

� (Apache or lighttpd or nginx) + FastCGI

�CGIプロセスを常駐させることができる、FastCGI

�導入がそれほど容易ではなく、エラー出力が弱い

� mongrel, Apache + mongrel_cluster

�Ruby + C(拡張ライブラリ)で実装されたサーバで、導入が容易

� 2007~2008年頃のデファクトスタンダード

� メモリリーク、メモリの効率利用に課題

� Apache + Passenger

� PassengerはApacheモジュールとして振舞うため、導入が容易

�最近のデファクトスタンダード

Page 5: Railsの運用について

4 http://www.sonicgarden.jp/

Passenger(APサーバ)のアーキテクチャ

� Spawn ServerはRails F/W

とアプリのコードをキャッシュ

� 初回のプロセス起動は遅いが、2

回目以降はメモリキャッシュを利用し、高速に起動できる

� メモリの効率利用

Page 6: Railsの運用について

5 http://www.sonicgarden.jp/

よくある負荷分散構成(スケールアウト)

Web/AP

サーバ

Web/AP

サーバ

Storage

ロードバランサ

Web/AP

サーバ

DBサーバDBサーバ Replication

Backup

User

・・・

・・・

� Web/APサーバは並列に

� セッション情報は、Railsのcookie store

� DB(MySQL)は、Master-Slave構成に

� Read、Writeで接続先を

切り替え

Page 7: Railsの運用について

6 http://www.sonicgarden.jp/

その他

� デプロイ

�ツールを利用した効率的なソースコードの配置

�プロセスの再起動が必要

�監視

�HTTPレスポンス監視

�プロセス監視