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
130
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.4k
Tokyo Web Dev hiring discussion session
kyanny
0
13k
sbpayment.rbのご紹介
kyanny
0
2k
#AsiaDevNight
kyanny
0
130
Grape による API 実装 in action
kyanny
7
7k
<%= link_to "bundle", "update" %> - Make "bundle update" more fun to review
kyanny
2
5k
Web Developer Seminar
kyanny
0
1.8k
Heroku を利用した Quipper の開発事例紹介
kyanny
11
3.3k
Continuous gem dependency updating with Jenkins and Pull Request
kyanny
9
3.2k
Other Decks in Technology
See All in Technology
Scale Security Programs with Scorecarding
ramimac
0
430
オープンソースのハードウェアのコンテストに参加している話
iotengineer22
0
530
MCP で繋ぐ Figma とデザインシステム〜LLM を使った UI 実装のリアル〜
kimuson
2
1.3k
CSS polyfill とその未来
ken7253
0
140
S3 Tables を図解でやさしくおさらい~基本から QuickSight 連携まで/s3-tables-illustrated-basics-quicksight
emiki
1
330
継続戦闘能⼒
sansantech
PRO
0
220
DevOpsDays Taipei 2025 -- Creating Awesome Change in SmartNews!
martin_lover
0
160
令和最新版TypeScriptでのnpmパッケージ開発
lycorptech_jp
PRO
0
110
Slackひと声でブログ校正!Claudeレビュー自動化編
yusukeshimizu
3
180
GigaViewerにおけるMackerel APM導入の裏側
7474
0
460
Houtou.pm #1
papix
0
660
積み上げられた技術資産と向き合いながら、プロダクトの信頼性をどう守るか
plaidtech
PRO
0
890
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.1k
The Cult of Friendly URLs
andyhume
78
6.4k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Statistics for Hackers
jakevdp
799
220k
The Power of CSS Pseudo Elements
geoffreycrofte
76
5.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Optimizing for Happiness
mojombo
378
70k
For a Future-Friendly Web
brad_frost
178
9.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
The Pragmatic Product Professional
lauravandoore
35
6.7k
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 増えて欲しい・・・
ご静聴ありがとうございました