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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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.4k
Continuous gem dependency updating with Jenkins and Pull Request
kyanny
9
3.4k
Other Decks in Technology
See All in Technology
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
300
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
180
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
270
プロポーザルに込める段取り八分
shoheimitani
1
240
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
240
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
410
MCPでつなぐElasticsearchとLLM - 深夜の障害対応を楽にしたい / Bridging Elasticsearch and LLMs with MCP
sashimimochi
0
170
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Red Hat OpenStack Services on OpenShift
tamemiya
0
110
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.9k
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.3k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Six Lessons from altMBA
skipperchong
29
4.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
KATA
mclloyd
PRO
34
15k
Visualization
eitanlees
150
17k
Believing is Seeing
oripsolob
1
55
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
64
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
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 増えて欲しい・・・
ご静聴ありがとうございました