Your SlideShare is downloading. ×
RailsとCで広告システムを作って起業した話
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

RailsとCで広告システムを作って起業した話

14,231
views

Published on

Published in: Technology

1 Comment
19 Likes
Statistics
Notes
  • high quality☆ reasonable price☆
    free shi pping accept pay pal,
    you can order all kind of things you want,
    believe me , trust me .
    ☆☆☆ www.happyshopping100.com -=★
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
14,231
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
54
Comments
1
Likes
19
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Rails と C で広告システムを作って起業した話  ~大江戸 Ruby 会議 01 ~
  • 2. 今日話すること
    • Rails と C で大量配信システムをつくりました。
    • アーキテクチャさえしっかりしてればほとんどの部分は ruby でいけるよ
    • 秘密はあんまりなくやってることは割と普通です
    • メンバー募集中です ( [email_address] まで! )
  • 3. その前に
    • Asakusa.rb
    • だいたい第 100 回目
    • 誠におめでとうございます。
  • 4. 弊社について
    • 株式会社スケールアウト
    • 代表取締役 山崎大輔 (@yamaz)
    • Blog: 最速配信研究会
    • http://d.hatena.ne.jp/yamaz/
    • 2006 年に門前仲町で起業
    • 広告配信システム「 ScaleAds 」の提供及び Web 大量配信に関するコンサルティング
    • 主に億を超えるようなアクセスに対するシステム開発を得意としてます
  • 5. ScaleAds とは
    • カジュアル ( =安価 ) に数十億アクセス /day を捌くことを目指して開発された純国産広告配信管理システム
    • PC サーバ 1 台あたり 5000 万アクセス /day 以上な性能
    • 月間数千億アクセスも可
  • 6. アーキテクチャ概要 配信サーバ Delivery Engine Logs 広告案件データ (PostgreSQL) 配信管理 システム 集計管理 システム C+ruby+swig Rails
  • 7. 配信部分
    • Apache+ 独自 DB+C モジュール
    • 複数プロセスが SharedMemory を介してデータをやりとり
    • Share d Memory の管理はruby +swig で
  • 8. 配信システム概要図 配信サーバ Delivery Engine Logs 広告案件データ (PostgreSQL) 配信管理 システム Rails Apache モジュール
  • 9. Apache+ 独自 DB+C モジュール RDB+LL な構成だと 1 桁以上速度が落ちるので、ここだけは C で書かれています。 配信サーバ Delivery Engine Logs 広告案件データ (PostgreSQL) 配信管理 システム Rails Apache モジュール
  • 10. 配信部分
    • 複数プロセスが SharedMemory を介してデータをやりとり
         広告案件データ (SharedMemory) ユーザからのアクセス 管理 DB
  • 11. Share d Memory の管理はruby +swig で
    • 管理 DB からDBアップデート用 DSL で記述
    • された r ubyスクリプトを作成し、各 ADSVR で
    • 実行することにより、Sharedメモリを書き換える
     広告データ (SharedMemory) 管理 DB Ruby スクリプトを生成+実行 C-API+Swig
  • 12. 集計部分
    • 配信サーバ側で一次処理、集計サーバでマージ集計 ( プチ map/reduce)
    • 一次集計は apache のログ形式を工夫することで速度を稼ぐ
    • 分散処理な為、基本集計に関しては全部 ruby でも間に合ってる
  • 13. 集計システム概要 配信サーバ Delivery Engine Logs 広告案件データ (PostgreSQL) 集計管理 システム Rails 各サーバで 一次集計 (Ruby)
  • 14. 一次集計 配信サーバ側で一次処理を行い、データを圧縮 ( 数100 MB-> 数 KB に ) また apache の combine ログはパースが遅いので、ログ形式を工夫することで速度を稼ぐ 配信サーバ Delivery Engine Logs 各サーバで 一次集計 (Ruby)
  • 15. マージ集計 各 ADSVR で一次集計されたデータを ruby でマージ集計し、 DB に流し込み。 各 ADSVR の一次集計後のデータは数 10K なため、 Ruby でも余裕。 Logs Logs Logs Logs Logs 広告案件データ    (PostgreSQL) 集計管理 システム
  • 16. 管理 DB 、 UI 部分
    • DB スキーマは数個のトランザクションテーブルと大量のマスタデータの構成
    • 大量のマスタ管理画面はほぼ全部 ActiveScaffold で構築
  • 17. ActiveScaffold++ http://activescaffold.com/ マスタ管理部はほぼ全部これ。 関連テーブルの UI もコントローラ部を足すことで勝手に UI を作ってくれる優れもの ( ただし Rails3 には非対応 )
  • 18. ActiveScaffold++ class UserController < ApplicationController active_scaffold :user do |config|   end end これだけの記述で↓こんなのを作ってくれる
  • 19. なぜ ruby 及び Rails を選んだか?
    • 会社立ち上げ当時、開発機の OS は FreeBSD で、
    • 言語はさておき、よい ORM を探していた。
    • Catalyst だ!-> CPAN 地獄にはまり挫折
    • PHP だ! -> ORM がほぼなかった ( 当時 )
    • Java だ! -> PHP と同様
    • Rails? -> インストール一発! AR 最高!
    • ということで Rails になりました
    • ぶっちゃけたまたまですが、人にも異様に恵まれて
    • とてもよい選択だったと思います。
  • 20. ご参考: 弊社と rubyist の関係
    • 弊社がスタートアップにもかかわらず、
    • いかに人に恵まれているかをご紹介します
    • 今まで手伝ってくれた Rubyist の方々
    • @shachi
    • @maiha
    • @genki
    • @yugui
    • 今手伝ってくれてる&今後手伝ってくれる Rubyist の方々
    • @yuumi3
    • @a_matsuda
    • @ukstudio
  • 21. とある人曰く
    • 「なにそのメンバー?
    • 国家転覆でも狙ってるの?」
  • 22. まとめ
    • Rails と C で大量配信システムを作りました
    • アーキテクチャさえしっかりしてればほとんどの部分は ruby でいけるよ
    • 秘密はあんまりなくやってることは割と普通です
  • 23. メンバー募集中!
    • 大規模配信、大規模解析に興味ある方
    • Ruby 、デザパタが大好きな方
    • 東京の西側よりも東側の下町文化が好きな方
    • 興味ある方は [email_address] まで!
    下町で働くのも悪くないですよ
  • 24. ご静聴有り難うございました Rails と C で広告システムを作って起業した話  ~大江戸 Ruby 会議 01 ~