Slide 1

Slide 1 text

҆৺ͯ͠ ϑϨʔϜϫʔΫΛ ͷΓ͔͍͑ͨ

Slide 2

Slide 2 text

ࣗݾ঺հ • @takanamito • גࣜձࣾ Speee ৽ଔ3೥໨ • ւ֎ϝσΟΞࣄۀ෦ • ւ֎޲͚ͷਓࡐܥϝσΟΞ࡞ͬͯ·͢

Slide 3

Slide 3 text

ւ֎ϝσΟΞ 2015೥຤ • ਺ඦສPV / ݄ • 2೥΄ͲFuelPHP͕Քಇ • 1action 100~200ߦͷcontroller͕ෳ਺ • ແବͳϖʔδ͕ͨ͘͞Μ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

FuelPHP -> Ruby on Rails

Slide 6

Slide 6 text

ϦϓϨʔεཁ݅ • FuelPHPΛ୤٫͍ͨ͠ • ϚελσʔλΛ࡮৽͍ͨ͠ • URLΛ࡮৽͍ͨ͠ • σβΠϯϦχϡʔΞϧ͍ͨ͠

Slide 7

Slide 7 text

͍͢͝ා͍ • ϑϨʔϜϫʔΫ͕มΘΔ • Ϛελσʔλ͕มΘΔ • 10ສҎ্ͷURL͕มΘΔ • چURL͔Β৽URLʹਖ਼͘͠301ϦμΠϨΫτ͠ ͳ͍ͱ͍͚ͳ͍

Slide 8

Slide 8 text

ࣄલݕূ • ಛʹॏཁͳϦμΠϨΫτॲཧͷ
 ϩδοΫͱσʔλͷςετ • ෛՙݕূ • ΞϓϦέʔγϣϯશମͷಈ࡞ݕূ

Slide 9

Slide 9 text

kage • https://github.com/cookpad/kage • γϟυ΢ϓϩΩγαʔόʔͷgem • cookpadࣾ੡ • ຊ൪ͷτϥϑΟοΫΛෳ੡͠։ൃαʔόʔʹྲྀ͢

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

nginxͰϩʔυόϥϯε upstream backend { server 127.0.0.1:9000 weight=9; server 10.0.0.1:8000; }

Slide 12

Slide 12 text

kage Kage::ProxyServer.start do |server| server.port = 8000 server.host = '0.0.0.0' server.add_master_backend(:production, 'localhost', 80) server.add_backend(:sandbox, 'localhost', 80) server.on_select_backends do |request, headers| if request[:method] == 'GET' [:production, :sandbox] else [:production] end end ~~ தུ ~~ end def compare(production_res, sandbox_res, url) # ͜ͷลͰresponseݟͯϩάग़ͨ͠Γ͢Δ end

Slide 13

Slide 13 text

kageͷϩά IUUQTUBUVTʹࠩ෼͕͋Δ63-Λग़ྗ

Slide 14

Slide 14 text

΍ͬͯΑ͔ͬͨ͜ͱ • ຊ൪τϥϑΟοΫͰࣄલʹݕূͰ͖Δ • ςετ࿙ΕʹରԠՄೳ • ७ਮͳςετέʔεͷ࿙Ε • ϩδοΫ͸߹ͬͯͯ΋σʔλ͕͓͔͍͠