狠狠撸
Submit Search
Real world rails
?
Download as KEY, PDF
?
2 likes
?
2,776 views
Jun Yokoyama
Follow
1 of 172
Download now
Downloaded 12 times
More Related Content
Real world rails
1.
Real World Rails Without
tools he is nothing, with tools he is all. -Thomas Carlyle 2012/3/30 yoyogi.rb
2.
自己紹介 フリーエンジニア Rails歴4年くらい twitter:@nysalor blog: http://blog.larus.jp/
3.
Real World? 周辺ツールやノウハウなど 開発編 運用編
4.
開発編 Development
5.
Mac
6.
Mac
7.
Mac
8.
Mac Rubyが最初から入っている
9.
Mac Rubyが最初から入っている
10.
Mac Rubyが最初から入っている
11.
Mac Rubyが最初から入っている ような気がしていたが別にそんなことはなかったぜ!
12.
Mac
13.
Mac
14.
Mac
最初から入っているRubyは1.8.7(Lion) > /usr/bin/ruby -v ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0] 結局は入れ直し(homebrew,rvmなど) Railsも入ってるけど2.3.3とかそのへん
15.
Mac
16.
Mac
17.
Mac それでもなお便利 Xcodeで開発環境は一発 UNIXコマンドが大抵使える TimeMachine
18.
rvm/rbenv
19.
rvm/rbenv RVM http://beginrescueend.com/
20.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
21.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
複数バージョンのRubyを同居 「前のバージョン用のgemを使ってしまった」を防ぐ 開発?運用環境で同じRubyを使うメリット
22.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
23.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
24.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
RVMが主流→最近はrbenvが流行 RVMは多機能だけど何度かやらかした rbenvは実行ファイルにやや癖がある
25.
screen/tmux
26.
screen/tmux
27.
screen/tmux
28.
screen/tmux
29.
screen/tmux ターミナルマルチプレクサ irb,logなど複数のシェルを行き来するのに便利 落ちても再起動するまでセッションが消えない 設定がけっこう大変 Terminal/iTermのタブでいいんじゃない?
30.
git
31.
git 分散リポジトリ 学習コストが高い?
svnに慣れすぎていなければ平気 githubやherokuでどっちみち必要
32.
sourcetree
33.
sourcetree http://www.sourcetreeapp.com/
34.
sourcetree http://www.sourcetreeapp.com/
35.
sourcetree http://www.sourcetreeapp.com/
見やすい 多機能(っぽいけどあまり使ってない) 登録必要だけど無料
36.
gitx
37.
gitx
http://gitx.frim.nl/
38.
gitx
http://gitx.frim.nl/
39.
gitx
http://gitx.frim.nl/ 軽い 機能少ない diff見るだけなら十分
40.
github
41.
github
http://github.com/
42.
github
http://github.com/
43.
github
http://github.com/ githubでいいんじゃね? プライベートリポジトリは有料 ネットがないと使えない
44.
やっぱり颁鲍滨
45.
やっぱり颁鲍滨 GUIはdiff見たり検索するだけ どっちみちCUIの操作は必要 苦手な人は覚えましょう
46.
エディタ
47.
エディタ
48.
エディタ
49.
エディタ
50.
エディタ Emacs Vim TextMate
51.
Emacs
52.
Emacs Cocoa Emacs(自分でビルド) inline-patch full screen
53.
Emacs
54.
Emacs ruby-mode ruby-electric rinari etags auto-complete
55.
Emacs
56.
Emacs
57.
Emacs
58.
Emacs
59.
Emacs 設定をDropboxに置く 起動したらずっとそのまま export EDITOR=emacsclient
60.
Pow
61.
Pow
http://pow.cx/
62.
Pow
http://pow.cx/
63.
Pow
http://pow.cx/
64.
Pow
http://pow.cx/
65.
Pow
http://pow.cx/ いちいちrails serverしなくてもいい http://xxxx.devでアクセスできる 複数プロジェクトの同時開発に対応
66.
Pow
http://pow.cx/
67.
Pow
http://pow.cx/
68.
Pow
http://pow.cx/ gem install powder powder -rでサーバ再起動 powder applog,powder linkなど
69.
guard
70.
guard https://github.com/guard/guard
71.
guard https://github.com/guard/guard TDD ファイルが更新されると自動実行 いちいちrspecを実行するとサボりがち coffee scriptの開発などにも使える autospecというのもある
72.
spork
73.
spork https://github.com/sporkrb/spork
74.
spork https://github.com/sporkrb/spork 分散テスト 同時に複数のテストが実行される データベースを初期化する仕組みが不可欠
75.
capistrano
76.
capistrano https://github.com/capistrano/capistrano
77.
capistrano https://github.com/capistrano/capistrano デプロイツール サーバへのアップロードから再起動まで全て自動化 環境ごとにデプロイ先やタスクを切り替えられる
78.
capistrano https://github.com/capistrano/capistrano
79.
capistrano https://github.com/capistrano/capistrano
80.
capistrano https://github.com/capistrano/capistrano
リポジトリからコードをダウンロード
81.
capistrano https://github.com/capistrano/capistrano
リポジトリからコードをダウンロード リビジョンごとのディレクトリに展開
82.
capistrano https://github.com/capistrano/capistrano
リポジトリからコードをダウンロード リビジョンごとのディレクトリに展開 ログ?静的ファイル等をリンク
83.
capistrano https://github.com/capistrano/capistrano
リポジトリからコードをダウンロード リビジョンごとのディレクトリに展開 ログ?静的ファイル等をリンク 必要なgem、rails自体のインストール
84.
capistrano https://github.com/capistrano/capistrano
リポジトリからコードをダウンロード リビジョンごとのディレクトリに展開 ログ?静的ファイル等をリンク 必要なgem、rails自体のインストール サービスを再起動
85.
capistrano https://github.com/capistrano/capistrano
86.
capistrano https://github.com/capistrano/capistrano サーバ側にcapistranoは不要 rails含めgemは一切不要 ただしrubyとbundlerだけは必要
87.
運用編 Operation
88.
rvm/rbenv
89.
rvm/rbenv RVM http://beginrescueend.com/
90.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
91.
rvm/rbenv RVM http://beginrescueend.com/ rbenv https://github.com/sstephenson/rbenv
なるべくサーバ側にも入れておくべき gemの管理はbundlerがやってくれるので不要
92.
サーバ构成
93.
サーバ构成
奥奥奥サーバ(フロントエンド)
94.
サーバ构成
奥奥奥サーバ(フロントエンド) バックエンドサーバ
95.
サーバ构成
奥奥奥サーバ(フロントエンド) バックエンドサーバ DBサーバ
96.
サーバ构成
奥奥奥サーバ(フロントエンド) バックエンドサーバ Rails本体 DBサーバ
97.
サーバ构成 ロードバランサ
奥奥奥サーバ(フロントエンド) バックエンドサーバ Rails本体 DBサーバ
98.
サーバ构成 ロードバランサ
キャッシュサーバ 奥奥奥サーバ(フロントエンド) バックエンドサーバ Rails本体 DBサーバ
99.
バックエンド
100.
バックエンド Unicorn thin Rainbows! mongrel Webrick Passenger
101.
バックエンド
102.
バックエンド
103.
バックエンド 適当なポートで待ち受ける フロントエンドからリバースプロキシで接続
104.
バックエンド
105.
バックエンド
106.
バックエンド フロントエンドを挟む理由
107.
バックエンド フロントエンドを挟む理由 静的コンテンツ(画像など)をいちいちRailsで処理する のは馬鹿げている
108.
バックエンド
109.
バックエンド
110.
バックエンド 奥奥奥サーバ(フロントエンド)
111.
バックエンド 奥奥奥サーバ(フロントエンド)
112.
バックエンド 奥奥奥サーバ(フロントエンド) バックエンドサーバ
113.
バックエンド 奥奥奥サーバ(フロントエンド) バックエンドサーバ
114.
バックエンド 奥奥奥サーバ(フロントエンド) バックエンドサーバ
115.
バックエンド 奥奥奥サーバ(フロントエンド) バックエンドサーバ
116.
バックエンド
静的コンテンツは 奥奥奥サーバ(フロントエンド) フロントエンドが直接処理 バックエンドサーバ
117.
Unicorn
118.
Unicorn http://unicorn.bogomips.org/
119.
Unicorn http://unicorn.bogomips.org/
120.
Unicorn http://unicorn.bogomips.org/ 定番 高速 ダウンタイムなしで再起動可能 worker1つにつき1リクエスト
121.
その他
122.
その他 Thin
123.
その他 Thin
http://code.macournoyer.com/thin/
124.
その他
Thin http://code.macournoyer.com/thin/ Rainbows!
125.
その他
Thin http://code.macournoyer.com/thin/ Rainbows! http://rainbows.rubyforge.org/
126.
その他
Thin http://code.macournoyer.com/thin/ Rainbows! http://rainbows.rubyforge.org/ よく知りません
127.
あまり使わない
128.
あまり使わない mongrel Webrick
129.
あまり使わない mongrel Webrick
开発时のサーバとしては使う
130.
Passenger
131.
Passenger http://www.modrails.com/
132.
Passenger http://www.modrails.com/ “mod_rails” バックエンドプロセスが不要 基本的にApacheのみ 立ち上がりが遅い メモリひかえめ
133.
フロントエンド
134.
フロントエンド 基本的に何でもOK
135.
フロントエンド
基本的に何でもOK Apache nginx lighthttpd
136.
nginx
137.
nginx http://wiki.nginx.org/
138.
nginx http://wiki.nginx.org/
139.
nginx http://wiki.nginx.org/ 高速 設定が楽 Apacheのような細かいアクセス制御は不可能 バックエンドに投げるだけなら最適
140.
Apache
141.
Apache
142.
Apache Railsだけ動かすには大きすぎる 他のコンテンツと共存するなら必須の場合も Apacheを使うならPassengerを検討する
143.
データベース
144.
データベース MySQL PgSQL Sqlite3
145.
データベース ActiveRecordが差を吸収する MySQL PgSQL Sqlite3
146.
データベース ActiveRecordが差を吸収する MySQL PgSQL Sqlite3
NoSQL
147.
memcached
148.
memcached 参照系がほとんどであれば効果は出る 他の方法で解決できるならするべき ページキャッシュだけならVarnishの方が楽
149.
Varnish
150.
Varnish https://www.varnish-cache.org/
151.
Varnish https://www.varnish-cache.org/
152.
Varnish https://www.varnish-cache.org/ 透過型httpキャッシュサーバ zero con?gでも動く パラメータやcookieごとキャッシュする
153.
Varnish https://www.varnish-cache.org/
154.
Varnish https://www.varnish-cache.org/
155.
Varnish https://www.varnish-cache.org/ SSLを処理できない POSTをGETに書き換えてしまうことがある DSLがやや難解
156.
构成例
157.
构成例 nginx+unicorn+varnish
158.
构成例
nginx+unicorn+varnish SSLあり nginx varnish unicorn
159.
构成例
nginx+unicorn+varnish SSLあり nginx varnish unicorn SSLなし varnish nginx unicorn
160.
构成例
161.
构成例
apache+passenger
162.
构成例
apache+passenger apache passenger
163.
构成例
apache+passenger apache passenger apache+unicorn
164.
构成例
apache+passenger apache passenger apache+unicorn apache unicorn
165.
构成例
166.
构成例 apache+nginx+unicorn
167.
构成例
apache+nginx+unicorn apache nginx unicorn
168.
构成例
apache+nginx+unicorn apache nginx unicorn apache+varnish+unicorn
169.
构成例
apache+nginx+unicorn apache nginx unicorn apache+varnish+unicorn apache varnish unicorn
170.
质疑応答
171.
质疑応答 if available? ??Question.all.map(&:answer!) end
172.
ご清聴ありがとうございました
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Download