Slide 1

Slide 1 text

SPDYಋೖ෺ޠ 10/15 2015 Goodpatch, Inc. ԘӜ ੣ (PPEQBUDI&OHJOFFS.FFUVQ7PM ͳͥɺզʑ͸)"1SPYZ͔Β/HJOYʹ ੾Γସ͑ͳ͚Ε͹ͳΒͳ͔ͬͨͷ͔

Slide 2

Slide 2 text

ԘӜɹ੣ @urapico ɾPrott αʔόʔαΠυɾΠϯϑϥ ɾEmacs / Atom ɾ࠷ۙ : YAML / Ruby / JavaScript

Slide 3

Slide 3 text

41%:  ಋೖɺͦͯ͠ʜ  )"1SPYZͱͷ֨ಆ  ͜Μʹͪ͸ɺ/HJOY  ΞδΣϯμ

Slide 4

Slide 4 text

41%:ʁ  BCPVU41%:

Slide 5

Slide 5 text

SPDY? • Google ͕ఏএ͍ͯ͠ΔWWWͷϓϩτίϧ • HTTP/2΁ʢRFC ඪ४Խʣ • SSLඞਢ • Webදࣔͷߴ଎Խ

Slide 6

Slide 6 text

SPDY? • ϖʔδϩʔυ͕ଳҬ෯ͱ͸ൺྫͯ͠ͳ͍ • TCPίωΫγϣϯΛ̍ͭʹ·ͱΊΔ • ಉ࣌ʹϦιʔεͷϦΫΤετॲཧ͕Մೳʹ • ಡΈࠐ·ΕΔϦιʔεͷ਺ΛݮΒ͢ΑΓɺϑΝΠ ϧαΠζΛখ͘͢͞Δํ͕ޮՌత • CSS Spritesͱ͔͸ɺٯޮՌʂʁ

Slide 7

Slide 7 text

ಋೖ͢Δͧʂ ·ͣ͸ɺϕϯνΛʂʂ

Slide 8

Slide 8 text

ϕϯνϚʔΫπʔϧͷ஫ҙ SPDYͷϓϩτίϧΛ஻Δ πʔϧ͡Όͳ͍ͱଌఆͰ͖ͳ͍

Slide 9

Slide 9 text

h2load in nghttp2

Slide 10

Slide 10 text

ϕϯν݁Ռ *ϩʔΧϧ؀ڥͰ؆қతʹ࣮ࢪ

Slide 11

Slide 11 text

ϕϯν݁Ռ *ϩʔΧϧ؀ڥͰ؆қతʹ࣮ࢪ վળ͕ݟࠐΊͨ

Slide 12

Slide 12 text

ಋೖɺͦͯ͠ʜ 

Slide 13

Slide 13 text

• Load Balancer ʢL7ʣ • SSLͷऴ୺ • SPDYରԠʢઃఆมߋʣ

Slide 14

Slide 14 text

Why HAProxy? PrimusͳͲͰɺਪ঑͞Ε͍ͯͨΓ… IUUQTHJUIVCDPNQSJNVTQSJNVT

Slide 15

Slide 15 text

Why HAProxy? PrimusͳͲͰɺਪ঑͞Ε͍ͯͨΓ… IUUQTHJUIVCDPNQSJNVTQSJNVT ͿͬͪΌ͚ Joinͨ࣌͠ʹ͸ɺ ͢Ͱʹಋೖ͞Ε͍ͯͨͷͰ…

Slide 16

Slide 16 text

αʔόʔߏ੒ user LB sv Amazon S3 CloudFront AP sv AP sv DB svs Cache sv Private Network

Slide 17

Slide 17 text

6/4 SPDYରԠ΁ HAProxyͷઃఆΛมߋͯ͠

Slide 18

Slide 18 text

6/4 SPDYରԠ΁ HAProxyͷઃఆΛมߋͯ͠ ΫϥΠΞϯταΠυͰͷ վળͷͨΊ ࣮ࡍͷޮՌଌఆ͕೉͍͠ ࠓޙͷ՝୊

Slide 19

Slide 19 text

ಋೖɺͦͯ͠… • ΞΫηεϩά͕࣮ଶͱဃ཭͍ͯ͠Δঢ়ଶ΁ • ΞΫηεݩͷIPΞυϨε͕શͯɺ
 Load BalancerͷIPΞυϨεʹͳͬͯΔ!! • ೔ຊͰͷࣄྫ͕ҟৗʹগͳ͍ • ͳΜͱ͔͠ͳ͍ͱʼʻ

Slide 20

Slide 20 text

)"1SPYZͱͷ֨ಆ  )"1SPYZʜ

Slide 21

Slide 21 text

HAProxyͱͷ֨ಆ • L7 → L4 ͷLB΁ • L4͔ΒHTTPϔομʔͷΞΫηεෆೳ • forwardfor option͕ແޮ • ಁաϓϩΩγʔͳΒ࣮ݱͰ͖Δʂʂ

Slide 22

Slide 22 text

ಁաϓϩΩγʔ • iptablesΛઃఆ࣮ͯ͠ݱ͢Δ • ઃఆ͢Δͷ͕ඇৗʹ೉͍͠ • ஌ݟ͕ͳ͍ • ઃఆϛε͕αʔϏεશମͷμ΢ϯ΁

Slide 23

Slide 23 text

ಁաϓϩΩγʔ • iptablesΛઃఆ࣮ͯ͠ݱ͢Δ • ઃఆ͢Δͷ͕ඇৗʹ೉͍͠ • ஌ݟ͕ͳ͍ • ઃఆϛε͕αʔϏεશମͷμ΢ϯ΁ ࢥ͍೰Μͩ݁Ռ …

Slide 24

Slide 24 text

w ಋೖ͢Δͧʂ /HJOY͕࢖͍͍ͨͰ͢ɾɾɾ

Slide 25

Slide 25 text

͜Μʹͪ͸ɺ/HJOY  )FMMP/HJOY

Slide 26

Slide 26 text

• ίϛϡχςΟʔɾ։ൃ͕׆ൃ • LBͱͯ͠ͷར༻ࣄྫ΋ଟ͍ • ׳Ε͍ͯΔ (HAProxyΑΓ) • L7ͰSPDYʹରԠՄೳʂʂ

Slide 27

Slide 27 text

• ίϛϡχςΟʔɾ։ൃ͕׆ൃ • LBͱͯ͠ͷར༻ࣄྫ΋ଟ͍ • ׳Ε͍ͯΔ (HAProxyΑΓ) • L7ͰSPDYʹରԠՄೳʂʂ ੾Γସ͑ͯ΋ ໰୊͕ͳ͍ͷ͔ ϕϯνΛ࣮ࢪ

Slide 28

Slide 28 text

઀ଓ਺͕ଟ͍؀ڥʹΑͬͯ͸ɺ)"1SPYZΑΓྑ͍਺ࣈ͕ग़Δ ϕϯνϚʔΫɹ

Slide 29

Slide 29 text

ࣄલʹϦΧόϦʔͷखॱ΋ؚΊͯ2JJUB5FBNͰڞ༗

Slide 30

Slide 30 text

8/11 ೖΕସ࣮͑ࢪ HAProxy͔ΒNginx΁

Slide 31

Slide 31 text

Nginx΁ೖΕସ͑ͨ݁Ռ… *HAProxyΑΓେ෯ʹϨΠςϯγʔͷվળ΁

Slide 32

Slide 32 text

Nginx΁ೖΕସ͑ͨ݁Ռ… *HAProxyΑΓେ෯ʹϨΠςϯγʔͷվળ΁ ϨΠςϯγʔ͕ ໿3.4ഒվળ

Slide 33

Slide 33 text

·ͱΊ

Slide 34

Slide 34 text

·ͱΊ SPDYΛಋೖ͠Α͏ͱ͚ͨͩ͠ͳͷʹɺ ؾ෇͍ͨΒɺLBͷϛυϧ΢ΣΞΛ มߋ͢ΔӋ໨ʹ…

Slide 35

Slide 35 text

·ͱΊ ࠓޙ΋ɺੵۃతʹϛυϧ΢ΣΞͷࠩ͠ସ͑΍ɺ όʔδϣϯΞοϓ͸ߦ͍ͬͯ͘ ΋ͪΖΜɺHTTP/2ʹ΋ॱ࣍ରԠ͍͖͍ͯͨ͠

Slide 36

Slide 36 text

·ͱΊ ࠓޙ΋ɺੵۃతʹϛυϧ΢ΣΞͷࠩ͠ସ͑΍ɺ όʔδϣϯΞοϓ͸ߦ͍ͬͯ͘ ΋ͪΖΜɺHTTP/2ʹ΋ॱ࣍ରԠ͍͖͍ͯͨ͠ Nginx HAProxy H2O

Slide 37

Slide 37 text

·ͱΊ ϑϩϯταΠυͷ ϨΠςϯγʔͷଌఆ͸ɺ೉͍͠ ਪଌ͢Δͳܭଌ͠Ζʂ ʊਓਓਓਓ ਓਓਓਓʊ ʼ վળ͍͖ͯ͠·͢ʂʂ ʻ ʉY^Y^Y^Y^Y^Y^Y^Yʉ

Slide 38

Slide 38 text

͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠