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   ○ ファイル操作(保存・削除)   ○ 基本...
Backend (3)● TheSchwartz   ○ Job Queue   ○ delayed_job のようなもの   ○ 写真のリサイズ、動画の変換、ストレージへの保存   ○ 処理ごとに別のワーカーを稼働   ○ 各ワーカーは fo...
Backend (4)● Job API   ○ アプリケーションと TheSchwartz を繋ぐ   ○ パラメータを受け取ってジョブキューに追加   ○ Storage API とほぼ同じ構成   ○ わざわざ API な理由もほぼ同じ ...
詳しくは・・・● 関西オープンソース 2008 30days Albumの裏側   ○ http://www.slideshare.net/mizzy/2008-30days-album-     presentation● Yapc Asia...
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) 安定化...
Frontend (3)● Plugins / Middlewares   ○ BackgrounDRb (!)       ■ データベース使わないやつ (!!)       ■ ソースも情報もないオーパーツ状態       ■ Friend...
Frontend (4)● Test   ○ shoulda   ○ factory_girl (@func09 さんのブログで勉強した)       ■ http://www.func09.com/wordpress/archives/532...
今後について● 正直このスライドにたどり着けると思ってなかった● 開発者目線で今後取り組みたいこと   ○ 継続的インテグレーション   ○ テストの充実   ○ Rails のバージョンアップ   ○ 「日本一の写真共有サービス」を目指したい...
まさかまだ時間があるなんて● 中途採用やってます!   ○ http://www.paperboy.co.jp/recruit/   ○ 開発言語は PHP です!(キリッ   ○ むしろ Rubyist 増えて欲しい・・・
ご静聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

30days Album の裏側 + 表側

4,283 views

Published on

Mitaka.rb#12 の LT で発表したときの資料です

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,283
On SlideShare
0
From Embeds
0
Number of Embeds
156
Actions
Shares
0
Downloads
10
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

30days Album の裏側 + 表側

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

×