インターネット広告と            Perl、ここ数年の歩み                 2012.10.19 Yokohama.pm #9                           nekoya2012年10月19日金曜日
今時のネット広告に                   よくある図2012年10月19日金曜日
純広告                 広告枠      SSP, ad server   adnetwork                                             DSP                   ...
複数の広告システム連携          • こうした事情は多分あまり知られていない          • この中でPerlが使われてきたことは、さらに知             られていない(はず)2012年10月19日金曜日
Perlによる広告配信          • Perlで書かれた広告配信システムについて、             自分が見てきたものの話をします          • あくまで自分が見てきた範囲のお話です2012年10月19日金曜日
で、お前何なの?2012年10月19日金曜日
純広告                 広告枠   SSP, ad server   adnetwork                                          DSP2012年10月19日金曜日
純広告                 広告枠   SSP, ad server   adnetwork                                          DSP                 SSP + AD...
http://kau.li/         • 2009年 設立、adnetworkリリース         • 2010年 SSPリリース         • 2011年 RTB対応(Kauli - FreakOutが日本初)       ...
SSP      Supply Side Platform          • 媒体向けプラットフォーム          • サイト、広告枠の収益を最適化するツール          • RTB(RealTime Bidding)対応が普通...
50ms or die?2012年10月19日金曜日
100ms or kill                 遅いのを切り捨てる側のお仕事です2012年10月19日金曜日
SSPとかDSPとかアドネットワー             クとかアドサーバとかいろいろ                 あって分かりにくい?2012年10月19日金曜日
2012年10月19日金曜日
Display Advertising Technology Landscape [JP/2012]                                Media Buying                            ...
Display Advertising Technology Landscape [JP/2012]                                Media Buying                            ...
カオスマップ                 マジカオス2012年10月19日金曜日
裏を返せばやれることは                 いくらでもある2012年10月19日金曜日
エンジニアにとって                  面白い業界2012年10月19日金曜日
広告配信の特徴          • 大量のリクエストを受ける          • 高速なレスポンスが求められる          • サーバの気持ちになってコードを書く          • 自社サイトでないので落とすと大変        ...
ふつうのことを                 ふつうにやる2012年10月19日金曜日
広告配信システムの基本                 request   application   response                             INDEX          DB2012年10月19日金曜日
何かに似ている2012年10月19日金曜日
検索エンジンの基本                 検索クエリ   検索エンジン    検索結果                         転置INDEX   ドキュメント2012年10月19日金曜日
• 広告配信の教科書にもなる                 • 「○○を支える技術」は鉄板2012年10月19日金曜日
俺とネット広告          • 2007年から関わり始めた          • 大きく分けて、5世代のシステムに携わった2012年10月19日金曜日
広告配信システムの特徴          • 小さなリクエストを高速かつ大量に捌く                        ・・・          • JavaやCに向いた分野だった          • 配信ロジックは年々複雑化する一...
Perlによる広告配信システム          • ここ数年のPerlの進化は非常に大きい          • 広告配信にとってリターンが大きかった          • 今こそ「Perlで広告配信」は有効な選択2012年10月19日金曜日
第一期                 2007年2012年10月19日金曜日
背景          • Perl関連の情報が得にくかった時期          • 検索してもKENT CGI的な情報が多かった          • 当時はPHPをメインで使用していた          • Perlは書かずにインフラとP...
OS∼ミドルウェア層          • RAID1のミラーを使ってOSコピー          • sudo cpanしまくるシェルスクリプト          • mod_proxy_balancer          • SpeedyC...
Perl関連          • Perl部分は書いてないのであまり憶えていない          • DBI + DBD::mysql          • Cache::Memcached::Fast          • Storabl...
第二期                 2007 ∼ 2008年2012年10月19日金曜日
背景          • はてなが京都に戻った頃          • 第一期的な配信をスケールさせるお仕事          • 開発と関係ないところでいろいろ面倒だった2012年10月19日金曜日
OS∼ミドルウェア層          • PXE boot + kickstart + Puppet          • モジュールは/usr/local/CPAN/に入れてrsync          • LVS          • m...
Perl関連          • Perl書き始めた(Jcode.pm時代以来)          • use utf8するだけで色々と大変なことに          • DBIx::Class(要Perl本体のRPM rebuild)   ...
こぼれ話          • abのベンチマークで6000req/secが必達          • ディスクI/Oが完全にボトルネックに          • ext3→ext2に変更して解決          • この後フリーランスになっ...
第三期                 2009 ∼ 2010年2012年10月19日金曜日
背景          • モダンPerl時代の幕開け          • 空前のMooooooseブーム          • YAPCでPlackが発表された          • 広告配信に再び携わることに2012年10月19日金曜日
OS∼ミドルウェア層          • cobbler + Puppet + capistrano          • LVS + nginx + starman + cronolog          • daemontools    ...
Perl関連          • Plack          • Any::Moose          • TokyoCabinet + JSON::XS          • DBIx::Skinny          • URI::E...
Any::Moose          • 配信はMouse、バッチ等はMooseを使用          • Mouseが出始めで安定性に不安があった          • それでも使いたかったんや2012年10月19日金曜日
URI::Escape::XS          • query_stringのパースが地味に重かった          • 不振な挙動についてIRCで相談してみた          • kazuhoさんが即時特定してpatch作成      ...
第四期                 2010 ∼ 2011年2012年10月19日金曜日
背景          • 2012/01/12 Kauli - FreakOut間でRTB取引開始2012年10月19日金曜日
OS∼ミドルウェア層          • perlbrew + cpanm          • PERLBREW_ROOT=/kauli/perlbrew          • Perl 5.12.2          • TokyoTyr...
Perl関連          • Mouse          • Object::Container          • Text::Xslate2012年10月19日金曜日
Mouse          • MouseX::Foreignでno Any::Mooseに          • アクセサはClass::Accessor::Fastより速い          • lazy, defaultでテスタビリティ...
第五期                 2012年2012年10月19日金曜日
_人人人人人人_                 > 突然のPython <                  ̄Y^Y^Y^Y^Y^ ̄2012年10月19日金曜日
背景          • 会社の言語をPythonに切り替えました          • それまで各自が好きな言語を使っていた          • 社長がJava, Python使い          • 代表者が使える言語にするのがいいと...
OS∼ミドルウェア層          • LVS + nginx + uWSGI          • Redis          • werkzeug2012年10月19日金曜日
まとめ2012年10月19日金曜日
Perlによる広告配信          • 数年前に比べて段違いに作りやすくなった          • 特にPlack移行の躍進が劇的          • Perlコミュニティ++2012年10月19日金曜日
最後に2012年10月19日金曜日
Kauliではエンジニアを                 募集しています2012年10月19日金曜日
• 開発は全てgithub                 • 渋谷駅 徒歩7分                 • フリーアドレス                 • ディスプレイ完備                 • フリーおやつはありま...
Pythonにも興味のある方の           ご応募お待ちしております2012年10月19日金曜日
2012年10月19日金曜日
Upcoming SlideShare
Loading in...5
×

インターネット広告とPerl、ここ数年の歩み

8,872

Published on

Yokohama.pm #9

Published in: Technology
1 Comment
19 Likes
Statistics
Notes
No Downloads
Views
Total Views
8,872
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
28
Comments
1
Likes
19
Embeds 0
No embeds

No notes for slide

インターネット広告とPerl、ここ数年の歩み

  1. 1. インターネット広告と Perl、ここ数年の歩み 2012.10.19 Yokohama.pm #9 nekoya2012年10月19日金曜日
  2. 2. 今時のネット広告に よくある図2012年10月19日金曜日
  3. 3. 純広告 広告枠 SSP, ad server adnetwork DSP 1つの広告を表示するために 多数システムが連携している2012年10月19日金曜日
  4. 4. 複数の広告システム連携 • こうした事情は多分あまり知られていない • この中でPerlが使われてきたことは、さらに知 られていない(はず)2012年10月19日金曜日
  5. 5. Perlによる広告配信 • Perlで書かれた広告配信システムについて、 自分が見てきたものの話をします • あくまで自分が見てきた範囲のお話です2012年10月19日金曜日
  6. 6. で、お前何なの?2012年10月19日金曜日
  7. 7. 純広告 広告枠 SSP, ad server adnetwork DSP2012年10月19日金曜日
  8. 8. 純広告 広告枠 SSP, ad server adnetwork DSP SSP + AD Nerwork2012年10月19日金曜日
  9. 9. http://kau.li/ • 2009年 設立、adnetworkリリース • 2010年 SSPリリース • 2011年 RTB対応(Kauli - FreakOutが日本初) • 2012年 スマートフォン対応、Google AdSenseリセラー2012年10月19日金曜日
  10. 10. SSP Supply Side Platform • 媒体向けプラットフォーム • サイト、広告枠の収益を最適化するツール • RTB(RealTime Bidding)対応が普通2012年10月19日金曜日
  11. 11. 50ms or die?2012年10月19日金曜日
  12. 12. 100ms or kill 遅いのを切り捨てる側のお仕事です2012年10月19日金曜日
  13. 13. SSPとかDSPとかアドネットワー クとかアドサーバとかいろいろ あって分かりにくい?2012年10月19日金曜日
  14. 14. 2012年10月19日金曜日
  15. 15. Display Advertising Technology Landscape [JP/2012] Media Buying Ad Networks Sharing Data Agencies Platforms / DSPs Exchanges Horizontal / Social Tools Agency Desk SSPs Media Rep P M Video / Rich Media U C A B O R Vertical / Targeted L N K Creative Optimization Media Planning DMPs and Data Aggregators I S and Attribution E S U Performance Publisher T Tools H M E Tag Mgmt E E R Ad Servers R R Retargeting Data Feed Mobile S Ad Servers Verification / Measurement Data Suppliers Privacy and Analytics Media Mgmt Systems and Operations 本資料は作者がLUMApartners作成の「DISPLAY LUMAscape」を参考に個人的に作成したもので所属会社の利害関係や取引関係を現したり、特定の商品を販売・推奨するための資料ではありません。 ロゴ、サービス名の表記に関しても個別に許諾を得たものではありません。万が一、問題がある場合は直接ご連絡頂ければ使用を中止いたします。 Twitter: @hirohirokon (近藤洋司)2012年10月19日金曜日
  16. 16. Display Advertising Technology Landscape [JP/2012] Media Buying Ad Networks Sharing Data Agencies Platforms / DSPs Exchanges Horizontal / Social Tools Agency Desk SSPs Media Rep P M Video / Rich Media U C A B O R Vertical / Targeted L N K Creative Optimization Media Planning DMPs and Data Aggregators I S and Attribution E S U Performance Publisher T Tools H M E Tag Mgmt E E R Ad Servers R R Retargeting Data Feed Mobile S Ad Servers Verification / Measurement Data Suppliers Privacy and Analytics Media Mgmt Systems and Operations 本資料は作者がLUMApartners作成の「DISPLAY LUMAscape」を参考に個人的に作成したもので所属会社の利害関係や取引関係を現したり、特定の商品を販売・推奨するための資料ではありません。 ロゴ、サービス名の表記に関しても個別に許諾を得たものではありません。万が一、問題がある場合は直接ご連絡頂ければ使用を中止いたします。 Twitter: @hirohirokon (近藤洋司)2012年10月19日金曜日
  17. 17. カオスマップ マジカオス2012年10月19日金曜日
  18. 18. 裏を返せばやれることは いくらでもある2012年10月19日金曜日
  19. 19. エンジニアにとって 面白い業界2012年10月19日金曜日
  20. 20. 広告配信の特徴 • 大量のリクエストを受ける • 高速なレスポンスが求められる • サーバの気持ちになってコードを書く • 自社サイトでないので落とすと大変 • 「問題が起きても落ちない」体制作り2012年10月19日金曜日
  21. 21. ふつうのことを ふつうにやる2012年10月19日金曜日
  22. 22. 広告配信システムの基本 request application response INDEX DB2012年10月19日金曜日
  23. 23. 何かに似ている2012年10月19日金曜日
  24. 24. 検索エンジンの基本 検索クエリ 検索エンジン 検索結果 転置INDEX ドキュメント2012年10月19日金曜日
  25. 25. • 広告配信の教科書にもなる • 「○○を支える技術」は鉄板2012年10月19日金曜日
  26. 26. 俺とネット広告 • 2007年から関わり始めた • 大きく分けて、5世代のシステムに携わった2012年10月19日金曜日
  27. 27. 広告配信システムの特徴 • 小さなリクエストを高速かつ大量に捌く ・・・ • JavaやCに向いた分野だった • 配信ロジックは年々複雑化する一方 • Cで書くのはしんどいのでは • PHPでリクエスト毎にnewしまくるのも非効率 ※個人の感想です2012年10月19日金曜日
  28. 28. Perlによる広告配信システム • ここ数年のPerlの進化は非常に大きい • 広告配信にとってリターンが大きかった • 今こそ「Perlで広告配信」は有効な選択2012年10月19日金曜日
  29. 29. 第一期 2007年2012年10月19日金曜日
  30. 30. 背景 • Perl関連の情報が得にくかった時期 • 検索してもKENT CGI的な情報が多かった • 当時はPHPをメインで使用していた • Perlは書かずにインフラとPHPを担当2012年10月19日金曜日
  31. 31. OS∼ミドルウェア層 • RAID1のミラーを使ってOSコピー • sudo cpanしまくるシェルスクリプト • mod_proxy_balancer • SpeedyCGI(mod_perlだったかも)2012年10月19日金曜日
  32. 32. Perl関連 • Perl部分は書いてないのであまり憶えていない • DBI + DBD::mysql • Cache::Memcached::Fast • Storable2012年10月19日金曜日
  33. 33. 第二期 2007 ∼ 2008年2012年10月19日金曜日
  34. 34. 背景 • はてなが京都に戻った頃 • 第一期的な配信をスケールさせるお仕事 • 開発と関係ないところでいろいろ面倒だった2012年10月19日金曜日
  35. 35. OS∼ミドルウェア層 • PXE boot + kickstart + Puppet • モジュールは/usr/local/CPAN/に入れてrsync • LVS • mod_perl2, mod_log_rotate2012年10月19日金曜日
  36. 36. Perl関連 • Perl書き始めた(Jcode.pm時代以来) • use utf8するだけで色々と大変なことに • DBIx::Class(要Perl本体のRPM rebuild) • Template Toolkit • BerkleyDB2012年10月19日金曜日
  37. 37. こぼれ話 • abのベンチマークで6000req/secが必達 • ディスクI/Oが完全にボトルネックに • ext3→ext2に変更して解決 • この後フリーランスになって広告を離れた • perl-users.jp設立、Lighty+Catalyst期へ2012年10月19日金曜日
  38. 38. 第三期 2009 ∼ 2010年2012年10月19日金曜日
  39. 39. 背景 • モダンPerl時代の幕開け • 空前のMooooooseブーム • YAPCでPlackが発表された • 広告配信に再び携わることに2012年10月19日金曜日
  40. 40. OS∼ミドルウェア層 • cobbler + Puppet + capistrano • LVS + nginx + starman + cronolog • daemontools • 相変わらず/usr/local/CPAN/2012年10月19日金曜日
  41. 41. Perl関連 • Plack • Any::Moose • TokyoCabinet + JSON::XS • DBIx::Skinny • URI::Escape::XS2012年10月19日金曜日
  42. 42. Any::Moose • 配信はMouse、バッチ等はMooseを使用 • Mouseが出始めで安定性に不安があった • それでも使いたかったんや2012年10月19日金曜日
  43. 43. URI::Escape::XS • query_stringのパースが地味に重かった • 不振な挙動についてIRCで相談してみた • kazuhoさんが即時特定してpatch作成 • danさんが即日リリース • Perlコミュニティマジパねぇ • https://gist.github.com/39157512012年10月19日金曜日
  44. 44. 第四期 2010 ∼ 2011年2012年10月19日金曜日
  45. 45. 背景 • 2012/01/12 Kauli - FreakOut間でRTB取引開始2012年10月19日金曜日
  46. 46. OS∼ミドルウェア層 • perlbrew + cpanm • PERLBREW_ROOT=/kauli/perlbrew • Perl 5.12.2 • TokyoTyrant2012年10月19日金曜日
  47. 47. Perl関連 • Mouse • Object::Container • Text::Xslate2012年10月19日金曜日
  48. 48. Mouse • MouseX::Foreignでno Any::Mooseに • アクセサはClass::Accessor::Fastより速い • lazy, defaultでテスタビリティを高く保つ • roleとかは不要 • コードの枠を提供するWAF的な位置付け2012年10月19日金曜日
  49. 49. 第五期 2012年2012年10月19日金曜日
  50. 50. _人人人人人人_ > 突然のPython <  ̄Y^Y^Y^Y^Y^ ̄2012年10月19日金曜日
  51. 51. 背景 • 会社の言語をPythonに切り替えました • それまで各自が好きな言語を使っていた • 社長がJava, Python使い • 代表者が使える言語にするのがいいと判断 • 共通語として採用するには筋がいいだろう2012年10月19日金曜日
  52. 52. OS∼ミドルウェア層 • LVS + nginx + uWSGI • Redis • werkzeug2012年10月19日金曜日
  53. 53. まとめ2012年10月19日金曜日
  54. 54. Perlによる広告配信 • 数年前に比べて段違いに作りやすくなった • 特にPlack移行の躍進が劇的 • Perlコミュニティ++2012年10月19日金曜日
  55. 55. 最後に2012年10月19日金曜日
  56. 56. Kauliではエンジニアを 募集しています2012年10月19日金曜日
  57. 57. • 開発は全てgithub • 渋谷駅 徒歩7分 • フリーアドレス • ディスプレイ完備 • フリーおやつはありません • エンジニアほぼ全員Mac • 圧倒的にvim優勢2012年10月19日金曜日
  58. 58. Pythonにも興味のある方の ご応募お待ちしております2012年10月19日金曜日
  59. 59. 2012年10月19日金曜日
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×