狠狠撸
Submit Search
30days Album の裏側 + 表側
?
6 likes
?
1,905 views
Kensuke Nagae
Follow
Mitaka.rb#12 の LT で発表したときの資料です
Read less
Read more
1 of 19
Download now
Download to read offline
More Related Content
30days Album の裏側 + 表側
1.
30days Album の裏側
+ 表側 2011/06/21 Mitaka.rb#12 @kyanny
2.
$ whoami ● 長永
健介 <Kensuke Nagae> ● 刺身☆ブーメラン ● @kyanny ● ペパボでプログラマやってます
3.
30days Album ● http://30d.jp/ ●
写真共有?保存サービス ● 2008年4月リリース
4.
規模は? ● 95,000 人のユーザー ●
57,000,000 枚の写真 ● 113,000,000,000,000 バイトのストレージ
5.
アーキテクチャ
6.
Backend の話 ● ストレージについて
○ MogileFS ○ Storage API ● ジョブキューについて ○ TheSchwartz ○ Job API
7.
Backend (1) ● MogileFS
○ 分散ファイルストレージ ○ 大手サイトで導入事例多数(らしい) ○ 詳しくは google.com/?q=mogilefs
8.
Backend (2) ● Storage
API ○ アプリケーションとストレージを繋ぐ ○ Perl 5.8 + Catalyst 5.7 ○ lighttpd + FastCGI ○ ファイル操作(保存?削除) ○ 基本的な HTTP メソッドをサポート ○ なぜわざわざ API? ■ 疎結合 ■ ライブラリの実装言語の違い(Perl と Ruby)
9.
Backend (3) ● TheSchwartz
○ Job Queue ○ delayed_job のようなもの ○ 写真のリサイズ、動画の変換、ストレージへの保存 ○ 処理ごとに別のワーカーを稼働 ○ 各ワーカーは fork してマルチプロセスで処理
10.
Backend (4) ● Job
API ○ アプリケーションと TheSchwartz を繋ぐ ○ パラメータを受け取ってジョブキューに追加 ○ Storage API とほぼ同じ構成 ○ わざわざ API な理由もほぼ同じ ○ こちらは XMLRPC
11.
詳しくは??? ● 関西オープンソース 2008
30days Albumの裏側 ○ http://www.slideshare.net/mizzy/2008-30days-album- presentation ● Yapc Asia 2009 ペパボでのPerlの使い方 ○ http://www.slideshare.net/hiboma/yapc-asia-2009-perl ● YAPC Asia 2010 30days Albumの裏側 後日談 ○ http://www.slideshare.net/kyanny/inside-30days- albumlaterstory-5452817
12.
Frontend の話 ● Ruby
+ Rails ● Passenger ● Plugins / Middlewares ● Test
13.
Frontend (1) ● Ruby
1.8.6 (MRI) ● Ruby on Rails 2.x.x (censored) ● どちらもだいぶ古い ● バージョンアップしたい!???しかしテストが(後述 ● Rails の灯を絶やさないように頑張ってます
14.
Frontend (2) ● Phusion
Passenger ● lighttpd + FastCGI から移行 ○ 理由 (1) 省メモリ化したかった ■ メモリ消費量は変わらなかった??? ○ 理由 (2) 安定化したかった ■ だいぶ安定した ● アプリケーションサーバは2台で運用 ○ 若干の増減あり(なるべくスケールアップ)
15.
Frontend (3) ● Plugins
/ Middlewares ○ BackgrounDRb (!) ■ データベース使わないやつ (!!) ■ ソースも情報もないオーパーツ状態 ■ Friends don’t let friends use backgrounDRb. ■ http://www.engineyard.com/blog/2009/5-tips-for- deploying-background-jobs/ ■ とはいえたくさん使ってる(非同期処理) ○ delayed_job ■ 移行を見据えて一部で導入(メール投稿) ■ 意外に使いづらい(priority) ■ resque も試してみたい
16.
Frontend (4) ● Test
○ shoulda ○ factory_girl (@func09 さんのブログで勉強した) ■ http://www.func09.com/wordpress/archives/532 ○ mocha ○ 書いてます、けど不十分??? ○ RSpec にすべきか年数回くらい悩む
17.
今後について ● 正直このスライドにたどり着けると思ってなかった ● 開発者目線で今後取り組みたいこと
○ 継続的インテグレーション ○ テストの充実 ○ Rails のバージョンアップ ○ 「日本一の写真共有サービス」を目指したい ○ 「日本の代表的な Rails 製サービス」に数えられたい
18.
まさかまだ時間があるなんて ● 中途採用やってます!
○ http://www.paperboy.co.jp/recruit/ ○ 開発言語は PHP です!(??? ○ むしろ Rubyist 増えて欲しい???
19.
ご静聴ありがとうございました
Download now