$30 off During Our Annual Pro Sale. View Details »

FastContainerアーキテクチャ概論 / Reactive, Stateless and Mortal Architecture for Web Applications

FastContainerアーキテクチャ概論 / Reactive, Stateless and Mortal Architecture for Web Applications

Reactive, Stateless and Mortal Architecture for Web Applications

松本亮介 / ペパボ研究所
GMOペパボ ホスティング技術カンファレンス
~破壊的イノベーションをおこす革新的技術~

MATSUMOTO Ryosuke
PRO

December 15, 2016
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Technology

Transcript

  1. 3FBDUJWF 4UBUFMFTTBOE.PSUBM"SDIJUFDUVSFGPS8FC"QQMJDBUJPOT
    দຊ྄հϖύϘݚڀॴ
    (.0ϖύϘϗεςΟϯάٕज़ΧϯϑΝϨϯε
    ʙഁյతΠϊϕʔγϣϯΛֵ͓͜͢৽తٕज़ʙ
    'BTU$POUBJOFSΞʔΩςΫνϟ֓࿦

    View Slide

  2. ओ੮ݚڀһγχΞɾϓϦϯγύϧΤϯδχΞ
    দຊ྄հ!NBUTVNPUPSZ
    ϖύϘݚڀॴ
    IUUQSFTFBSDINBUTVNPUPSKQ

    View Slide

  3. 'BTU$POUBJOFSΞʔΩςΫνϟ֓࿦
    wͳʹΛ΍Γ͍ͨͷ͔
    w͜Ε·Ͱͷ՝୊
    wٕज़ʹΑ࣮ͬͯݱ͍ͨ͜͠ͱ
    w'BTU$POUBJOFSΞʔΩςΫνϟ
    w·ͱΊͱࠓޙͷऔΓ૊Έ

    View Slide

  4. ͳʹΛ΍Γ͍ͨͷ͔

    View Slide

  5. Πϯλʔωοτར༻ऀ͕շదʹ
    දݱͰ͖Δ৔ॴΛఏڙ͍ͨ͠

    View Slide

  6. Πϯλʔωοτར༻ऀ
    wΤϯδχΞҎ֎ͷਓͨͪ
    wΤϯδχΞ

    View Slide

  7. 4/4ͷ೥୅ผར༻཰
    ʢग़యʣ૯຿লʮࣾձ՝୊ղܾͷͨΊͷ৽ͨͳ*$5αʔϏεɾٕज़΁ͷਓʑͷҙࣝʹؔ͢Δௐࠪݚڀʯʢฏ੒೥ʣ
    IUUQXXXTPVNVHPKQKPIPUTVTJOUPLFJXIJUFQBQFSKBIIUNMODIUNM

    View Slide

  8. ඼࣭ͷߴ͍ίϯςϯπͰ͋Ε͹
    ୭΋͕4/4Λհ֦ͯ͠ࢄ͠΍͘͢ͳͬͨ

    View Slide

  9. αʔόμ΢ϯ͸
    ֦ࢄ࣌ͷ࠷΋وॏͳػձΛୣ͏

    View Slide

  10. ΤϯδχΞҎ֎Ͱ΋΋ͪΖΜ
    ࠷΋֦ࢄ͍ͯ͠ΔػձΛಀͨ͘͠ͳ͍

    View Slide

  11. ؆୯ʹεέʔϧͯ͠ཉ͍͠

    View Slide

  12. ͜Ε·Ͱͷ՝୊

    View Slide

  13. Α͋͘ΔΦʔτεέʔϧ
    wར༻ऀʹಠࣗ࢓༷Λཁٻ
    wಠࣗ࢓༷Ͱॻ͚͹ࣗಈతʹϦιʔεΛׂΓ౰ͯ
    wΤϯδχΞҎ֎ʹ͸೉͍͠
    w͜Ε·ͰͷϨϯλϧαʔόͰ͸࢓্༷೉͍͠

    View Slide

  14. Α͋͘ΔεέʔϧΞοϓ
    w714ͷΠϝʔδΛεφοϓγϣοτ
    wੑೳྑ͍714ʹΠϝʔδΛద༻ͯ͠࠶ىಈ
    wϦΞϧλΠϜੑ͕௿͍
    w࠶ىಈͨ͘͠ͳ͍
    wͳΜ͔ͩΜͩͰΤϯδχΞҎ֎ʹ͸೉͍͠

    View Slide

  15. Α͋͘ΔεέʔϧΞ΢τ
    wߴෛՙ࣌ʹखಈͰ7.Λ௥Ճ
    wෛՙʹԠͯࣗ͡ಈͰ7.Λ௥Ճ
    wϦΞϧλΠϜੑ͕௿͍ɾεέʔϧ͢Δ·Ͱʹख஗Ε
    wߴ౓ͳεΩϧ͕ඞཁ

    View Slide

  16. ୯ʹ714Λ࢖͍͍ͨΘ͚Ͱ͸ͳ͍
    wΧʔωϧΛ͍͡Γ͍ͨΘ͚͡Όͳ͍
    wࣗ༝ʹϛυϧ΢ΣΞΛ্ཱ͍ͪ͛ͨ
    wͰ͖Δ͚ͩੑೳ΍Մ༻ੑΛ୲อ͍ͨ͠
    wͰ͖Ε͹ӡ༻΋ຊ౰͸ͨ͘͠ͳ͍

    View Slide

  17. ϨϯλϧαʔόͷΑ͏ʹ࢝ΊΒΕͯ
    714ͷΑ͏ʹࣗ༝౓͕ߴ͘
    Ϋϥ΢υαʔϏεͷΑ͏ʹ֦ுੑͷߴ͍
    8FCΞϓϦέʔγϣϯͷ
    ϗεςΟϯάαʔϏε͕ཉ͍͠

    View Slide

  18. ಉ࣌ʹγϯϓϧͰӡ༻͠қ͍
    γεςϜΞʔΩςΫνϟΛ࣮ݱ͍ͨ͠

    View Slide

  19. ٕज़ʹΑ࣮ͬͯݱ͍ͨ͜͠ͱ

    View Slide

  20. ࣮ݱ͍ͨ͜͠ͱ̍ʢར༻ऀ໨ઢʣ
    w࢖͏ͨΊͷಠࣗ࢓༷͕ۃྗٻΊΒΕͳ͍
    wઐ໳తͳ஌͕ࣝͳͯ͘΋ར༻Մೳ
    wΧελϚΠζͨ͠8PSE1SFTT͕ී௨ʹ࢖͑Δͱ͔
    wίϯςϯπҎ֎͸Ϛωʔδυ͕Մೳ
    wকདྷతʹ͸714తͳ࢖͍ํ΋ݟਾ͑ͨઃܭ

    View Slide

  21. ࣮ݱ͍ͨ͜͠ͱ̎ʢར༻ऀ໨ઢʣ
    w࠶ىಈͳ͘ଈ࣌ʢΦʔτʣεέʔϧΞοϓՄೳ
    wϦΫΤετܖػͰʢΦʔτʣεέʔϧΞ΢τՄೳ
    wΞϓϦέʔγϣϯىಈத͚ͩ՝ۚର৅
    wΠϕϯτυϦϒϯͰΞϓϦέʔγϣϯΛىಈՄೳ

    View Slide

  22. ࣮ݱ͍ͨ͜͠ͱ̏ʢࣄۀऀ໨ઢʣ
    wෳࡶͳγεςϜίϯϙʔωϯτͷ࿈ܞΛݮΒ͢
    wঢ়ଶΛ࣋ͭɾ࣋ͨͳ͍Λ໌֬ʹ෼཭
    w੾Γ෼͚΍ϝϯςφϯε౳ӡ༻͠қ͍γεςϜઃܭ

    View Slide

  23. 'BTU$POUBJOFSΞʔΩςΫνϟ

    View Slide

  24. JNNPSUBM

    View Slide

  25. ࢮͳͳ͍ɺෆࢮ਎ͷ

    View Slide

  26. 8FCΞϓϦέʔγϣϯͷϓϩηε͸
    JNNPSUBM͕ٻΊΒΕ͖ͯͨ

    View Slide

  27. TIPSUMJWFE

    View Slide

  28. ୹໋ͷɺ͔ͭͷؒͷɺ͸͔ͳ͍

    View Slide

  29. όονॲཧ΍πʔϧྨ͸֓ͶTIPSUMJWFE

    View Slide

  30. NPSUBM

    View Slide

  31. ࢮΛ໔Εͳ͍ɺࢮ͢΂͖ӡ໋ͷ

    View Slide

  32. 'BTU$POUBJOFSJTNPSUBM

    View Slide

  33. 'BTU$(*JTBMTPNPSUBM

    View Slide

  34. 'BTU$(*Ϟσϧ
    'BTU$(*QSPDFTT QIQDHJJOEFYQIQ
    'BTU$(*QSPDFTT
    GPSL

    ҰఆظؒܦաޙUFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    Ұఆظؒ࢖͍·Θ͢
    8FCαʔόͰ$(*Λ࣮ߦ͢ΔͨΊͷͻͱͭͷΞʔΩςΫνϟ

    View Slide

  35. 'BTU$(*Ϟσϧ
    'BTU$(*QSPDFTT QIQDHJJOEFYQIQ
    'BTU$(*QSPDFTT
    GPSL

    ҰఆظؒܦաޙUFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    Ұఆظؒ࢖͍·Θ͢
    8FCαʔόͰ$(*Λ࣮ߦ͢ΔͨΊͷͻͱͭͷΞʔΩςΫνϟ
    ඇৗʹNPSUBMͳৼΔ෣͍

    View Slide

  36. 'BTU$(*ͷϝϦοτ
    w$(*ͱൺֱͯ͠ϦΫΤετຖͷϓϩηεੜ੒ഁغΛߦ
    Θͳ͍ͨΊੑೳ͕ߴ͍
    wҰఆ࣌ؒͰϓϩηεഁغ͕ߦΘΕΔͨΊϓϩηε਺͕
    ૿͑ଓ͚Δ͜ͱͳ͘Ϧιʔεޮ཰΋ൺֱతྑ͍
    w$(*JTTIPSUMJWFE IUUQEJTJNNPSUBM

    View Slide

  37. 'BTU$(*ΛϞμϯʹߟ࡯
    w&WFOU%SJWFOʹ8FCαʔόΛىಈՄೳ
    w8FCαʔόΛ࢖͍ࣺͯ͢ΔJNNVUBCMFͳॲཧ
    wҰఆظؒϓϩηεϓʔϧՄೳͳॲཧํࣜ
    3FBDUJWFͰ4UBUFMFTTʹಈ࡞͢ΔNPSUBMͳ8FCαʔ
    όϞσϧͰ͋Δ
    ͱ΋ݴ͑Δ

    View Slide

  38. 'BTU$(*ΛԠ༻
    wىಈର৅Λ$(*͔Βίϯςφ΁
    wίϯςφىಈ͕஗͍΋ͷ͸$3*6ͰΠϝʔδԽ
    wϦΫΤετܖػͰίϯςφΛىಈͤ͞Δ
    wίϯςφͰ͋Ε͹ىಈ͕଎͘Ԡ༻ՄೳͰ͸ͱ͍͏ൃ૝

    View Slide

  39. 'BTU$POUBJOFS

    View Slide

  40. 8FCΞϓϦέʔγϣϯ࣮ߦج൫ͱͯ͠ͷ
    'BTU$(*Λ࣮ݱ͢Δ

    View Slide

  41. 'BTU$POUBJOFSJTSFBDUJWF TUBUFMFTT
    BOENPSUBMBSDIJUFDUVSF
    GPS8FCBQQMJDBUJPOT

    View Slide

  42. 'BTU$POUBJOFSϑϩʔ֓ཁ
    )PTU04
    'BTU$POUBJOFS
    )PTU04
    8FC1SPYZ
    -PDBM
    8FC1SPYZ
    4UPSBHF
    $.%#
    DPOUBJOFS
    FOHJOF
    -74
    $MJFOU
    8FC1SPYZ
    8FC1SPYZ
    -74
    -74
    ίϯςφ
    ৔ॴऔಘ
    ίϯςφ΁
    ϓϩΩγ
    ίϯςφ΁ϓϩΩγ
    ϓϩΩγઌ͕ෳ਺͋Δ৔
    ߹͸͍ͣΕ͔Λબ୒
    ίϯςφىಈࢦࣔ
    ʢίϯςφఀࢭ࣌ʣ
    ίϯςφىಈ
    ʢίϯςφఀࢭ࣌ʣ
    ίϯςφ΁
    ϓϩΩγ
    ίϯςφ΁
    ΞΫηε
    'BTU$POUBJOFS
    'BTU$POUBJOFS
    'BTU$POUBJOFS
    8FC1SPYZ
    -PDBM
    ίϯςφ৘ใऔಘ
    ʢίϯςφఀࢭ࣌ʣ
    $MJFOU
    $MJFOU
    $MJFOU
    $MJFOU

    View Slide

  43. ϦΫΤετܖػͷίϯςφىಈ֓ཁ
    8FC1SPYZ
    ʢOHY@NSVCZ

    $.%#
    -PDBM8FC1SPYZ
    OHY@NSVCZ

    -74 ίϯςφ
    ίϯςφ
    ίϯςφ
    PSϙʔτΛ
    8FC1SPYZ΁ྲྀ͢
    )551ϦΫΤετ͔Β
    )PTUOBNFΛΩʔʹɺ
    $.%#͔Βϗετ04ͷ*1
    ΞυϨεͱίϯςφͷ*1Ξ
    υϨεͱϙʔτ౳Λऔಘ
    )551 4

    ϦΫΤετ
    ίϯςφͷ*1ΞυϨεɾϙʔτ
    ʹج͍ͯίϯςφʹϓϩΩγɻ
    ίϯςφͷ*1ΞυϨεɾϙʔτ
    ͸ɺ8FC1SPYZ͔Βϔομͱ
    ͯ͠෇༩͞Εͯ͘Δɻ
    ίϯςφ͕-JTUFO͍ͯ͠ͳ͍৔
    ߹͸$.%#͔Βίϯςφ৘ใ
    Λಘͯىಈͤ͞Δɻ
    $POUBJOFS&OHJOF
    IBDPOJXB

    Πϯλʔωοτ
    ϓϥΠϕʔτ
    ωοτϫʔΫ
    $MJFOU

    View Slide

  44. 'BTU$POUBJOFSͷγεςϜ؅ཧଆͷಛ௃
    w$.%#ʹऩ༰ઌΛ௥Ճ͢Δ͚ͩͰεέʔϧΞ΢τՄೳ
    wεέʔϧΞ΢τͯ͠΋͍Βͳ͘ͳͬͨΒউखʹఀࢭ
    wίϯςφͳͷͰىಈͨ͠··εέʔϧΞοϓՄೳ
    wίϯςφͷϗετؒҠಈ΍ෳ੡ɾഁغ͕༰қ
    wγεςϜ΍ϥΠϒϥϦ͕౎౓࠷৽ͷঢ়ଶ΁

    View Slide

  45. 8FCBQQίϯςφߴूੵ࣌ͷ෼ྨ
    JNNPSUBM TIPSUMJWFE NPSUBM
    ੑೳ ̋ ✕ ˚
    Ϧιʔε ✕ ˚ ̋
    εέʔϧ ˚ ̋ ̋
    ӡ༻ɾอक ✕ ̋ ̋
    ϓϩηεྫ
    ىಈͬ͠ͺͳ͠ͷ
    ίϯςφ
    ϦΫΤετ୯ҐͰ
    ίϯςφىಈ
    'BTU$POUBJOFS

    View Slide

  46. 'BTU$POUBJOFS࣌ͷσʔλઃܭྫ
    ετϨʔδ
    ϗετ04 ϗετ04
    ϚελʔγεςϜΠϝʔδ
    'BTU$POUBJOFSӡ༻ର৅ʣ
    Ϛελʔ8ϛυϧ΢ΣΞΠϝʔδ
    'BTU$POUBJOFSӡ༻ର৅ʣ
    "ϢʔβσʔλྖҬ
    WBSMJCIBDPOJXBDPOUBJOFS" VTSMPDBMBQBDIF IUEPDT
    #ϢʔβσʔλྖҬ
    WBSMJCIBDPOJXBDPOUBJOFS# VTSMPDBMBQBDIF IUEPDT
    $ϢʔβσʔλྖҬ
    WBSMJCIBDPOJXBDPOUBJOFS$
    Ϛελʔ44)ϛυϧ΢ΣΞΠϝʔδ
    ӡ༻ର৅ʣ
    WBSMJCIBDPOJXBDPOUBJOFS%
    IPNFVTFS
    VTSMPDBMTTIE
    Ϛ΢ϯτ
    Ϛ΢ϯτ

    View Slide

  47. 'BTU$POUBJOFS࣌ͷωοτϫʔΫߏ੒ྫ
    )PTU04
    -PDBM8FC1SPYZ
    $POUBJOFS&OHJOF
    $POUBJOFS.BOBHFS
    CS
    $POUBJOFS
    OFUOT
    WFUI
    /*$
    $POUBJOFS
    OFUOT
    WFUI
    4FSWJDF
    /FUXPSL
    8FC1SPYZ
    FUI
    -74
    FUI
    FUI
    *OUFSOFU
    )PTU04
    -PDBM8FC1SPYZ
    $POUBJOFS&OHJOF
    $POUBJOFS.BOBHFS
    CS
    $POUBJOFS
    OFUOT
    WFUI
    /*$
    $POUBJOFS
    OFUOT
    WFUI
    $.%#
    FUI
    FUI
    FUI
    FUI
    .BOBHFE
    /FUXPSL
    FUI
    4UPSBHF
    /FUXPSL
    FUI FUI
    4UPSBHF

    View Slide

  48. ·ͱΊ

    View Slide

  49. ·ͱΊ
    wΤϯδχΞҎ֎ͷਓͨͪͰ΋࢖͑Δշదͳ৔ॴͷఏڙ
    w৽͍͠ΞʔΩςΫνϟʹΑͬͯ՝୊Λٕज़తʹղܾ
    w'BTU$POUBJOFSΞʔΩςΫνϟͷఏҊ
    w8FCΞϓϦέʔγϣϯΛNPSUBMʹ࣮ߦ͢Δ
    wաڈͷރΕٕͨज़͕࣌୅എܠͱڞʹ࠶౓׆͖Δ

    View Slide

  50. ࠓޙͷऔΓ૊Έ

    View Slide

  51. 'BTU$POUBJOFSͷΑ͏ʹഁյͱ࠶ߏஙΛ
    NPSUBMʹߦ͍ͳ͕Βಈతʹฏߧঢ়ଶΛอͪ
    ͦͷଞίϯϙʔωϯτΛωοτϫʔΫΛհͯ͠
    แׅ͢ΔγεςϜ

    View Slide

  52. %JNFOTJPOGSFF"VUPOPNPVT
    0QFSBUJOH4ZTUFN
    ͱఆٛ

    View Slide

  53. %"04

    View Slide

  54. %"04ʹ͓͚Δϓϩηε͸
    ಈతฏߧͷܥʹ͋Δ7.ͷΑ͏ͳ΋ͷ

    View Slide

  55. %"04ʹ͓͚ΔεϨου͸
    'BTU$POUBJOFSͷίϯςφͷΑ͏ͳ΋ͷ

    View Slide

  56. %"04ʹ͓͚ΔεϨουΛ.PSUBMͱ໋໊

    View Slide

  57. %"04Ͱͷ֤ίϯϙʔωϯτ͸ωοτϫʔΫΛհͯ͠઀ଓ͢Δ
    %"04ͷΠϝʔδ
    -JOVY -JOVY -JOVY -JOVY
    %"04ͷγεςϜίʔϧϨΠϠʔʢ)BDPOJXBʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    .PSUBM
    %"04ͷεϨουʣ
    %"04
    Ϣʔβϥϯυ
    %"04
    Χʔωϧ

    View Slide

  58. %"04Λج൫ͱͨ͠
    ͳΊΒ͔ͳγεςϜ΁

    View Slide

  59. View Slide

  60. ݚڀһੵۃతʹืूத
    IUUQSBOEQFQBCPDPN

    View Slide