Slide 1

Slide 1 text

͘͞ΒΠϯλʔωοτגࣜձࣾ (C) Copyright 1996-2018 SAKURA Internet Inc ͘͞ΒΠϯλʔωοτݚڀॴ FastContainerΛϝʔϧج൫΁ద༻ - ਫ਼៛ʹ੍ޚՄೳͳ߃ৗੑͷ͋Δ ߴूੵϚϧνΞΧ΢ϯτܕͷϝʔϧج൫ 2018/11/17 ্ڃݚڀһ দຊ ྄հ ୈ3ճWeb System Architectureݚڀձˏ౦ژ #wsaݚ

Slide 2

Slide 2 text

2 ɾ͘͞ΒΠϯλʔωοτݚڀॴ ্ڃݚڀһ ɾגࣜձࣾGrooves Forkewll ٕज़ސ໰ ɾϖύϘݚڀॴ ٬һݚڀһ ݚڀސ໰ ɾηΩϡϦςΟɾΩϟϯϓߨࢣ ɾ৘ใॲཧֶձ Πϯλʔωοτͱӡ༻ٕज़ݚڀձ ֤छҕһ ɾژ౎େֶത࢜ʢ৘ใֶʣ দຊ྄հ / ·ͭ΋ͱΓʔ / @matsumotory

Slide 3

Slide 3 text

3 1. എܠͱ໨త 2. ఏҊख๏ͷઃܭͱ࣮૷ 3. ·ͱΊͱࠓޙͷ՝୊ ໨࣍ ຊൃද͸ҎԼͷݚڀൃදΛൃలͤͨ͞΋ͷͰ͋Δɻ দຊ ྄հ, খా ஌ԝ, ּݪ ٛߊ, ౢ٢ ོ෉, ۚࢠߊհ, ܀ྛ ݈ଠ࿠, Ԭଜ ߞೋ, ਫ਼៛ʹ੍ޚՄೳͳ߃ৗੑͷ͋ΔߴूੵϚϧ νΞΧ΢ϯτܕͷϝʔϧج൫, ϚϧνϝσΟΞɺ෼ࢄɺڠௐͱϞόΠϧʢDICOMO2018ʣγϯϙδ΢Ϝ, 7C-1, Jul 2018.

Slide 4

Slide 4 text

1. എܠͱ໨త

Slide 5

Slide 5 text

5 ɾࠓ΋޿͘࢖ΘΕ͍ͯΔϝʔϧ ɾϝʔϧαʔϏεࣄۀऀ΋·ͩ·ͩݱ໾ ɾϋʔυ΢ΣΞίετΛޮ཰ར༻͢ΔͨΊʹΞΧ΢ϯτΛߴूੵԽ ɾେྔૹ৴ɺspamϝʔϧɺϝʔϧ஗ԆɺΞΧ΢ϯτ৐ͬऔΓ ɾ݁ՌతʹγεςϜ؅ཧɾϢʔβαϙʔτίετͷ૿Ճ ɾಛఆͷΞΧ΢ϯτ΍υϝΠϯͷϦιʔεઐ༗ʹΑΔෆ҆ఆੑ͕՝୊ ݚڀͷഎܠ

Slide 6

Slide 6 text

6 1. ߴूੵԽͷͨΊʹ୯Ұͷαʔόϓϩηε܈Ͱෳ਺ͷυϝΠϯΛॲཧ ɾυϝΠϯʢԾ૝υϝΠϯʣ୯ҐͰͷ੍ޚػೳ͕ݶఆత ɾશͯͷυϝΠϯʹରͯ͠ಉҰͷಉ࣌઀ଓ౳ͷ੍ݶΛ੩తʹઃఆ ɾ੍ݶա৒ʹΑΓαʔόϦιʔεΛे෼ʹ࢖͍੾Δ͜ͱ͕೉͍͠ 2. υϝΠϯ୯ҐͰαʔόϓϩηε܈Λىಈ ɾϝʔϧιϑτ΢ΣΞ΍ϓϩηε୯Ґͷશͯͷ੍ݶઃఆ͕Մೳ ɾϓϩηε਺͕υϝΠϯ਺ʹґଘͯ͠ߴूੵʹऩ༰Ͱ͖ͳ͍ ैདྷख๏ɿߴूੵϚϧνΞΧ΢ϯτܕͷ੍ݶ

Slide 7

Slide 7 text

7 1. αʔόϓϩηεΛෳ਺ͷυϝΠϯͰڞ༗͢Δํࣜ ɾϝʔϧηογϣϯ୯ҐͰͷϦιʔε෼཭ɾྲྀྔ੍ݶखஈ͕গͳ͍ ɾߴूੵʹऩ༰Ͱ͖ͯ΋Ϧιʔεڝ߹ʹΑΔෆ҆ఆঢ়ଶ͕ੜ͡΍͍͢ 2. υϝΠϯ୯ҐͰαʔόϓϩηεΛىಈ ɾϓϩηε਺͕υϝΠϯ਺ʹԠͯ͡୯ௐ૿Ճ ɾߴूੵʹऩ༰͕Ͱ͖ͳ͍ ैདྷख๏ͷ՝୊·ͱΊ

Slide 8

Slide 8 text

8 ɾୈҰճ ࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫ νϟͱࠓޙͷ՝୊ ɾίϯςφΛϦΞΫςΟϒʹঢ়ଶΛม͑ΒΕΔΞʔΩςΫνϟͷ঺հ ɾ→ FastContainerΞʔΩςΫνϟ ɾୈೋճ HTTPϦΫΤετ୯ҐͰίϯςφΛ࠶഑ஔ͢ΔԾ૝Խج൫ͷߴ଎ͳεέ δϡʔϦϯάख๏ ɾFastContainerͷಛ௃Λ׆͔ͯ͠ϦΞΫςΟϒʹऩ༰ϗετ౳Λ࠶഑ஔ ɾHTTPαʔόʹͱΒΘΕͣʹ࣮ߦج൫ͱͯ͠ͷ൚༻ԽΛਐΊͨ wsaݚ#1ͱ#2ͷൃද

Slide 9

Slide 9 text

9 ɾਫ਼៛ʹղੳՄೳͳ߃ৗੑͷ͋Δϝʔϧج൫ ɾυϝΠϯ୯ҐͰαʔόϓϩηεΛىಈͭͭ͠ΞΫςΟϒͰͳ͍ϓϩηε͸ੵۃ తʹఀࢭͤͯ͞ߴूੵԽΛཱ྆ ɾηογϣϯΛܖػʹҰఆظؒىಈ͠ɺঢ়ଶͷมԽʹૉૣ͘ରԠՄೳͳίϯς φΞʔΩςΫνϟFastContainer*1ΛԠ༻ ɾυϝΠϯ୯ҐͰਫ਼៛ʹղੳ΍ྲྀ༻ɾϦιʔε੍ޚ͕Մೳͳج൫ ɾίϯςφʹΑΔϋʔυ΢ΣΞϦιʔε੍ޚΛυϝΠϯ୯ҐͰ࣮ࢪ ఏҊख๏ ˞দຊ྄հ தా༟و ܀ྛ݈ଠ࿠ )551ϦΫΤετ୯ҐͰΠϯελϯεͷ࠶഑ஔ͕Մೳͳ௿ίετͰߴ଎ͳεέ δϡʔϦϯάख๏ ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢ*05ʣ 7PM*05 QQ +VO

Slide 10

Slide 10 text

2. ఏҊख๏ͷઃܭͱ࣮૷

Slide 11

Slide 11 text

11 ɾߴूੵʹΞΧ΢ϯτɾυϝΠϯΛऩ༰Մೳʢ୯Ұͷαʔόʹ਺ສʣ ɾCPU࿦ཧίΞ24ίΞɺϝϞϦ32GBఔ౓ͷPCαʔόΛ૝ఆ ɾυϝΠϯ୯ҐͰݸผʹਫ਼៛ͰಈతͳΓιʔε੍ޚΛ࣮ݱ ɾҰൠతͳϝʔϧϛυϧ΢ΣΞͷ੍ޚػೳΛυϝΠϯ୯Ґ΁ ɾεέʔϧΞοϓɾΞ΢τɾμ΢ϯɾΠϯʹΑΔϦιʔε੍ޚ΋Մೳ ɾҟͳΔϋʔυ΢ΣΞ΁ͷಁաతͳҠಈ΋૝ఆ ɾυϝΠϯ୯ҐͰݸผʹਫ਼៛ͳηογϣϯ৘ใऩूʢࠓޙͷํ਑ʣ ࣮ݱ͍ͨ͜͠ͱɿ௿Ձ֨Խͱ҆ఆԽʹ޲͚ͯ

Slide 12

Slide 12 text

12 ɾυϝΠϯ୯ҐͰαʔόϓϩηεΛىಈͭͭ͠ΞΫςΟϒͰͳ͍ϓϩηε͸ੵۃ తʹఀࢭͤͯ͞ߴूੵԽΛཱ྆ ɾηογϣϯ୯ҐͰϦΞΫςΟϒʹҰఆ࣌ؒىಈ͠ɺঢ়ଶมԽʹૉૣ͘ରԠՄ ೳͳFastContainerΞʔΩςΫνϟΛԠ༻ ɾυϝΠϯ୯ҐͰίϯςφΛىಈ͠ਫ਼៛ʹྲྀྔɾϦιʔε੍ޚ͕Մೳ ɾϛυϧ΢ΣΞͷ੍ݶશͯΛυϝΠϯʹରͯ͠ద༻Մೳ ɾίϯςφʹΑΔϋʔυ΢ΣΞϦιʔεΛυϝΠϯ୯ҐͰ੍ޚՄೳ ɾίϯςφ୯ҐͰͷϦιʔεෆ଍࣌ʹ͸ߴ଎ʹεέʔϦϯάՄೳ ఏҊ͢Δ߃ৗੑͷ͋Δϝʔϧج൫

Slide 13

Slide 13 text

13 FastContainerɿ߃ৗੑ͔ΒಘΒΕΔ҆ఆੑ ϗετ" ϗετ" ϗετ" ϗετ" ϗετ" Πϯλʔωοτ ϗετ" ϗετ" ϗετ" ΍͕ͯఀࢭ ൓Ԡతʹىಈ ൓Ԡతʹ εέʔϧΞοϓ ऩ༰αʔόA ऩ༰αʔόB ϦΫΤετ ൓Ԡతʹ εέʔϧΞ΢τ • ϗετͷىಈͱఀࢭΛ॥؀ • ৗʹ॥؀͠ଓ͚ΔΞʔΩςΫνϟ • มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑ ঢ়ଶͷมԽͷ଎౓վળΛ௥ٻ ৗʹมԽՄೳͰ͋ΔͨΊಥൃతͳΞ ΫηεूதͷΑ͏ͳมԽʹ΋଱ੑͷ ͋ΔΞʔΩςΫνϟΛ࣮ݱՄೳ

Slide 14

Slide 14 text

14 ɾΞΫςΟϒͳηογϣϯͷΈ͕ίϯςφͱͯ͠ىಈ ɾൺֱతϗεςΟϯάαʔϏεͷΞΫςΟϒϢʔβ͕গͳ͍ࣄʹண໨ ɾSMTPͱIMAPͷηογϣϯ͸৘ใΛσʔλϕʔεʹอଘ ɾকདྷతʹ͸σʔλΛղੳͯ͠ద༻తʹྲྀྔΛ੍ޚ͍ͨ͠ ɾߏ੒৘ใ΍੍ޚઃఆ͸શͯσʔλϕʔεԽͯ͠ݸผ͔ͭಈతʹ੍ޚՄೳ ɾϗετOS͕ఀࢭͯ͠΋ίϯςφ͕ࣗಈతʹผϗετʹҠಈՄೳ FastContainerͱऩ༰ͷߴूੵԽ

Slide 15

Slide 15 text

15 ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN 4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB

Slide 16

Slide 16 text

16 ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN 4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB

Slide 17

Slide 17 text

17 ϝʔϧج൫ͷSMTPૹ৴ϑϩʔৄࡉ ಉҰϗετ 4.513PVUFS OHY@NSVCZ $.%#"1* 4.51ίϯςφ ʢυϝΠϯ୯Ґʣ 4.51ίϯςφ ʢυϝΠϯ୯Ґʣ 4.51ίϯςφ ʢυϝΠϯ୯Ґʣ 4.51'BTU$PO QFSEPNBJO 1PTUpY 4.510VU 1PTUpY 4.51'JMUFS 0VU 7JSVTHX .6" .5" 4.51 %JTQBUDIFS OHY@NSVCZ υϝΠϯʹج͖ͮ)551ܦ༝Ͱͷ ΞΧ΢ϯτɾυϝΠϯೝূͱϓϩ ΩγઌऔಘΛ࣮ࢪ ηογϣϯ৘ใ΋ऩू 4.51ίϯςφ͕ىಈ͍ͯ͠ͳ͚Ε͹ ϦΞΫςΟϒʹҰఆظؒىಈ σʔλऩूɾղੳͱߏ੒؅ཧ $PMMFDU 4FTTJPO%BUB 1NJMUFS

Slide 18

Slide 18 text

18 ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN 4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB

Slide 19

Slide 19 text

19 ϝʔϧج൫ͷSMTPड৴ϑϩʔৄࡉ )PTU04 $.%#"1* *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ -.51'BT$PO QFSEPNBJO %PWFDPU 4.51*O 1PTUpY -.513PVUFS  1PTUpYNSVCZ 4.51'JMUFS*O 7JSVTHX .5" -.51 %JTQBUDIFS 1PTUpYNSVCZ .BJMEJS *OEFY 4UPSBHF 4.51 JOFU -.51 6%4 $PMMFDU 4FTTJPO%BUB 1NJMUFS 4.51 JOFU 4.51 JOFU

Slide 20

Slide 20 text

20 ఏҊ͢Δϝʔϧج൫ͷશମϑϩʔ֓ཁ *."1 'BTU$POUBJOFS 4ZTUFN $.%#"1* 4.51 -.51
 'BTU$POUBJOFS 4ZTUFN 4.51 'BTU$POUBJOFS 4ZTUFN .6" -# -# .5" .BJM%BUB

Slide 21

Slide 21 text

21 ϝʔϧج൫ͷIMAPड৴ϑϩʔৄࡉ )PTU04 *."13PVUFS OHY@NSVCZ $.%#"1* .6" *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1'BT$PO QFSEPNBJO EPWFDPU *."1 %JTQBUDIFS OHY@NSVCZ .BJMEJS *OEFY 4UPSBHF *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ *."1ίϯςφ ʢυϝΠϯ୯Ґʣ $POUSPM 3FTPVSDF NSVCZ *."1 JOFU *."1 JOFU %PWFDPU 1MVHJO σʔλऩूɾղੳͱߏ੒؅ཧ EPWFDPUNSVCZQMVHJO  ίϚϯυ୯ҐͰ$16࢖༻཰౳Λ੍ݶ  ηογϣϯ৘ใ΍ίϚϯυͷৼΔ෣͍౳Λ؅ཧ

Slide 22

Slide 22 text

22 ϓϩτλΠϓ࣮૷

Slide 23

Slide 23 text

3. ·ͱΊ

Slide 24

Slide 24 text

24 ɾઃܭͱ࣮ݧత࣮૷͸׬ྃ ɾϓϩτλΠϓ࣮૷Λߦͬͯ༗ޮੑΛධՁ ɾϦιʔεޮ཰΍ੑೳධՁɺΩϡʔ΍஗ԆͷධՁ ɾϓϩμΫγϣϯ؀ڥʹ͓͚ΔϦιʔε੍ޚͷ༗ޮੑΛධՁ ɾηογϣϯσʔλͷղੳख๏ͷઃܭ ɾηογϣϯσʔλʹجͮ͘υϝΠϯ୯ҐͰͷదԠతͳ੍ޚઃఆ ɾϗετOSҟৗ࣌ʹผϗετʹಁաతʹίϯςφΛϚΠάϨʔγϣϯ ·ͱΊͱࠓޙͷ՝୊

Slide 25

Slide 25 text

25 ɾຊݚڀͰ࢖༻ͨ͠Ϋϥ΢υࢿݯ͸ɼฏ੒29೥౓ࠃཱ৘ใֶݚڀॴΫϥ΢υར ׆༻࣮ূ࣮ݧʹ͓͍ͯఏڙ͞Εͨɽ ɾ·ͨɼຊݚڀ͸ɼҎԼͷݚڀॿ੒Λड͚͍ͯΔɽ ɾদຊ྄հ,খా஌ԝ,ۙ౻Ӊஐ࿕,ּݪٛߊ,Ԭଜߞೋ,ౢ٢ོ෉,ۚࢠߊհ, mruby Λར༻ͨܰ͠ྔίϯςφΫϥ΢υج൫ͷݚڀ։ൃΛհͨ͠mrubyͷେن໛ɾ ߴෛՙςετ, 2017೥౓Ruby Association։ൃॿ੒, 2017೥10݄. ँࣙ