狠狠撸

狠狠撸Share a Scribd company logo
インターネット広告と
            Perl、ここ数年の歩み


                 2012.10.19 Yokohama.pm #9
                           nekoya



2012年10月19日金曜日
今时のネット広告に
                   よくある図


2012年10月19日金曜日
纯広告




                 広告枠      SSP, ad server   adnetwork




                                             DSP




                       1つの広告を表示するために
                       多数システムが連携している



2012年10月19日金曜日
复数の広告システム连携

          ? こうした事情は多分あまり知られていない

          ? この中でPerlが使われてきたことは、さらに知
             られていない(はず)




2012年10月19日金曜日
笔别谤濒による広告配信

          ? Perlで書かれた広告配信システムについて、
             自分が見てきたものの話をします

          ? あくまで自分が見てきた範囲のお話です




2012年10月19日金曜日
で、お前何なの?




2012年10月19日金曜日
纯広告




                 広告枠   SSP, ad server   adnetwork




                                          DSP




2012年10月19日金曜日
纯広告




                 広告枠   SSP, ad server   adnetwork




                                          DSP




                 SSP + AD Nerwork

2012年10月19日金曜日
http://kau.li/


         ? 2009年 設立、adnetworkリリース

         ? 2010年 SSPリリース

         ? 2011年 RTB対応(Kauli - FreakOutが日本初)

         ? 2012年 スマートフォン対応、Google AdSenseリセラー




2012年10月19日金曜日
SSP      Supply Side Platform

          ? 媒体向けプラットフォーム

          ? サイト、広告枠の収益を最適化するツール

          ? RTB(RealTime Bidding)対応が普通




2012年10月19日金曜日
50ms or die?




2012年10月19日金曜日
100ms or kill
                 遅いのを切り捨てる側のお仕事です




2012年10月19日金曜日
厂厂笔とか顿厂笔とかアドネットワー
             クとかアドサーバとかいろいろ
                 あって分かりにくい?




2012年10月19日金曜日
2012年10月19日金曜日
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日金曜日
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日金曜日
カオスマップ
                 マジカオス


2012年10月19日金曜日
里を返せばやれることは
                 いくらでもある


2012年10月19日金曜日
エンジニアにとって
                  面白い業界


2012年10月19日金曜日
広告配信の特徴
          ? 大量のリクエストを受ける

          ? 高速なレスポンスが求められる

          ? サーバの気持ちになってコードを書く

          ? 自社サイトでないので落とすと大変

          ? 「問題が起きても落ちない」体制作り

2012年10月19日金曜日
ふつうのことを
                 ふつうにやる


2012年10月19日金曜日
広告配信システムの基本

                 request   application   response




                             INDEX          DB




2012年10月19日金曜日
何かに似ている




2012年10月19日金曜日
検索エンジンの基本

                 検索クエリ   検索エンジン    検索結果




                         転置INDEX   ドキュメント




2012年10月19日金曜日
? 広告配信の教科書にもなる

                 ? 「○○を支える技術」は鉄板




2012年10月19日金曜日
俺とネット広告


          ? 2007年から関わり始めた

          ? 大きく分けて、5世代のシステムに携わった




2012年10月19日金曜日
広告配信システムの特徴
          ? 小さなリクエストを高速かつ大量に捌く
                        ???
          ? JavaやCに向いた分野だった

          ? 配信ロジックは年々複雑化する一方

          ? Cで書くのはしんどいのでは

          ? PHPでリクエスト毎にnewしまくるのも非効率

                              ※個人の感想です
2012年10月19日金曜日
笔别谤濒による広告配信システム


          ? ここ数年のPerlの進化は非常に大きい

          ? 広告配信にとってリターンが大きかった

          ? 今こそ「Perlで広告配信」は有効な選択




2012年10月19日金曜日
第一期
                 2007年




2012年10月19日金曜日
背景
          ? 笔别谤濒関连の情報が得にくかった時期

          ? 検索してもKENT CGI的な情報が多かった

          ? 当時はPHPをメインで使用していた

          ? Perlは書かずにインフラとPHPを担当



2012年10月19日金曜日
翱厂~ミドルウェア层
          ? RAID1のミラーを使ってOSコピー

          ? sudo cpanしまくるシェルスクリプト

          ? mod_proxy_balancer

          ? SpeedyCGI(mod_perlだったかも)




2012年10月19日金曜日
笔别谤濒関连
          ? Perl部分は書いてないのであまり憶えていない

          ? DBI + DBD::mysql

          ? Cache::Memcached::Fast

          ? Storable




2012年10月19日金曜日
第二期
                 2007 ~ 2008年




2012年10月19日金曜日
背景

          ? はてなが京都に戻った頃

          ? 第一期的な配信をスケールさせるお仕事

          ? 開発と関係ないところでいろいろ面倒だった




2012年10月19日金曜日
翱厂~ミドルウェア层
          ? PXE boot + kickstart + Puppet

          ? モジュールは/usr/local/CPAN/に入れてrsync

          ? LVS

          ? mod_perl2, mod_log_rotate




2012年10月19日金曜日
笔别谤濒関连
          ? Perl書き始めた(Jcode.pm時代以来)

          ? use utf8するだけで色々と大変なことに

          ? DBIx::Class(要Perl本体のRPM rebuild)

          ? Template Toolkit

          ? BerkleyDB



2012年10月19日金曜日
こぼれ话
          ? abのベンチマークで6000req/secが必達

          ? ディスクI/Oが完全にボトルネックに

          ? ext3→ext2に変更して解決

          ? この後フリーランスになって広告を離れた

          ? perl-users.jp設立、Lighty+Catalyst期へ



2012年10月19日金曜日
第叁期
                 2009 ~ 2010年




2012年10月19日金曜日
背景
          ? モダンPerl時代の幕開け

          ? 空前のMooooooseブーム

          ? YAPCでPlackが発表された

          ? 広告配信に再び携わることに



2012年10月19日金曜日
翱厂~ミドルウェア层

          ? cobbler + Puppet + capistrano

          ? LVS + nginx + starman + cronolog

          ? daemontools

          ? 相変わらず/usr/local/CPAN/




2012年10月19日金曜日
笔别谤濒関连
          ? Plack

          ? Any::Moose

          ? TokyoCabinet + JSON::XS

          ? DBIx::Skinny

          ? URI::Escape::XS



2012年10月19日金曜日
Any::Moose

          ? 配信はMouse、バッチ等はMooseを使用

          ? Mouseが出始めで安定性に不安があった

          ? それでも使いたかったんや




2012年10月19日金曜日
URI::Escape::XS
          ? query_stringのパースが地味に重かった

          ? 不振な挙動についてIRCで相談してみた

          ? kazuhoさんが即時特定してpatch作成

          ? danさんが即日リリース

          ? Perlコミュニティマジパねぇ

          ? https://gist.github.com/3915751



2012年10月19日金曜日
第四期
                 2010 ~ 2011年




2012年10月19日金曜日
背景


          ? 2012/01/12 Kauli - FreakOut間でRTB取引開始




2012年10月19日金曜日
翱厂~ミドルウェア层

          ? perlbrew + cpanm

          ? PERLBREW_ROOT=/kauli/perlbrew

          ? Perl 5.12.2

          ? TokyoTyrant




2012年10月19日金曜日
笔别谤濒関连

          ? Mouse

          ? Object::Container

          ? Text::Xslate




2012年10月19日金曜日
Mouse
          ? MouseX::Foreignでno Any::Mooseに

          ? アクセサはClass::Accessor::Fastより速い

          ? lazy, defaultでテスタビリティを高く保つ

          ? roleとかは不要

          ? コードの枠を提供するWAF的な位置付け



2012年10月19日金曜日
第五期
                 2012年




2012年10月19日金曜日
_人人人人人人_
                 > 突然のPython <
                  ̄Y^Y^Y^Y^Y^ ̄




2012年10月19日金曜日
背景
          ? 会社の言語をPythonに切り替えました

          ? それまで各自が好きな言語を使っていた

          ? 社長がJava, Python使い

          ? 代表者が使える言語にするのがいいと判断

          ? 共通語として採用するには筋がいいだろう



2012年10月19日金曜日
翱厂~ミドルウェア层

          ? LVS + nginx + uWSGI

          ? Redis

          ? werkzeug




2012年10月19日金曜日
まとめ




2012年10月19日金曜日
笔别谤濒による広告配信

          ? 数年前に比べて段違いに作りやすくなった

          ? 特にPlack移行の躍進が劇的

          ? Perlコミュニティ++




2012年10月19日金曜日
最後に




2012年10月19日金曜日
碍补耻濒颈ではエンジニアを
                 募集しています


2012年10月19日金曜日
? 開発は全てgithub

                 ? 渋谷駅 徒歩7分

                 ? フリーアドレス

                 ? ディスプレイ完備

                 ? フリーおやつはありません

                 ? エンジニアほぼ全員Mac

                 ? 圧倒的にvim優勢



2012年10月19日金曜日
笔测迟丑辞苍にも兴味のある方の
           ご応募お待ちしております



2012年10月19日金曜日
2012年10月19日金曜日

More Related Content

インターネット広告と笔别谤濒、ここ数年の歩み

  • 1. インターネット広告と Perl、ここ数年の歩み 2012.10.19 Yokohama.pm #9 nekoya 2012年10月19日金曜日
  • 2. 今时のネット広告に よくある図 2012年10月19日金曜日
  • 3. 纯広告 広告枠 SSP, ad server adnetwork DSP 1つの広告を表示するために 多数システムが連携している 2012年10月19日金曜日
  • 4. 复数の広告システム连携 ? こうした事情は多分あまり知られていない ? この中でPerlが使われてきたことは、さらに知 られていない(はず) 2012年10月19日金曜日
  • 5. 笔别谤濒による広告配信 ? Perlで書かれた広告配信システムについて、 自分が見てきたものの話をします ? あくまで自分が見てきた範囲のお話です 2012年10月19日金曜日
  • 7. 纯広告 広告枠 SSP, ad server adnetwork DSP 2012年10月19日金曜日
  • 8. 纯広告 広告枠 SSP, ad server adnetwork DSP SSP + AD Nerwork 2012年10月19日金曜日
  • 9. http://kau.li/ ? 2009年 設立、adnetworkリリース ? 2010年 SSPリリース ? 2011年 RTB対応(Kauli - FreakOutが日本初) ? 2012年 スマートフォン対応、Google AdSenseリセラー 2012年10月19日金曜日
  • 10. SSP Supply Side Platform ? 媒体向けプラットフォーム ? サイト、広告枠の収益を最適化するツール ? RTB(RealTime Bidding)対応が普通 2012年10月19日金曜日
  • 12. 100ms or kill 遅いのを切り捨てる側のお仕事です 2012年10月19日金曜日
  • 13. 厂厂笔とか顿厂笔とかアドネットワー クとかアドサーバとかいろいろ あって分かりにくい? 2012年10月19日金曜日
  • 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. 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. カオスマップ マジカオス 2012年10月19日金曜日
  • 18. 里を返せばやれることは いくらでもある 2012年10月19日金曜日
  • 19. エンジニアにとって 面白い業界 2012年10月19日金曜日
  • 20. 広告配信の特徴 ? 大量のリクエストを受ける ? 高速なレスポンスが求められる ? サーバの気持ちになってコードを書く ? 自社サイトでないので落とすと大変 ? 「問題が起きても落ちない」体制作り 2012年10月19日金曜日
  • 21. ふつうのことを ふつうにやる 2012年10月19日金曜日
  • 22. 広告配信システムの基本 request application response INDEX DB 2012年10月19日金曜日
  • 24. 検索エンジンの基本 検索クエリ 検索エンジン 検索結果 転置INDEX ドキュメント 2012年10月19日金曜日
  • 25. ? 広告配信の教科書にもなる ? 「○○を支える技術」は鉄板 2012年10月19日金曜日
  • 26. 俺とネット広告 ? 2007年から関わり始めた ? 大きく分けて、5世代のシステムに携わった 2012年10月19日金曜日
  • 27. 広告配信システムの特徴 ? 小さなリクエストを高速かつ大量に捌く ??? ? JavaやCに向いた分野だった ? 配信ロジックは年々複雑化する一方 ? Cで書くのはしんどいのでは ? PHPでリクエスト毎にnewしまくるのも非効率 ※個人の感想です 2012年10月19日金曜日
  • 28. 笔别谤濒による広告配信システム ? ここ数年のPerlの進化は非常に大きい ? 広告配信にとってリターンが大きかった ? 今こそ「Perlで広告配信」は有効な選択 2012年10月19日金曜日
  • 29. 第一期 2007年 2012年10月19日金曜日
  • 30. 背景 ? 笔别谤濒関连の情報が得にくかった時期 ? 検索してもKENT CGI的な情報が多かった ? 当時はPHPをメインで使用していた ? Perlは書かずにインフラとPHPを担当 2012年10月19日金曜日
  • 31. 翱厂~ミドルウェア层 ? RAID1のミラーを使ってOSコピー ? sudo cpanしまくるシェルスクリプト ? mod_proxy_balancer ? SpeedyCGI(mod_perlだったかも) 2012年10月19日金曜日
  • 32. 笔别谤濒関连 ? Perl部分は書いてないのであまり憶えていない ? DBI + DBD::mysql ? Cache::Memcached::Fast ? Storable 2012年10月19日金曜日
  • 33. 第二期 2007 ~ 2008年 2012年10月19日金曜日
  • 34. 背景 ? はてなが京都に戻った頃 ? 第一期的な配信をスケールさせるお仕事 ? 開発と関係ないところでいろいろ面倒だった 2012年10月19日金曜日
  • 35. 翱厂~ミドルウェア层 ? PXE boot + kickstart + Puppet ? モジュールは/usr/local/CPAN/に入れてrsync ? LVS ? mod_perl2, mod_log_rotate 2012年10月19日金曜日
  • 36. 笔别谤濒関连 ? Perl書き始めた(Jcode.pm時代以来) ? use utf8するだけで色々と大変なことに ? DBIx::Class(要Perl本体のRPM rebuild) ? Template Toolkit ? BerkleyDB 2012年10月19日金曜日
  • 37. こぼれ话 ? abのベンチマークで6000req/secが必達 ? ディスクI/Oが完全にボトルネックに ? ext3→ext2に変更して解決 ? この後フリーランスになって広告を離れた ? perl-users.jp設立、Lighty+Catalyst期へ 2012年10月19日金曜日
  • 38. 第叁期 2009 ~ 2010年 2012年10月19日金曜日
  • 39. 背景 ? モダンPerl時代の幕開け ? 空前のMooooooseブーム ? YAPCでPlackが発表された ? 広告配信に再び携わることに 2012年10月19日金曜日
  • 40. 翱厂~ミドルウェア层 ? cobbler + Puppet + capistrano ? LVS + nginx + starman + cronolog ? daemontools ? 相変わらず/usr/local/CPAN/ 2012年10月19日金曜日
  • 41. 笔别谤濒関连 ? Plack ? Any::Moose ? TokyoCabinet + JSON::XS ? DBIx::Skinny ? URI::Escape::XS 2012年10月19日金曜日
  • 42. Any::Moose ? 配信はMouse、バッチ等はMooseを使用 ? Mouseが出始めで安定性に不安があった ? それでも使いたかったんや 2012年10月19日金曜日
  • 43. URI::Escape::XS ? query_stringのパースが地味に重かった ? 不振な挙動についてIRCで相談してみた ? kazuhoさんが即時特定してpatch作成 ? danさんが即日リリース ? Perlコミュニティマジパねぇ ? https://gist.github.com/3915751 2012年10月19日金曜日
  • 44. 第四期 2010 ~ 2011年 2012年10月19日金曜日
  • 45. 背景 ? 2012/01/12 Kauli - FreakOut間でRTB取引開始 2012年10月19日金曜日
  • 46. 翱厂~ミドルウェア层 ? perlbrew + cpanm ? PERLBREW_ROOT=/kauli/perlbrew ? Perl 5.12.2 ? TokyoTyrant 2012年10月19日金曜日
  • 47. 笔别谤濒関连 ? Mouse ? Object::Container ? Text::Xslate 2012年10月19日金曜日
  • 48. Mouse ? MouseX::Foreignでno Any::Mooseに ? アクセサはClass::Accessor::Fastより速い ? lazy, defaultでテスタビリティを高く保つ ? roleとかは不要 ? コードの枠を提供するWAF的な位置付け 2012年10月19日金曜日
  • 49. 第五期 2012年 2012年10月19日金曜日
  • 50. _人人人人人人_ > 突然のPython <  ̄Y^Y^Y^Y^Y^ ̄ 2012年10月19日金曜日
  • 51. 背景 ? 会社の言語をPythonに切り替えました ? それまで各自が好きな言語を使っていた ? 社長がJava, Python使い ? 代表者が使える言語にするのがいいと判断 ? 共通語として採用するには筋がいいだろう 2012年10月19日金曜日
  • 52. 翱厂~ミドルウェア层 ? LVS + nginx + uWSGI ? Redis ? werkzeug 2012年10月19日金曜日
  • 54. 笔别谤濒による広告配信 ? 数年前に比べて段違いに作りやすくなった ? 特にPlack移行の躍進が劇的 ? Perlコミュニティ++ 2012年10月19日金曜日
  • 56. 碍补耻濒颈ではエンジニアを 募集しています 2012年10月19日金曜日
  • 57. ? 開発は全てgithub ? 渋谷駅 徒歩7分 ? フリーアドレス ? ディスプレイ完備 ? フリーおやつはありません ? エンジニアほぼ全員Mac ? 圧倒的にvim優勢 2012年10月19日金曜日
  • 58. 笔测迟丑辞苍にも兴味のある方の ご応募お待ちしております 2012年10月19日金曜日