Upgrade to Pro — share decks privately, control downloads, hide ads and more …

30days Album の裏側 + 表側

30days Album の裏側 + 表側

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

Kensuke Nagae

May 23, 2012
Tweet

More Decks by Kensuke Nagae

Other Decks in Technology

Transcript

  1. $ whoami • 長永 健介 <Kensuke Nagae> • 刺身☆ブーメラン •

    @kyanny • ペパボでプログラマやってます
  2. Backend の話 • ストレージについて ◦ MogileFS ◦ Storage API •

    ジョブキューについて ◦ TheSchwartz ◦ Job API
  3. Backend (2) • Storage API ◦ アプリケーションとストレージを繋ぐ ◦ Perl 5.8

    + Catalyst 5.7 ◦ lighttpd + FastCGI ◦ ファイル操作(保存・削除) ◦ 基本的な HTTP メソッドをサポート ◦ なぜわざわざ API? ▪ 疎結合 ▪ ライブラリの実装言語の違い(Perl と Ruby)
  4. Backend (3) • TheSchwartz ◦ Job Queue ◦ delayed_job のようなもの

    ◦ 写真のリサイズ、動画の変換、ストレージへの保存 ◦ 処理ごとに別のワーカーを稼働 ◦ 各ワーカーは fork してマルチプロセスで処理
  5. Backend (4) • Job API ◦ アプリケーションと TheSchwartz を繋ぐ ◦

    パラメータを受け取ってジョブキューに追加 ◦ Storage API とほぼ同じ構成 ◦ わざわざ API な理由もほぼ同じ ◦ こちらは XMLRPC
  6. 詳しくは・・・ • 関西オープンソース 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
  7. Frontend (1) • Ruby 1.8.6 (MRI) • Ruby on Rails

    2.x.x (censored) • どちらもだいぶ古い • バージョンアップしたい!・・・しかしテストが(後述 • Rails の灯を絶やさないように頑張ってます
  8. Frontend (2) • Phusion Passenger • lighttpd + FastCGI から移行

    ◦ 理由 (1) 省メモリ化したかった ▪ メモリ消費量は変わらなかった・・・ ◦ 理由 (2) 安定化したかった ▪ だいぶ安定した • アプリケーションサーバは2台で運用 ◦ 若干の増減あり(なるべくスケールアップ)
  9. 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 も試してみたい
  10. Frontend (4) • Test ◦ shoulda ◦ factory_girl (@func09 さんのブログで勉強した)

    ▪ http://www.func09.com/wordpress/archives/532 ◦ mocha ◦ 書いてます、けど不十分・・・ ◦ RSpec にすべきか年数回くらい悩む
  11. 今後について • 正直このスライドにたどり着けると思ってなかった • 開発者目線で今後取り組みたいこと ◦ 継続的インテグレーション ◦ テストの充実 ◦

    Rails のバージョンアップ ◦ 「日本一の写真共有サービス」を目指したい ◦ 「日本の代表的な Rails 製サービス」に数えられたい