30days Album の裏側 + 表側
-
Upload
kensuke-nagae -
Category
Technology
-
view
3.849 -
download
7
description
Transcript of 30days Album の裏側 + 表側
30days Album の裏側 + 表側
2011/06/21 Mitaka.rb#12@kyanny
$ whoami
● 長永 健介 <Kensuke Nagae>● 刺身☆ブーメラン● @kyanny● ペパボでプログラマやってます
30days Album
● http://30d.jp/● 写真共有・保存サービス● 2008年4月リリース
規模は?
● 95,000 人のユーザー● 57,000,000 枚の写真● 113,000,000,000,000 バイトのストレージ
アーキテクチャ
Backend の話
● ストレージについて○ MogileFS○ Storage API
● ジョブキューについて○ TheSchwartz○ Job API
Backend (1)
● MogileFS○ 分散ファイルストレージ○ 大手サイトで導入事例多数(らしい)○ 詳しくは google.com/?q=mogilefs
Backend (2)
● Storage API○ アプリケーションとストレージを繋ぐ○ Perl 5.8 + Catalyst 5.7○ lighttpd + FastCGI○ ファイル操作(保存・削除)○ 基本的な HTTP メソッドをサポート○ なぜわざわざ API?
■ 疎結合■ ライブラリの実装言語の違い(Perl と Ruby)
Backend (3)
● TheSchwartz○ Job Queue○ delayed_job のようなもの○ 写真のリサイズ、動画の変換、ストレージへの保存○ 処理ごとに別のワーカーを稼働○ 各ワーカーは fork してマルチプロセスで処理
Backend (4)
● Job API○ アプリケーションと TheSchwartz を繋ぐ○ パラメータを受け取ってジョブキューに追加○ Storage API とほぼ同じ構成○ わざわざ API な理由もほぼ同じ○ こちらは XMLRPC
詳しくは・・・
● 関西オープンソース 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
Frontend の話
● Ruby + Rails● Passenger● Plugins / Middlewares● Test
Frontend (1)
● Ruby 1.8.6 (MRI)● Ruby on Rails 2.x.x (censored)● どちらもだいぶ古い● バージョンアップしたい!・・・しかしテストが(後述● Rails の灯を絶やさないように頑張ってます
Frontend (2)
● Phusion Passenger● lighttpd + FastCGI から移行
○ 理由 (1) 省メモリ化したかった■ メモリ消費量は変わらなかった・・・
○ 理由 (2) 安定化したかった■ だいぶ安定した
● アプリケーションサーバは2台で運用○ 若干の増減あり(なるべくスケールアップ)
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 も試してみたい
Frontend (4)
● Test○ shoulda○ factory_girl (@func09 さんのブログで勉強した)
■ http://www.func09.com/wordpress/archives/532○ mocha○ 書いてます、けど不十分・・・○ RSpec にすべきか年数回くらい悩む
今後について
● 正直このスライドにたどり着けると思ってなかった● 開発者目線で今後取り組みたいこと
○ 継続的インテグレーション○ テストの充実○ Rails のバージョンアップ○ 「日本一の写真共有サービス」を目指したい○ 「日本の代表的な Rails 製サービス」に数えられたい
まさかまだ時間があるなんて
● 中途採用やってます!○ http://www.paperboy.co.jp/recruit/○ 開発言語は PHP です!(キリッ○ むしろ Rubyist 増えて欲しい・・・
ご静聴ありがとうございました