Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
30days Album の裏側 + 表側
Search
Kensuke Nagae
May 23, 2012
Technology
1
140
30days Album の裏側 + 表側
Mitaka.rb#12 の LT で発表したときの資料です
Kensuke Nagae
May 23, 2012
Tweet
Share
More Decks by Kensuke Nagae
See All by Kensuke Nagae
スタディサプリ開発チームのこれまでとこれから / StudySapuri Product Meetup #1
kyanny
0
2.5k
Tokyo Web Dev hiring discussion session
kyanny
0
13k
sbpayment.rbのご紹介
kyanny
0
2.1k
#AsiaDevNight
kyanny
0
160
Grape による API 実装 in action
kyanny
7
7.2k
<%= link_to "bundle", "update" %> - Make "bundle update" more fun to review
kyanny
2
5.2k
Web Developer Seminar
kyanny
0
1.9k
Heroku を利用した Quipper の開発事例紹介
kyanny
11
3.3k
Continuous gem dependency updating with Jenkins and Pull Request
kyanny
9
3.3k
Other Decks in Technology
See All in Technology
LayerX QA Night#1
koyaman2
0
300
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
250
M&Aで拡大し続けるGENDAのデータ活用を促すためのDatabricks権限管理 / AEON TECH HUB #22
genda
0
310
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Redshift認可、アップデートでどう変わった?
handy
1
120
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
810
ESXi のAIOps だ!2025冬
unnowataru
0
470
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
130
Oracle Cloud Infrastructure:2025年12月度サービス・アップデート
oracle4engineer
PRO
0
170
技術選定、下から見るか?横から見るか?
masakiokuda
0
170
Featured
See All Featured
Everyday Curiosity
cassininazir
0
120
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
39
Tell your own story through comics
letsgokoyo
0
770
Building an army of robots
kneath
306
46k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
How to Ace a Technical Interview
jacobian
281
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Transcript
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 増えて欲しい・・・
ご静聴ありがとうございました