Upgrade to Pro — share decks privately, control downloads, hide ads and more …

go in to microservices(wip)

Yoshiori SHOJI
September 26, 2015

go in to microservices(wip)

Yoshiori SHOJI

September 26, 2015
Tweet

More Decks by Yoshiori SHOJI

Other Decks in Technology

Transcript

  1. ʲੈք࠷େڃʳΫοΫύουͷ
    .JDSPTFSWJDFTԽʲ8*1ʳ
    :PTIJPSJ4IPKJ
    IUUQTXXXqJDLSDPNQIPUPTHVZTJF

    View Slide

  2. View Slide

  3. レベル:
    じんしゅ:
    ヨシオリ
    40
    エンジニア

    View Slide

  4. レベル:
    じんしゅ:
    ヨシオリ
    40
    エンジニア
    ▶ アカウント

    View Slide

  5. レベル:
    じんしゅ:
    ヨシオリ
    40
    エンジニア
    ▶ アカウント
    ギットハブ:
    ツイッター:
    yoshiori
    @yoshiori

    View Slide

  6. レベル:
    じんしゅ:
    ヨシオリ
    40
    エンジニア
    ▶ アカウント
    ギットハブ:
    ツイッター:
    yoshiori
    @yoshiori
    ▶ コミュニティ

    View Slide

  7. レベル:
    じんしゅ:
    ヨシオリ
    40
    エンジニア
    ▶ アカウント
    ギットハブ:
    ツイッター:
    yoshiori
    @yoshiori
    ▶ コミュニティ
    java-ja:
    Asakusa.rb:
    しゅさいしゃ
    ゆうれいぶいん

    View Slide

  8. View Slide


  9. View Slide

  10. .JDSPTFSWJDFT
    IUUQNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM
    ҰຕؠʢϞϊϦγοΫʣʹ࡞ΔͷͰ͸ͳ͘
    ෳ਺ͷܰྔͳαʔϏεΛ૊Έ߹Θͤͯ࡞Δ
    ͱ͍͏Ξϓϩʔν

    View Slide

  11. .JDSPTFSWJDFT
    IUUQNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM
    ҰຕؠʢϞϊϦγοΫʣʹ࡞ΔͷͰ͸ͳ͘
    ෳ਺ͷܰྔͳαʔϏεΛ૊Έ߹Θͤͯ࡞Δ
    ͱ͍͏Ξϓϩʔν
    細かく説明してると
    時間無くなるので
    ググって

    View Slide

  12. View Slide


  13. View Slide

  14. .JDSPTFSWJDF1SFNJVN
    IUUQNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFNJVNIUNM
    ຆͲͷγεςϜ͸ɺ
    ୯ҰͷϞϊϦγοΫΞϓϦέʔγϣϯͱͯ͠
    ߏங͞ΕΔ΂͖Ͱ͢ɻ

    View Slide

  15. View Slide

  16. ͭ·Γ΄ͱΜͲ
    ͷγεςϜ͸ϚΠ
    ΫϩαʔϏεԽ
    ͢΂͖Ͱ͸ͳ͍

    View Slide

  17. View Slide

  18. ͪΐͬͱ͚ͩ
    ໭ͬͯ

    View Slide

  19. ੈք࠷େڃͷ
    ϞϊϦγοΫ3BJMT
    αʔϏε
    [email protected]
    XPSMETMBSHFTUSBJMTNPOPMJUI

    View Slide

  20. ϑΝ΢ϥʔʹઌۦ͚ͯ
    ʮ͜Μ͚ͩσΧΠαΠτͰ΋Ϟ
    ϊϦγοΫʹ͍͚Δͷʹຊ౰ʹ
    ͓લΒNJDSPTFSWJTFTඞཁ
    ͳͷʁʯͱ໰͍͔͚Δ

    View Slide

  21. ࣮ࡍ
    ͲΜͳ΋Μͳͷ͔

    View Slide


  22. View Slide

  23. SBLF TUBUT

    +----------------------+-------+-------+---------+---------+-----+-------+
    | Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
    +----------------------+-------+-------+---------+---------+-----+-------+
    | Controllers | 51762 | 41676 | 554 | 4170 | 7 | 7 |
    | Helpers | 15863 | 12986 | 18 | 1478 | 82 | 6 |
    | Models | 104034 | 81971 | 1851 | 9241 | 4 | 6 |
    | Mailers | 2150 | 1729 | 42 | 203 | 4 | 6 |
    | Workers | 639 | 540 | 20 | 31 | 1 | 15 |
    | Chanko units | 10341 | 8587 | 8 | 229 | 28 | 35 |
    | Libraries | 50661 | 41872 | 626 | 3790 | 6 | 9 |
    | Feature specs | 49901 | 40916 | 0 | 205 | 0 | 197 |
    | Request specs | 43437 | 37448 | 0 | 19 | 0 | 1968 |
    | Routing specs | 627 | 505 | 0 | 0 | 0 | 0 |
    | Controller specs | 63678 | 52586 | 6 | 128 | 21 | 408 |
    | Helper specs | 81289 | 67277 | 3 | 69 | 23 | 973 |
    | Model specs | 156941 | 129837 | 5 | 124 | 24 | 1045 |
    | Worker specs | 901 | 747 | 0 | 1 | 0 | 745 |
    | Chanko unit specs | 11476 | 9210 | 0 | 12 | 0 | 765 |
    | Library specs | 24911 | 20824 | 26 | 116 | 4 | 177 |
    +----------------------+-------+-------+---------+---------+-----+-------+
    | Total | 668611 | 548711 | 3159 | 19816 | 6 | 25 |
    +----------------------+-------+-------+---------+---------+-----+-------+
    Code LOC: 189361 Test LOC: 359350 Code to Test Ratio: 1:1.9

    View Slide

  24. े෼Ͱ͔͍

    View Slide

  25. ͜Ε͚ͩσΧΠ΋
    ͷΛ੾Γ෼͚Δͷ
    ͸ͳ͔ͳ͔
    ܦݧͰ͖ͳ͍

    View Slide

  26. ྫDPPLQBEྉཧಈը

    View Slide

  27. Ͳ͏੾Γ෼͚Δ͔
    IUUQTXXXqJDLSDPNQIPUPTKF⒎SFZXX

    View Slide

  28. ॎʹ੾Δ
    PS
    ԣʹ੾Δ

    View Slide

  29. DPPLQBEDPN
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ
    ϞϊϦγοΫͳߏ੒
    SFDJQFT [email protected] LJUDIFOT
    DBUFHPSZ [email protected] WJEFPT

    View Slide

  30. DPPLQBEDPN
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ
    ॎʹ੾Δ
    SFDJQFT [email protected] LJUDIFOT
    DBUFHPSZ [email protected]
    WJEFPT
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ

    View Slide

  31. DPPLQBEDPN
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ
    ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ
    ͜͜
    SFDJQFT [email protected] LJUDIFOT
    DBUFHPSZ [email protected]
    WJEFPT
    ԣʹ੾Δ

    View Slide

  32. Θ͔Γʹ͍͘ͷͰ
    ۩ମతʹݴ͏ͱ
    ಈըΤϯίʔυ

    ഑৴γεςϜ

    View Slide

  33. IUUQTTQFBLFSEFDLDPNZPTIJPSJIBQQZWJEFPUSBOTDPEJOHXJUIFMBTUJDUSBOTDPEFS
    Τϯίʔυ഑৴γεςϜͷ
    ৄ͍͠࿩͸ίνϥ

    View Slide

  34. ੾Γ෼͚Δ
    w ॎʹ੾Δ
    w ϏδωεྖҬʹΑͬͯ੾Γ෼͚Δ
    w جຊ͸͜ͷܗ
    w ԣʹ੾Δ
    w ػೳͰ੾Γ෼͚Δ
    w ಛఆͷྖҬʹಛԽͨ͠&WFSZUIJOHBTB4FSWJDFతͳ΋ͷ

    View Slide

  35. ڞ௨ݴޠ
    IUUQTXXXqJDLSDPNQIPUPT!/

    View Slide

  36. (BSBHF
    w 3BJMTHFNJpFEQMVHJOT
    w 3&45GVM)ZQFSNFEJB"1*
    w 3&45GVMͰ͋Γɺ)ZQFSNFEJBʹݱ࣮తͳϨϕϧͰରԠ
    w $PPLQBEͷαʔϏεؒ࿈ܞ͸͜ΕΛϕʔεʹ΍ΓऔΓͯ͠Δ
    w αʔόಉ࢜΋ɺJ04ɺ"OESPJEͳͲͷΞϓϦͱͷ࿈ܞ΋
    w 044ͱͯ͠ެ։ͯ͋͠Δʢ3VCZͷΫϥΠΞϯτ΋ʣ
    w IUUQTHJUIVCDPNDPPLQBEHBSBHF
    w [email protected]

    View Slide

  37. IUUQTXXXqJDLSDPNQIPUPTDISJTUJBOIBVHFO
    ԣʹ੾Δ

    View Slide

  38. &WFSZUIJOHBTB4FSWJDF
    w ଞͷαʔϏεͰ΋࢖͑ΔΑ͏ʹ࠷ॳ͔Βߟ͓͑ͯ͘
    w ͨͱ͑͹ಈը഑৴γεςϜ͸DPPLQBE΋͘Β͠ͷ͖΄Μ΋
    ಉ͡ΤϯυϙΠϯτΛୟ͍͍ͯΔ
    w αʔϏε͝ͱʹཱͯΔΑ͏ʹ͸͠ͳ͍
    w εέʔϧͤ͞΍͍͢
    w σϓϩΠ΍։ൃ؀ڥ΋γϯϓϧʹอͯΔ

    View Slide

  39. IUUQTXXXqJDLSDPNQIPUPTSPCCO
    ॎʹ੾Δ

    View Slide

  40. IUUQTDPPLQBEWJEFPKQ

    View Slide

  41. ࣮ࡍ΍ͬͯΈΔͱ݁ߏେมͩͬͨ
    wυϝΠϯͱΫοΩʔͷ໰୊
    wΩϟογϡઓུͷ໰୊

    View Slide

  42. υϝΠϯͱΫοΩʔͷ໰୊
    w ׬શಉҰυϝΠϯ
    w DPPLQBEDPNWJEFPT
    w αϒυϝΠϯ
    w WJEFPTDPPLQBEDPN
    w ׬શผυϝΠϯ
    w DPPLQBEWJEFPKQ

    View Slide

  43. ׬શಉҰυϝΠϯ
    w ΫοΩʔ׬શʹڞ௨
    w ͳͷͰͦΕͧΕผͷΞϓϦέʔγϣϯͰ

    ಉ͡ηογϣϯΫοΩʔΛ࢖͏Α͏ͳ͜ͱʹͳΓ͔Ͷͳ͍
    ͷͰ஫ҙ͕ඞཁ
    w DTT΍JNBHFͷ1BUI΋஫ҙ
    w DPPLQBEຊମͷΞϓϦ͕࢖͏JNBHFTMPHPQOH
    ͱWJEFP͕࢖͏JNBHFTMPHPQOH͕ಉ͡΋ͷʹͳ
    Δ

    View Slide

  44. αϒυϝΠϯ
    w ΫοΩʔҰ෦ڞ༗
    w DPPLQBEDPNͳͲʹ͠ͳ͚Ε͹جຊDPPLJF͕ಉ
    ҰʹͳΔ͜ͱ͸ͳ͍
    w ্هΛར༻͢Ε͹ϩάΠϯঢ়ଶͷҾ͖ܧ͗ͳͲ΋ൺֱతʹ
    ؆୯ DPPLQBEDPNʹ࣋ͨͤΕ͹ྑ͍ʣ
    w DTT΍JNBHFͷ1BUI΋ผʹͳΔ

    View Slide

  45. ׬શผυϝΠϯ
    w ΫοΩʔ׬શผ
    w ڞ༗Խ͢Δ͢΂͕ͳ͍
    w ϩάΠϯͷҾ͖ܧ͗ͱ͔ग़དྷͳ͍
    w DTT΍JNBHFͷ1BUI΋׬શʹผʹͳΔ

    View Slide

  46. υϝΠϯͱΫοΩʔͷ໰୊
    ͜ΕΒٕज़తͳ΍ΕΔ͜ͱɺ
    ΍Εͳ͍͜ͱΛ౿·͑ͯɺ
    4&0ͳͲ΋ߟ͑
    ͲͷܗࣜͰߦ͔͘ΛܾΊΔ

    View Slide

  47. Ωϟογϡઓུͷ໰୊
    େલఏͱͯ͠
    "1*ͷΤϯυϙΠϯτ͸
    ͳΔ΂͘γϯϓϧʹ
    ͓͖͍ͯͨ͠

    View Slide

  48. Ωϟογϡઓུͷ໰୊
    w ୯ҰϦιʔε"1*ʹ͓ͯ͘͠ͱ
    w NTͰฦ͢ͱͯ͠΋ݸͰNT
    w )551ͷίωΫγϣϯίετߴ͍
    w ͦͷ··NFNDBDIFEʹΩϟογϡͯ͠΋ճ໰͍
    ߹Θͤ͸มΘΒͳ͍
    ྫ͑͹ಈըτοϓϖʔδͰݸͷϨγϐΛ঺հ͍ͯͨ͠৔߹

    View Slide

  49. Ωϟογϡઓུͷ໰୊
    w ෳ਺ಉ࣌໰͍߹Θͤ 42-ͷJO۟ͷΑ͏ʹJEෳ਺౉ͤΔ

    Ͱ͖ΔΑ͏ʹ͢Δͱ
    w ݸ໰͍߹Θͤͯݸ͔͠Ұக͠ͳ͔ͬͨ৔߹ɺΤϥʔ
    Λฦ͢΂͖͔औಘͰ͖ͨ෼͚ͩฦ͢΂͖͔
    w ໰͍߹Θͤଆ΋ݸʹͳΔ·Ͱ܁Γฦ͠໰͍߹ΘͤΔ΂
    ͖͔
    w ͦͷෳ਺ΛҰؾʹΩϟογϡ͢΂͖͔
    w ॲཧ͕ෳࡶʹͳΔ

    View Slide

  50. Ωϟογϡઓུͷ໰୊
    ͔͠΋͜Ε͕ଟஈʹͳΔ͜ͱ΋͋Δ
    DPPLQBEDPN
    DPPLQBEWJEFPKQ
    ಈը഑৴αʔό
    τοϓʹදࣔ͢ΔҰཡ௖ଷ
    Ұཡͷಈըϝλσʔλ௖ଷ

    View Slide

  51. Ωϟογϡઓུͷ໰୊
    ࠓͷͱ͜Ζ7BSOJTIͰ
    ͦ΋ͦ΋ΞϓϦέʔγϣϯαʔόʹདྷΔલʹฦ͢
    ͔
    ୯ҰϦιʔε"1*ΛNFNDBDIFEʹೖΕΔ
    ͷΛ࢖͍෼͚͍ͯΔ͕
    ·ͩ·ͩߟ͑Δ༨஍͸͋Δ

    View Slide

  52. IUUQTXXXqJDLSDPNQIPUPTKBLFSVTU
    (BSBHFͷଞʹࣾ಺Ͱ
    ϥΠϒϥϦԽ͞ΕͨΓ
    ͯ͠ڞ༗͞ΕͯΔ΋ͷ

    View Slide

  53. w 17΍BVEJUܥ
    ͷϩάऩू
    w ΧελϜͳ਺஋
    औಘγεςϜ
    w ϩάΠϯपΓ
    w ϔομϑομ
    w ޿ࠂ
    w σϓϩΠपΓ
    w $*पΓ
    w Τϥʔूܭ
    ڞ༗

    View Slide

  54. ࣮ࡍ੾Γ෼͚ͯΈͯ

    View Slide

  55. ΍ͬͯΈͯΑ͔ͬͨ
    w ߏ଄ͳͲ͕γϯϓϧʹͳͬͨ
    w ୯७ʹؾ͍͍࣋ͪ
    w WJFXͷϨϯμϦϯά͕ૣ͘ͳͬͨ
    w ࢥ͍੾ͬͨࢪࡦΛೖΕ΍͍͢
    w ࣮ࡍʹ਺ࣈʹ΋ݱΕ͍ͯΔ

    View Slide

  56. ͨͱ͑͹QKBY

    View Slide

  57. ͨͱ͑͹QKBY

    View Slide

  58. IUUQTEFWFMPQFSBQQMFDPNMJCSBSZTBGBSJEPDVNFOUBUJPO"VEJP7JEFP$PODFQUVBM
    [email protected])[email protected]"[email protected]%FWJDF4QFDJpD$POTJEFSBUJPOT%FWJDF4QFDJpD$POTJEFSBUJPOTIUNM
    εϚϑΥͷϒϥ΢β͸ϢʔβʔΠϕϯτ
    ʢUPVDI΍DMJDLʣҎ֎Ͱ
    ϝσΟΞΛ࠶ੜ͢Δ͜ͱ͸ग़དྷͳ͍
    POMPBEͱ͔ͷΠϕϯτͰࣗಈ࠶ੜΛ͢Δ͜ͱ͸
    ग़དྷͳ͍

    View Slide

  59. ࣮͸ී௨ͷϦϯΫͰ͸ͳ͍
    λοϓ͢Δͱ
    QKBYͰը໘Λॻ͖׵͑ͳ
    ͕ΒಈըΛ࠶ੜͯ͠Δ
    ը໘ભҠ͸͍ͯ͠ͳ͍

    View Slide

  60. ੾Γ෼͚ͯWJFX
    ͷ؅ཧΛࣗ෼ͨͪ
    ͚ͩͰͰ͖ΔΑ͏
    ʹͳͬͨͷͰ࣮ݱ
    Ͱ͖ͨ

    View Slide

  61. ੾Γ෼͚ͯWJFX
    ͷ؅ཧΛࣗ෼ͨͪ
    ͚ͩͰͰ͖ΔΑ͏
    ʹͳͬͨͷͰ࣮ݱ
    Ͱ͖ͨ

    View Slide

  62. Τϥʔ͕ൃੜͨ͠ΒࣗಈతʹJTTVFT੾ͬͯ
    ͘Εͯϝϯόʔͷ୭͔ʹΞαΠϯͯ͘͠ΕΔ

    View Slide

  63. Τϥʔूܭ͸4FOUSZͰ΍͍ͬͯ
    ΔͷͰQMVHJOॻ͍ͯެ։ͯ͋͠Δ
    IUUQTHJUIVCDPNZPTIJPSJTFOUSZOPUJGZHJUIVCJTTVFT

    View Slide

  64. ΫοΫύουͷ044ͱͷؔ܎
    ࡞ͬͨ΋ͷ͸جຊ044Ͱυϯυϯެ։ͯ͠Δ
    w DPPLQBEDIBOLP
    w ϓϩτλΠϓ։ൃ༻ͷϓϥάΠϯ
    w DPPLQBESSSTQFD
    w ෼ࢄςετ
    w DPPLQBELBHF
    w TIBEPXQSPYZTFSWF

    View Slide

  65. w [email protected]
    w 3%#38TQMJUUJOH
    w XJOFCBSSFMSJEHFQPM
    w εΩʔϚ؅ཧπʔϧ
    w TPSBINBNJZB
    w ߴ଎σϓϩΠ
    w FBHMFUNUGBNM
    w IBNߴ଎൛
    w ࡉ͔͍΋ͷ͸਺͑ΒΕͣʜʜ

    View Slide

  66. ΋ͪΖΜ3VCZ΍3BJMTʹ΋
    ίϯτϦϏϡʔτͯ͠Δ
    ๻΋ͪΐͬ͜ͱͯͨ͠Γ͢Δ

    View Slide

  67. Ͱ

    View Slide

  68. +----------------------+-------+-------+---------+---------+-----+-------+
    | Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
    +----------------------+-------+-------+---------+---------+-----+-------+
    | Controllers | 51762 | 41676 | 554 | 4170 | 7 | 7 |
    | Helpers | 15863 | 12986 | 18 | 1478 | 82 | 6 |
    | Models | 104034 | 81971 | 1851 | 9241 | 4 | 6 |
    | Mailers | 2150 | 1729 | 42 | 203 | 4 | 6 |
    | Workers | 639 | 540 | 20 | 31 | 1 | 15 |
    | Chanko units | 10341 | 8587 | 8 | 229 | 28 | 35 |
    | Libraries | 50661 | 41872 | 626 | 3790 | 6 | 9 |
    | Feature specs | 49901 | 40916 | 0 | 205 | 0 | 197 |
    | Request specs | 43437 | 37448 | 0 | 19 | 0 | 1968 |
    | Routing specs | 627 | 505 | 0 | 0 | 0 | 0 |
    | Controller specs | 63678 | 52586 | 6 | 128 | 21 | 408 |
    | Helper specs | 81289 | 67277 | 3 | 69 | 23 | 973 |
    | Model specs | 156941 | 129837 | 5 | 124 | 24 | 1045 |
    | Worker specs | 901 | 747 | 0 | 1 | 0 | 745 |
    | Chanko unit specs | 11476 | 9210 | 0 | 12 | 0 | 765 |
    | Library specs | 24911 | 20824 | 26 | 116 | 4 | 177 |
    +----------------------+-------+-------+---------+---------+-----+-------+
    | Total | 668611 | 548711 | 3159 | 19816 | 6 | 25 |
    +----------------------+-------+-------+---------+---------+-----+-------+
    Code LOC: 189361 Test LOC: 359350 Code to Test Ratio: 1:1.9
    .PEFMTDMBTT਺

    View Slide

  69. +----------------------+-------+-------+---------+---------+-----+-------+
    | Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
    +----------------------+-------+-------+---------+---------+-----+-------+
    | Controllers | 51762 | 41676 | 554 | 4170 | 7 | 7 |
    | Helpers | 15863 | 12986 | 18 | 1478 | 82 | 6 |
    | Models | 104034 | 81971 | 1851 | 9241 | 4 | 6 |
    | Mailers | 2150 | 1729 | 42 | 203 | 4 | 6 |
    | Workers | 639 | 540 | 20 | 31 | 1 | 15 |
    | Chanko units | 10341 | 8587 | 8 | 229 | 28 | 35 |
    | Libraries | 50661 | 41872 | 626 | 3790 | 6 | 9 |
    | Feature specs | 49901 | 40916 | 0 | 205 | 0 | 197 |
    | Request specs | 43437 | 37448 | 0 | 19 | 0 | 1968 |
    | Routing specs | 627 | 505 | 0 | 0 | 0 | 0 |
    | Controller specs | 63678 | 52586 | 6 | 128 | 21 | 408 |
    | Helper specs | 81289 | 67277 | 3 | 69 | 23 | 973 |
    | Model specs | 156941 | 129837 | 5 | 124 | 24 | 1045 |
    | Worker specs | 901 | 747 | 0 | 1 | 0 | 745 |
    | Chanko unit specs | 11476 | 9210 | 0 | 12 | 0 | 765 |
    | Library specs | 24911 | 20824 | 26 | 116 | 4 | 177 |
    +----------------------+-------+-------+---------+---------+-----+-------+
    | Total | 668611 | 548711 | 3159 | 19816 | 6 | 25 |
    +----------------------+-------+-------+---------+---------+-----+-------+
    Code LOC: 189361 Test LOC: 359350 Code to Test Ratio: 1:1.9
    .PEFMTDMBTT਺

    ݮΒͤͨ

    View Slide

  70. View Slide

  71. IUUQTSFDSVJUDPPLQBEDPN
    ͍ͬ͠ΐʹΨγΨγ044ʹίϯτϦϏϡʔτ͠ͳ͕Β
    ։ൃͯ͘͠ΕΔਓืूͯ͠·͢ʂ

    View Slide