30days Album の裏側 + 表側

Kensuke Nagae
Kensuke NagaeDeveloper at Quipper
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 増えて欲しい・・・
ご静聴ありがとうございました
1 of 19

Recommended

mruby for embedded systems by
mruby for embedded systemsmruby for embedded systems
mruby for embedded systemsmasayoshi takahashi
4.1K views17 slides
78tch by
78tch78tch
78tch78tch
124 views12 slides
CSRを自動生成する! by
CSRを自動生成する!CSRを自動生成する!
CSRを自動生成する!Taichi Ishitani
3.1K views29 slides
RgGen ご紹介 by
RgGen ご紹介RgGen ご紹介
RgGen ご紹介Taichi Ishitani
102 views13 slides
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸 by
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸20160618 第23回シェル芸勉強会LT コマンドプロンプト芸
20160618 第23回シェル芸勉強会LT コマンドプロンプト芸kunst1080
1.6K views11 slides
「Vim初心者によるVim入門@haman29」 by
「Vim初心者によるVim入門@haman29」「Vim初心者によるVim入門@haman29」
「Vim初心者によるVim入門@haman29」Kyohei Hamada
1.5K views24 slides

More Related Content

What's hot

Yapcasia2012 ltthon by
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthonturugina
4.3K views13 slides
20220111 SoftwareDesign #32 kitazaki by
20220111 SoftwareDesign #32 kitazaki20220111 SoftwareDesign #32 kitazaki
20220111 SoftwareDesign #32 kitazakiAyachika Kitazaki
68 views11 slides
SECCON CTF 福岡大会の中性子問題の解説 by
SECCON CTF 福岡大会の中性子問題の解説SECCON CTF 福岡大会の中性子問題の解説
SECCON CTF 福岡大会の中性子問題の解説in0o0o0
521 views19 slides
ロボットシステム学2015年第11回 by
ロボットシステム学2015年第11回ロボットシステム学2015年第11回
ロボットシステム学2015年第11回Ryuichi Ueda
5K views11 slides
Mishimasyk 3 20140705 by
Mishimasyk 3 20140705Mishimasyk 3 20140705
Mishimasyk 3 20140705Takayuki Serizawa
920 views16 slides
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版) by
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Sho Hosoda
4.8K views19 slides

What's hot(20)

Yapcasia2012 ltthon by turugina
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthon
turugina4.3K views
SECCON CTF 福岡大会の中性子問題の解説 by in0o0o0
SECCON CTF 福岡大会の中性子問題の解説SECCON CTF 福岡大会の中性子問題の解説
SECCON CTF 福岡大会の中性子問題の解説
in0o0o0521 views
ロボットシステム学2015年第11回 by Ryuichi Ueda
ロボットシステム学2015年第11回ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda5K views
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版) by Sho Hosoda
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Sho Hosoda4.8K views
Rubyにメソッドを追加して遊ぶ話 by Masaya Konishi
Rubyにメソッドを追加して遊ぶ話Rubyにメソッドを追加して遊ぶ話
Rubyにメソッドを追加して遊ぶ話
Masaya Konishi484 views
2011 06 18_open_streetmap_neta_no1 by Tom Hayakawa
2011 06 18_open_streetmap_neta_no12011 06 18_open_streetmap_neta_no1
2011 06 18_open_streetmap_neta_no1
Tom Hayakawa641 views
pkgsrc とは何か? - よもやま話 by Akio OBATA
pkgsrc とは何か? - よもやま話pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話
Akio OBATA342 views
ロボットシステム学2015年第5回 by Ryuichi Ueda
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda7.6K views
Postgre sql9.3新機能 (OSC hiroshima 2013) by Soudai Sone
Postgre sql9.3新機能 (OSC hiroshima 2013)Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)
Soudai Sone3.2K views
サイボウズ・ラボユース成果報告会 by slankdev
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev6K views
Rubyで実はwritev(2) が使われているはなし by Masaki Matsushita
Rubyで実はwritev(2) が使われているはなしRubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita7.8K views
俺とDockerとtDiaryとkubernetes by Masayuki KaToH
俺とDockerとtDiaryとkubernetes俺とDockerとtDiaryとkubernetes
俺とDockerとtDiaryとkubernetes
Masayuki KaToH1.3K views
ロボットシステム学2015年第8回 by Ryuichi Ueda
ロボットシステム学2015年第8回ロボットシステム学2015年第8回
ロボットシステム学2015年第8回
Ryuichi Ueda5.5K views

Viewers also liked

関西オープンソース 2008 30days Albumの裏側 by
関西オープンソース 2008 30days Albumの裏側関西オープンソース 2008 30days Albumの裏側
関西オープンソース 2008 30days Albumの裏側Gosuke Miyashita
3.1K views58 slides
Serverspec at Testing Framework Meeting by
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingGosuke Miyashita
6.6K views34 slides
Serverspec at July Tech Festa 2013 by
Serverspec at July Tech Festa 2013Serverspec at July Tech Festa 2013
Serverspec at July Tech Festa 2013Gosuke Miyashita
5.7K views89 slides
Julia 100 exercises #JuliaTokyo by
Julia 100 exercises #JuliaTokyoJulia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoAki Ariga
10.7K views53 slides
Walter ファミリーの紹介 at Shibuya.go#1 by
Walter ファミリーの紹介 at Shibuya.go#1Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1Gosuke Miyashita
5.2K views28 slides
Serverspec at hbstudy #45 by
Serverspec at hbstudy #45Serverspec at hbstudy #45
Serverspec at hbstudy #45Gosuke Miyashita
13.1K views128 slides

Viewers also liked(6)

関西オープンソース 2008 30days Albumの裏側 by Gosuke Miyashita
関西オープンソース 2008 30days Albumの裏側関西オープンソース 2008 30days Albumの裏側
関西オープンソース 2008 30days Albumの裏側
Gosuke Miyashita3.1K views
Serverspec at Testing Framework Meeting by Gosuke Miyashita
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
Gosuke Miyashita6.6K views
Serverspec at July Tech Festa 2013 by Gosuke Miyashita
Serverspec at July Tech Festa 2013Serverspec at July Tech Festa 2013
Serverspec at July Tech Festa 2013
Gosuke Miyashita5.7K views
Julia 100 exercises #JuliaTokyo by Aki Ariga
Julia 100 exercises #JuliaTokyoJulia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyo
Aki Ariga10.7K views
Walter ファミリーの紹介 at Shibuya.go#1 by Gosuke Miyashita
Walter ファミリーの紹介 at Shibuya.go#1Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1
Gosuke Miyashita5.2K views

Similar to 30days Album の裏側 + 表側

JAMstackは眠らない by
JAMstackは眠らないJAMstackは眠らない
JAMstackは眠らないKuniyoshi Tone
4.7K views64 slides
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜 by
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
43.2K views89 slides
Nodeにしましょう by
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
294 views20 slides
Runtime c++editing by
Runtime c++editingRuntime c++editing
Runtime c++editingSeiya Ishibashi
2.4K views39 slides
Djangoとweb2pyをapacheに組込む by
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
2.2K views48 slides
2015 0228 OpenStack swift; GMO Internet Services by
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet ServicesNaoto Gohko
3.3K views45 slides

Similar to 30days Album の裏側 + 表側(20)

MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜 by Takahiro Inoue
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue43.2K views
Djangoとweb2pyをapacheに組込む by 2bo 2bo
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo2.2K views
2015 0228 OpenStack swift; GMO Internet Services by Naoto Gohko
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
Naoto Gohko3.3K views
ログ解析基盤におけるストリーム処理パイプラインについて by cyberagent
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
cyberagent3.4K views
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」 by Yasuyuki Sugai
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai31.4K views
OCaml でデータ分析 by Akinori Abe
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
Akinori Abe3.1K views
YAPC Asia 2010 30days Albumの裏側 後日談 by Kensuke Nagae
YAPC Asia 2010 30days Albumの裏側 後日談YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談
Kensuke Nagae2.1K views
Rubyによるお手軽分散処理 by maebashi
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
maebashi3.9K views
30days album / MySQL Casual Talk #3 by Ryo Kuroda
30days album / MySQL Casual Talk #330days album / MySQL Casual Talk #3
30days album / MySQL Casual Talk #3
Ryo Kuroda2.3K views
OpenStackでつくる開発環境と外道塾 by 外道 父
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
外道 父9.5K views
PostgreSQLによるデータ分析ことはじめ by Ohyama Masanori
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori17.4K views
Start-padrino by Uchio Kondo
Start-padrinoStart-padrino
Start-padrino
Uchio Kondo5.4K views
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか? by Takashi Sogabe
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Takashi Sogabe5K views
Osc2008 Opensuse Moonlinx by Kazuhisa Hara
Osc2008 Opensuse MoonlinxOsc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
Kazuhisa Hara711 views

Recently uploaded

「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化Knowledge & Experience
8 views34 slides
JJUG CCC.pptx by
JJUG CCC.pptxJJUG CCC.pptx
JJUG CCC.pptxKanta Sasaki
6 views14 slides
概念モデリングワークショップ 設計編 by
概念モデリングワークショップ 設計編概念モデリングワークショップ 設計編
概念モデリングワークショップ 設計編Knowledge & Experience
10 views37 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料ssusere7a2172
220 views19 slides
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
185 views63 slides
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料) by
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
217 views33 slides

Recently uploaded(8)

「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172220 views
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之83 views

30days Album の裏側 + 表側

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