Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ruby_adsystem

bash0C7
November 14, 2014

 ruby_adsystem

RubyWorld Conference 2014
「月間38億PVメディアを
支える広告配信システムのRubyによる内製開発の挑戦」講演資料

bash0C7

November 14, 2014
Tweet

More Decks by bash0C7

Other Decks in Technology

Transcript

  1. ݄ؒԯ17ϝσΟΞΛ

    ࢧ͑Δ޿ࠂ഑৴γεςϜͷ
    3VCZʹΑΔ಺੡։ൃͷ௅ઓ
    !CBTI$খࣳහ໌
    ϐΫγϒגࣜձࣾ
    公開版

    View Slide

  2. ࣗݾ঺հ
    w খࣳහ໌!CBTI$
    w QJYJW։ൃϚωδϝϯτ
    w ΤϯδχΞ࠾༻ɾҭ੒
    w ޿ࠂܥٕज़୲౰ΤϯδχΞ
    IUUQXXXBUNBSLJUDPKQBJUBSUJDMFTOFXTIUNM

    View Slide

  3. Ωʔϫʔυ
    w ࣄۀձࣾ
    w εϞʔϧͳ಺੡νʔϜ
    w 3VCZSBJMT1BESJOP'MVFOUE
    w ۀ຿γεςϜͱͯ͠ͷෳࡶ͞
    w Ϣʔβ޲͚ͷଟେͳτϥϑΟοΫ਺

    View Slide

  4. w ։ൃͷഎܠ
    w ઃܭͱ࣮૷
    w ൃੜͨ͠໰୊ͱղܾ
    w ࠓޙͷల։ͱ·ͱΊ

    View Slide

  5. ։ൃͷഎܠ

    View Slide

  6. ϐΫγϒגࣜձࣾͱ͸
    w ࣾһ਺໊ɾฏۉ೥ྸࡀͷࣄۀձࣾ
    w ʮ͓ֆ͔͖͕΋ͬͱָ͘͠ͳΔ৔ॴΛ૑Δʯ
    w ૑࡞׆ಈΛָ͘͢͠ΔͨΊͷ֤छऔΓ૊Έ

    View Slide

  7. ʮͨͷ͍͠ʯΛ
    ऩӹ໘ͰԼࢧ͑

    View Slide

  8. ࢲͨͪͳΓͷ޿ࠂ഑৴
    w ऩӹΛ͍͍͍ͨͩͯΔ
    w ऩӹΛ্͛ΔͨΊʹͷαʔϏεͰ͸ͳ͍
    w αʔϏεΛ৳͹ͨ͢Ίͷݩख

    View Slide

  9. View Slide

  10. ࣗࣾऔΓѻ͍
    w ७޿ࠂ
    w λΠΞοϓҊ݅
    w ࣗࣾͷΠϕϯτࠂ஌
    w αʔϏε಺Ͱͷ༠ಋ
    w ผαʔϏε΁ͷ༠ಋ

    View Slide

  11. IUUQXXXTMJEFTIBSFOFU)JSPTIJ,POEPKQDIBPTNBQ

    View Slide

  12. ޿ࠂӡ༻େม

    View Slide

  13. ࣾ಺޿ࠂ഑৴γεςϜ
    w ֤छϓϥοτϑΥʔϜͷҰݩ؅ཧ
    w ҆શ͔ͭޮ཰తʹ޿ࠂͷӡ༻
    w ߴ͍੒ՌΛ໨ࢦͯ͠ॊೈʹରԠ

    View Slide

  14. γεςϜ΁ͷཁ੥
    w ҆ఆͯ͠ӡ༻Ͱ͖Δ
    w τϥϑΟοΫʹ଱͑Δ
    w ࢖͍উखͷྑ͍ۀ຿γεςϜ
    w ௿ϥϯχϯάίετ
    w ਝ଎ͳରԠ͕ߦ͑Δ

    View Slide

  15. ݱߦγεςϜ

    View Slide

  16. w ʢΞʔΩςΫνϟʣ
    5PLZP
    5ZSBOU
    .Z42-
    ؅ཧ"1
    ,ZPUP
    5ZDPPO
    "1$
    JNQDMJDL
    Χ΢ϯτ
    "1$
    ഑৴σʔλ
    Ωϟογϡ
    5PLZP
    5ZSBOU
    ؅ཧ"1
    ϨϓϦέʔγϣϯ
    ఆظ
    ൓ө
    ఆظ
    ൓ө
    ഑৴
    ༧໿
    ༧໿
    ൓ө
    ഑৴
    ৘ใ
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ը૾σʔλಉظ
    ը૾
    "1

    View Slide

  17. ಛ௃
    w ࣗࣾ։ൃ
    w ʮރΕͨʯ͍͍γεςϜ
    w ҆ఆͨ͠ύϑΥʔϚϯε
    w ೥Ҏདྷ௕೥ͷ։ൃӡ༻࣮੷
    w खʹೃછΜͰ͍Δ

    View Slide

  18. ৽γεςϜ

    View Slide

  19. .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ

    View Slide

  20. ϑϧ3VCZͰ࣮૷Λ௅ઓ
    w ༏Εͨهड़ੑ
    w ࡞Γख͕ݟ͑Δ
    w ίϛϡχςΟ
    w ΤίγεςϜ

    View Slide

  21. ։ൃνʔϜߏ੒
    !
    w ೥৽ଔ
    w Πϯϑϥɺϛυϧ΢ΣΞ
    w σϓϩΠɺϩάॲཧ
    w *46$0/४༏উ
    !
    w ޿ࠂ഑৴ܦݧ
    w શମͷΞʔΩςΫνϟܾఆ
    w ओʹ഑৴αʔόΛ୲౰
    w SBJMTΞϓϦέʔγϣϯΤϯδχΞ
    w ޿ࠂ഑৴͸ॳΊ͕ͯͩ։ൃܦݧ๛෋
    w ओʹ؅ཧαʔόΛ୲౰

    View Slide

  22. ॳظ։ൃͷظؒ
    w ϲ݄
    w ࣗࣾ։ൃͷͨΊௐ੔Մೳ
    w ऴΘΓΛఆΊͯௐ੔Λߦ͏

    View Slide

  23. .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ
    ؅ཧαʔό ഑৴αʔό

    View Slide

  24. .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ
    ؅ཧαʔό ഑৴αʔό

    View Slide

  25. ؅ཧαʔόʹٻΊΒΕΔ΋ͷ
    w ۀ຿γεςϜ
    w ϛεͳ͘ۀ຿Ͱ͖Δ͜ͱ
    w ֦ு༰қੑ
    w ඞཁे෼ͳύϑΥʔϚϯε

    View Slide

  26. ؅ཧαʔόͷ࣮૷
    w OHJOY
    w VOJDPSO
    w SBJMT
    w .Z42-
    w మ൘ߏ੒
    w ࣾ಺ʹ஌ݟ͕͋ͬͨ

    View Slide

  27. l͘͝ී௨ͷߏ੒z
    w ձࣾΛ௒͑ͯී௨ͷߏ੒ͱ͍͏࿩͕Ͱ͖Δ
    w ґવͱͯ͠ઃܭ͸؆୯Ͱ͸ͳ͍
    w ۀ຿ͷϞσϦϯά

    View Slide

  28. .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ
    ؅ཧαʔό ഑৴αʔό

    View Slide

  29. ഑৴αʔόʹٻΊΒΕΔ΋ͷ
    w ߴτϥϑΟοΫ
    w Մ༻ੑ
    w θϩμ΢ϯλΠϜ
    w ࠷େݶͷύϑΥʔϚϯε

    View Slide

  30. ഑৴αʔόͷ࣮૷
    w OHJOY
    w VOJDPSO
    w 1BESJOP
    w NFNDBDIFE
    w ܰྔͳετϨʔδ

    ͔ΒಡΈࠐΈ
    w SBJMTͷϦονͳػೳ
    ͸ཁΒͳ͍
    w ϑϨʔϜϫʔΫͷੜ
    ࢈ੑͷߴ͞΋΄͍͠

    View Slide

  31. NFNDBDIFE1BESJOP
    w NFNDBDIFEར༻ͷ࣮੷͕๛෋
    w 1BESJOP4JOBUSBϕʔεͷϑϨʔϜϫʔΫ
    w ։ൃʹඞཁͳ࢓૊Έ͕උΘ͍ͬͯΔ
    w ඞཁͳίϯϙʔωϯτΛ૊Έ߹Θͤ
    w ύονΛૹͬͨࣄ͕͋ͬͨ

    View Slide

  32. ޻෉఺

    View Slide

  33. ཁૉؒΛૄ݁߹ʹ
    w ࣮֬ʹ഑৴੒ՌΛूܭ͢Δ
    w ഑৴Λܧଓ͠ଓ͚Δ
    w ӨڹΛہॴԽ͢Δ
    .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ

    View Slide

  34. ੒Ռूܭͷࣦഊ࣌ରࡦ
    .Z42-
    ςΩετ
    ܭଌϩά
    ϩάऩू
    ఆظ൓ө
    'MVFOUE

    ूܭ"1
    w 'MVFOUE3VCZ੡ϩάऩूπʔϧ
    w ๛෋ͳϓϥάΠϯͱγϯϓϧͳઃఆϑΝΠϧ
    w ετϦʔϜʹΑΔηϛϦΞϧλΠϜॲཧ
    w ࣦഊ࣌ͷϦτϥΠػೳ

    View Slide

  35. ੒Ռूܭͷࣦഊ࣌ରࡦ
    w 'MVFOUEΛ࢖ͬͯϩάͷճऩͱҰ࣍ूܭ
    w IUUQTHJTUHJUIVCDPNLBU[DIBOH
    ޿ࠂ഑৴ͷઌୡͷઃܭΛར༻
    IUUQTHJTUHJUIVCDPNLBU[DIBOH

    View Slide

  36. TPVSDF
    UZQFUBJM
    QBUIQBUIUPTIBSFELTLLTLMPH
    [email protected]
    [email protected]
    GPSNBUKTPO
    UBHLTL
    TPVSDF
    !
    NBUDILTL
    UZQFFYFD
    DPNNBOEDEQBUIUPDVSSFOUCVOEMFMPH
    [email protected]@[email protected]
    [email protected]@MPHSCF
    QSPEVDUJPO
    GPSNBUKTPO
    [email protected]
    [email protected]
    [email protected]@CVGGFS
    LTLCVGGFS
    NBUDI
    ܭଌϩάΛ

    ৗ࣌ಡΈࠐΈ
    ඵຖʹूܭ
    .Z42-ʹ

    ॻ͖ग़͠

    View Slide

  37. 1VMMܕͷ৘ใऔಘ
    .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ
    ഑৴αʔό

    View Slide

  38. ؅ཧ"1
    ഑৴"1
    ഑৴"1
    ഑৴"1
    ഑৴"1
    ഑৴"1

    View Slide

  39. ಘΒΕͨࣄ
    w ࣮֬ʹ഑৴੒ՌΛूܭ͢Δ
    w ഑৴Λܧଓ͠ଓ͚Δ
    w ӨڹΛہॴԽ͢Δ
    .Z42-
    ؅ཧ"1
    ςΩετ
    ܭଌϩά
    NFNDB
    DIFE
    ϩάऩू
    ఆظ൓ө
    ഑৴
    ઃఆ
    ഑৴
    ৘ใ
    'MVFOUE

    ूܭ"1
    'MVFOUE

    ഑৴৘ใ
    Ϋϩʔϥʔ
    ഑৴"1
    ഑৴
    ৘ใ
    ഑৴
    ݁Ռ
    ഑৴৘ใऔಘ
    ᶃ഑৴ܧଓੑ
    ɹҡ͕࣋༰қ
    ᶆूܭ݁Ռ൓ө͕ඇΫϦςΟΧϧԽ
    ᶅεέʔϧΞ΢τ͕༰қ
    ᶄ؅ཧը໘ͱ഑৴৘ใߋ৽͕
    ɹඇΫϦςΟΧϧԽ

    View Slide

  40. ൃੜͨ͠໰୊ͱղܾ

    View Slide

  41. ؅ཧαʔό
    w ٕज़తͳ໰୊͸͋·Γͳ͍
    w ۀ຿తͳ໰୊
    w ར༻ଆ΋։ൃଆ΋ཉ͍͠΋ͷ͸෼͔Βͳ͍
    w ີʹ࿩Λ͠ͳ͕Β΍Δ͔͠ͳ͍
    w ࠓޙͷۀ຿ͷਐలʹ௥͍͍͍͚ͭͯΔ͔

    View Slide

  42. ഑৴αʔό
    w ٕज़త໰୊͔͠ͳ͍
    w σϓϩΠ࣌ʹϦΫΤετΛऔΓ͜΅͞ͳ͍
    w ύϑΥʔϚϯεΛอͭద੾ͳΩϟογϡ
    w Τϥʔϩάͷճऩͱద੾ͳ௨஌

    View Slide

  43. ύϑΥʔϚϯε໰୊

    View Slide

  44. τϥϑΟοΫΛ͞͹͚ͳ͍
    w Ͳ͏͢Δʁ
    w νϡʔχϯά
    w εέʔϧΞ΢τ
    w άϨʔυΞοϓ

    View Slide

  45. νϡʔχϯά
    w ͻͨ͢Βʹجຊʹ஧࣮ʹਐΊΔ
    ϓϩϑΝΠϦϯά
    ϘτϧωοΫՕॴͷಛఆ
    ϘτϧωοΫՕॴͷνϡʔχϯά

    View Slide

  46. ϦΫΤετॲཧΛߴ଎Խ
    w ॲཧ࣌ؒॖΊͯεϧʔϓοτΛ্͛Δ
    w SVCZQSPGΛ࢖ͬͯॏ͍෦෼ΛՄࢹԽ
    w ΞϓϦέʔγϣϯͷϘτϧωοΫՕॴվળ
    w ϑϨʔϜϫʔΫ෦෼͚͕ͩදʹग़ͯ͘Δ
    w 1BESJOPґଘ෦෼Λ֎ͯ͠

    4JOBUSBΞϓϦέʔγϣϯԽ

    View Slide

  47. εϧʔϓοτ޲্Λ໨ࢦ͢
    ΞϓϦέʔγϣϯαʔόมߋΛࢼΈΔ
    w UIJOɺSBJOCPXTͳͲ
    w զʑͷ༻్Ͱ͸VOJDPSO͕࠷଎
    ॲཧܥมߋΛࢼΈΔ
    w $3VCZ͔Β+3VCZҠߦ
    w SCFOWͰ੾Γସ͑Δ͚ͩ
    w $3VCZ΄ͲͷύϑΥʔϚϯεΛग़ͤͣ

    View Slide

  48. ࠷ऴతͳղܾ

    View Slide

  49. w ͨ·ͨ·ࢥཱ͍ͬͯ൒೔Ͱ࣮ࢪ
    w ઃܭ͸શ͘ಉ͡
    w νϡʔχϯάͷ༨஍͕ߴ͔ͬͨͷͰ

    վΊͯύϑΥʔϚϯενϡʔχϯά
    w SVCZͰ͖ͬͪΓ࡞͍͓͔ͬͯͨ͛
    IUUQTHPMBOHPSHEPDHPQIFSHPQIFSDPMPSQOH

    View Slide

  50. ࠓޙͷల։ͱ·ͱΊ

    View Slide

  51. ࠓޙͷల։
    w ӡ༻վળΛଓ͚Δ
    w ৽ػೳ௥ՃΛߦ͏
    w ϝϯςφϯε͠ଓ͚Δ
    w ར༻֦େΛߦ͏

    View Slide

  52. ӡ༻
    w ਺ଟ͘ͷαʔόΛࣗࣾӡ༻͖ͯͨ͠ϊ΢ϋ΢
    w ਺͸ଟ͍͕ྔ͸খ͍͞τϥϑΟοΫ
    w ίΞαʔϏεͱಉϨϕϧͷମ੍
    w σϓϩΠγεςϜɺϩάऩूγεςϜ
    w άϥϑԽɺΞϥʔτɺ؂ࢹମ੍

    View Slide

  53. ·ͱΊਅ໘໨ͳ։ൃ
    w ৴པͰ͖Δಓ۩ͱ஥ؒͨͪ
    w ஍ʹ଍ண͍ͨɺجຊʹ஧࣮ͳγεςϜઃܭ
    w ԦಓͷύϑΥʔϚϯενϡʔχϯά

    View Slide

  54. ٕज़͸ࣄۀΛ
    ࢧ͑Δྗͦͷ΋ͷ

    View Slide