Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
ruby_adsystem
Toshiaki Koshiba
November 14, 2014
Technology
3
3.3k
ruby_adsystem
RubyWorld Conference 2014
「月間38億PVメディアを 支える広告配信システムのRubyによる内製開発の挑戦」講演資料
Toshiaki Koshiba
November 14, 2014
Tweet
Share
More Decks by Toshiaki Koshiba
See All by Toshiaki Koshiba
bash0c7
2
61
bash0c7
0
210
bash0c7
0
120
bash0c7
2
400
bash0c7
5
850
bash0c7
2
1.5k
bash0c7
0
130
bash0c7
0
230
bash0c7
0
150
Other Decks in Technology
See All in Technology
thehajime
0
110
kanaugust
PRO
0
210
miyamotok
0
100
miu_crescent
0
400
htomine
0
170
kawaguti
2
400
ks91
PRO
0
350
seto_hi
0
200
harshbothra
0
240
kawaguti
0
460
recruitengineers
0
250
caori_t
0
180
Featured
See All Featured
sachag
267
17k
dougneiner
119
8k
denniskardys
220
120k
jeffersonlam
330
15k
orderedlist
PRO
330
36k
robhawkes
53
2.9k
maltzj
502
36k
malarkey
193
8.7k
akmur
252
19k
zakiwarfel
88
3.4k
shpigford
370
42k
tammielis
237
23k
Transcript
݄ؒԯ17ϝσΟΞΛ ࢧ͑Δࠂ৴γεςϜͷ 3VCZʹΑΔ։ൃͷઓ !CBTI$খࣳහ໌ ϐΫγϒגࣜձࣾ 公開版
ࣗݾհ w খࣳහ໌!CBTI$ w QJYJW։ൃϚωδϝϯτ w ΤϯδχΞ࠾༻ɾҭ w ࠂܥٕज़୲ΤϯδχΞ IUUQXXXBUNBSLJUDPKQBJUBSUJDMFTOFXTIUNM
Ωʔϫʔυ w ࣄۀձࣾ w εϞʔϧͳνʔϜ w 3VCZ SBJMT 1BESJOP 'MVFOUE
w ۀγεςϜͱͯ͠ͷෳࡶ͞ w Ϣʔβ͚ͷଟେͳτϥϑΟοΫ
w ։ൃͷഎܠ w ઃܭͱ࣮ w ൃੜͨ͠ͱղܾ w ࠓޙͷల։ͱ·ͱΊ
։ൃͷഎܠ
ϐΫγϒגࣜձࣾͱ w ࣾһ໊ɾฏۉྸࡀͷࣄۀձࣾ w ʮ͓ֆ͔͖͕ͬͱָ͘͠ͳΔॴΛΔʯ w ࡞׆ಈΛָ͘͢͠ΔͨΊͷ֤छऔΓΈ
ʮͨͷ͍͠ʯΛ ऩӹ໘ͰԼࢧ͑
ࢲͨͪͳΓͷࠂ৴ w ऩӹΛ͍͍͍ͨͩͯΔ w ऩӹΛ্͛ΔͨΊʹͷαʔϏεͰͳ͍ w αʔϏεΛ৳ͨ͢Ίͷݩख
None
ࣗࣾऔΓѻ͍ w ७ࠂ w λΠΞοϓҊ݅ w ࣗࣾͷΠϕϯτࠂ w αʔϏεͰͷ༠ಋ w
ผαʔϏεͷ༠ಋ
IUUQXXXTMJEFTIBSFOFU)JSPTIJ,POEPKQDIBPTNBQ
ࠂӡ༻େม
ࣾࠂ৴γεςϜ w ֤छϓϥοτϑΥʔϜͷҰݩཧ w ҆શ͔ͭޮతʹࠂͷӡ༻ w ߴ͍ՌΛࢦͯ͠ॊೈʹରԠ
γεςϜͷཁ w ҆ఆͯ͠ӡ༻Ͱ͖Δ w τϥϑΟοΫʹ͑Δ w ͍উखͷྑ͍ۀγεςϜ w ϥϯχϯάίετ w
ਝͳରԠ͕ߦ͑Δ
ݱߦγεςϜ
w ʢΞʔΩςΫνϟʣ 5PLZP 5ZSBOU .Z42- ཧ"1 ,ZPUP 5ZDPPO "1$ JNQDMJDL
Χϯτ "1$ ৴σʔλ Ωϟογϡ 5PLZP 5ZSBOU ཧ"1 ϨϓϦέʔγϣϯ ఆظ ө ఆظ ө ৴ ༧ ༧ ө ৴ ใ ৴ ใ ৴ ݁Ռ ը૾σʔλಉظ ը૾ "1
ಛ w ࣗࣾ։ൃ w ʮރΕͨʯ͍͍γεςϜ w ҆ఆͨ͠ύϑΥʔϚϯε w Ҏདྷͷ։ൃӡ༻࣮ w
खʹೃછΜͰ͍Δ
৽γεςϜ
.Z42- ཧ"1 ςΩετ ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴ ઃఆ
৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ
ϑϧ3VCZͰ࣮Λઓ w ༏Εͨهड़ੑ w ࡞Γख͕ݟ͑Δ w ίϛϡχςΟ w ΤίγεςϜ
։ൃνʔϜߏ ! w ৽ଔ w ΠϯϑϥɺϛυϧΣΞ w σϓϩΠɺϩάॲཧ w *46$0/४༏উ
! w ࠂ৴ܦݧ w શମͷΞʔΩςΫνϟܾఆ w ओʹ৴αʔόΛ୲ w SBJMTΞϓϦέʔγϣϯΤϯδχΞ w ࠂ৴ॳΊ͕ͯͩ։ൃܦݧ๛ w ओʹཧαʔόΛ୲
ॳظ։ൃͷظؒ w ϲ݄ w ࣗࣾ։ൃͷͨΊௐՄೳ w ऴΘΓΛఆΊͯௐΛߦ͏
.Z42- ཧ"1 ςΩετ ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴ ઃఆ
৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ ཧαʔό ৴αʔό
.Z42- ཧ"1 ςΩετ ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴ ઃఆ
৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ ཧαʔό ৴αʔό
ཧαʔόʹٻΊΒΕΔͷ w ۀγεςϜ w ϛεͳ͘ۀͰ͖Δ͜ͱ w ֦ு༰қੑ w ඞཁेͳύϑΥʔϚϯε
ཧαʔόͷ࣮ w OHJOY w VOJDPSO w SBJMT w .Z42- w
మ൘ߏ w ࣾʹݟ͕͋ͬͨ
l͘͝ී௨ͷߏz w ձࣾΛ͑ͯී௨ͷߏͱ͍͏͕Ͱ͖Δ w ґવͱͯ͠ઃܭ؆୯Ͱͳ͍ w ۀͷϞσϦϯά
.Z42- ཧ"1 ςΩετ ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴ ઃఆ
৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ ཧαʔό ৴αʔό
৴αʔόʹٻΊΒΕΔͷ w ߴτϥϑΟοΫ w Մ༻ੑ w θϩμϯλΠϜ w ࠷େݶͷύϑΥʔϚϯε
৴αʔόͷ࣮ w OHJOY w VOJDPSO w 1BESJOP w NFNDBDIFE w
ܰྔͳετϨʔδ ͔ΒಡΈࠐΈ w SBJMTͷϦονͳػೳ ཁΒͳ͍ w ϑϨʔϜϫʔΫͷੜ ࢈ੑͷߴ͞΄͍͠
NFNDBDIFE 1BESJOP w NFNDBDIFEར༻ͷ࣮͕๛ w 1BESJOP4JOBUSBϕʔεͷϑϨʔϜϫʔΫ w ։ൃʹඞཁͳΈ͕උΘ͍ͬͯΔ w ඞཁͳίϯϙʔωϯτΛΈ߹Θͤ
w ύονΛૹͬͨࣄ͕͋ͬͨ
ཁૉؒΛૄ݁߹ʹ w ࣮֬ʹ৴ՌΛूܭ͢Δ w ৴Λܧଓ͠ଓ͚Δ w ӨڹΛہॴԽ͢Δ .Z42- ཧ"1 ςΩετ
ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴ ઃఆ ৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ
Ռूܭͷࣦഊ࣌ରࡦ .Z42- ςΩετ ܭଌϩά ϩάऩू ఆظө 'MVFOUE ूܭ"1 w
'MVFOUE3VCZϩάऩूπʔϧ w ๛ͳϓϥάΠϯͱγϯϓϧͳઃఆϑΝΠϧ w ετϦʔϜʹΑΔηϛϦΞϧλΠϜॲཧ w ࣦഊ࣌ͷϦτϥΠػೳ
Ռूܭͷࣦഊ࣌ରࡦ w 'MVFOUEΛͬͯϩάͷճऩͱҰ࣍ूܭ w IUUQTHJTUHJUIVCDPNLBU[DIBOH ࠂ৴ͷઌୡͷઃܭΛར༻ IUUQTHJTUHJUIVCDPNLBU[DIBOH
TPVSDF UZQFUBJM QBUIQBUIUPTIBSFELTLLTLMPH QPT@pMFQBUIUPTIBSFELTLLTLQPT SPUBUF@XBJUT GPSNBUKTPO UBHLTL TPVSDF ! NBUDILTL
UZQFFYFD DPNNBOEDEQBUIUPDVSSFOUCVOEMFMPH BHHSFHBUF@LTL@MPHMPHMPHqVFOUE@FSSPSMPH FYFDQBESJOPSVOOFSTDSJQUBHHSFHBUF@LTL@MPHSCF QSPEVDUJPO GPSNBUKTPO CVGGFS@UZQFpMF qVTI@JOUFSWBMT CVGGFS@QBUIQBUIUPTIBSFELTLqVFOUE@CVGGFS LTL CVGGFS NBUDI ܭଌϩάΛ ৗ࣌ಡΈࠐΈ ඵຖʹूܭ .Z42-ʹ ॻ͖ग़͠
1VMMܕͷใऔಘ .Z42- ཧ"1 ςΩετ ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴
ઃఆ ৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ ৴αʔό
ཧ"1 ৴"1 ৴"1 ৴"1 ৴"1 ৴"1
ಘΒΕͨࣄ w ࣮֬ʹ৴ՌΛूܭ͢Δ w ৴Λܧଓ͠ଓ͚Δ w ӨڹΛہॴԽ͢Δ .Z42- ཧ"1 ςΩετ
ܭଌϩά NFNDB DIFE ϩάऩू ఆظө ৴ ઃఆ ৴ ใ 'MVFOUE ूܭ"1 'MVFOUE ৴ใ Ϋϩʔϥʔ ৴"1 ৴ ใ ৴ ݁Ռ ৴ใऔಘ ᶃ৴ܧଓੑ ɹҡ͕࣋༰қ ᶆूܭ݁Ռө͕ඇΫϦςΟΧϧԽ ᶅεέʔϧΞτ͕༰қ ᶄཧը໘ͱ৴ใߋ৽͕ ɹඇΫϦςΟΧϧԽ
ൃੜͨ͠ͱղܾ
ཧαʔό w ٕज़తͳ͋·Γͳ͍ w ۀతͳ w ར༻ଆ։ൃଆཉ͍͠ͷ͔Βͳ͍ w ີʹΛ͠ͳ͕ΒΔ͔͠ͳ͍ w
ࠓޙͷۀͷਐలʹ͍͍͍͚ͭͯΔ͔
৴αʔό w ٕज़త͔͠ͳ͍ w σϓϩΠ࣌ʹϦΫΤετΛऔΓ͜΅͞ͳ͍ w ύϑΥʔϚϯεΛอͭదͳΩϟογϡ w Τϥʔϩάͷճऩͱదͳ௨
ύϑΥʔϚϯε
τϥϑΟοΫΛ͚͞ͳ͍ w Ͳ͏͢Δʁ w νϡʔχϯά w εέʔϧΞτ w άϨʔυΞοϓ
νϡʔχϯά w ͻͨ͢Βʹجຊʹ࣮ʹਐΊΔ ϓϩϑΝΠϦϯά ϘτϧωοΫՕॴͷಛఆ ϘτϧωοΫՕॴͷνϡʔχϯά
ϦΫΤετॲཧΛߴԽ w ॲཧ࣌ؒॖΊͯεϧʔϓοτΛ্͛Δ w SVCZQSPGΛͬͯॏ͍෦ΛՄࢹԽ w ΞϓϦέʔγϣϯͷϘτϧωοΫՕॴվળ w ϑϨʔϜϫʔΫ෦͚͕ͩදʹग़ͯ͘Δ w
1BESJOPґଘ෦Λ֎ͯ͠ 4JOBUSBΞϓϦέʔγϣϯԽ
εϧʔϓοτ্Λࢦ͢ ΞϓϦέʔγϣϯαʔόมߋΛࢼΈΔ w UIJOɺSBJOCPXTͳͲ w զʑͷ༻్ͰVOJDPSO͕࠷ ॲཧܥมߋΛࢼΈΔ w
$3VCZ͔Β+3VCZҠߦ w SCFOWͰΓସ͑Δ͚ͩ w $3VCZ΄ͲͷύϑΥʔϚϯεΛग़ͤͣ
࠷ऴతͳղܾ
w ͨ·ͨ·ࢥཱ͍ͬͯͰ࣮ࢪ w ઃܭશ͘ಉ͡ w νϡʔχϯάͷ༨͕ߴ͔ͬͨͷͰ վΊͯύϑΥʔϚϯενϡʔχϯά w SVCZͰ͖ͬͪΓ࡞͍͓͔ͬͯͨ͛ IUUQTHPMBOHPSHEPDHPQIFSHPQIFSDPMPSQOH
ࠓޙͷల։ͱ·ͱΊ
ࠓޙͷల։ w ӡ༻վળΛଓ͚Δ w ৽ػೳՃΛߦ͏ w ϝϯςφϯε͠ଓ͚Δ w ར༻֦େΛߦ͏
ӡ༻ w ଟ͘ͷαʔόΛࣗࣾӡ༻͖ͯͨ͠ϊϋ w ଟ͍͕ྔখ͍͞τϥϑΟοΫ w ίΞαʔϏεͱಉϨϕϧͷମ੍ w σϓϩΠγεςϜɺϩάऩूγεςϜ w
άϥϑԽɺΞϥʔτɺࢹମ੍
·ͱΊਅ໘ͳ։ൃ w ৴པͰ͖Δಓ۩ͱؒͨͪ w ʹண͍ͨɺجຊʹ࣮ͳγεςϜઃܭ w ԦಓͷύϑΥʔϚϯενϡʔχϯά
ٕज़ࣄۀΛ ࢧ͑Δྗͦͷͷ