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

Microserviceなんて最初からやるもんじゃ無かった

 Microserviceなんて最初からやるもんじゃ無かった

Microserviceなんて最初からやるもんじゃ無かった

threetreeslight

July 22, 2015
Tweet

More Decks by threetreeslight

Other Decks in Technology

Transcript

  1. MicroServiceͳΜͯ࠷ॳ͔Β ΍Δ΋Μ͡Όͳ͔ͬͨ Akira Miki Repro Inc. shinjuku.rb #[email protected] July 22,

    2015
  2. Akira Miki CTO / Repro @treetreeslight

  3. None
  4. ఆྔ෼ੳͰ͸෼͔Βͳ͍ݪҼΛ

  5. ಈը͔Βਪ࡯ͯ͠վળ͢Δπʔϧ

  6. ϓογϡ΋Ͱ͖ΔΑ͏ʹͳͬͨΑʂ

  7. At the first of Repro

  8. Repro͕΍Γ͍ͨ͜ͱ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ

  9. ੹຿Λ෼͚ͯεέʔϥϏϦςΟ Λ୲อ͍ͨ͠

  10. ϚʔςΟϯϑΝ΢ϥʔޚେᐌ͘ > The term "Microservice Architecture" has sprung up over

    the last few years to describe a particular way of designing software applications as suites of independently deployable services. http://martinfowler.com/articles/microservices.html
  11. ࣌୅͸ϚΠΫϩαʔϏγε ΩλίϨ

  12. Repro͕΍Γ͍ͨ͜ͱ ͱΓ·෼͚ͯ࡞ͬͪΌ͓͏!!! ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ

  13. ޷͖ͳݴޠͰΨϯΨϯ͍͜͏ʂ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ

  14. ͋Εɺɺɺɺ

  15. εΩʔϚมߋ΍Βܕมߋ͢Δͱɻɻɻ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ ϑΥʔϚοτ νΣοΫ
 ௚ͯ͠ DB͕ ৯͑ΔΑ͏ʹ

    ύʔεͯ͠ Ϣʔβʔ΁ͷ
 ݟͤํ͔͑ͯ ૹΔϑΥʔϚοτ
 ߹Θͤͯ
  16. ᷓΕग़͢मਖ਼࿙Ε ๲Ε্͕Δ؅ཧίετ

  17. monolithic

  18. ݁ہ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ • ϞϊϦγοΫʹ͢ΔιϦϡʔγϣϯ • ϏδωεϩδοΫͷζϨΛͳ͘͢

  19. ڭ܇ͦͷ̍ • มԽʹڧ͍ΞʔΩςΫνϟ͸ɺܹ͘͠มԽ ʹڧ͍ͷͱ͸ҙຯ͕ҧ͏ • มߋ͕සൃ͢Δ࣌ظ͸ϞϊϦγοΫ͡Όͳ ͍ͱͭΒ͍ • ϏδωεϩδοΫ͕ಉ͡ͳΒ࢖͍ճ͢΂͖

  20. ༨ஊɾมߋͷܹ͠͞ ̍͜͜೥Ͱ11ສߦॻ͍ͯ8ສߦফ͠·ͨ͠…

  21. After alpha release of Repro

  22. ϦΫΤετͲ͏ʹ͔͍ͨ͠ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ ϑΥʔϚοτ νΣοΫ

  23. ࠶ͼαʔϏε෼ׂ΁ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ ϑΥʔϚοτ νΣοΫ

  24. ࣦഊͨ͠ͷʹ·ͨ΍Δͷʁ

  25. ϏδωεϩδοΫͷґଘΛࣺͯΔ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ ϑΥʔϚοτ νΣοΫ • ؆қͳνΣοΫʢJSONϑΥʔϚοτͱΩʔͱͳΔ஋ʣͩ ͚ʹ͢Δ

    • Ωʔ஋ͷଥ౰ੑνΣοΫ͸APIͰଞͷαʔόʔʹฉ͖ʹߦ͘
  26. ޙ޻ఔͰ࿫͑Δࣄ͸ޙ޻ఔ΁ ৘ใΛૹͬͯ ม׵ͯ͠ ෼ੳ͢Δ ड͚औͬͯ ϑΥʔϚοτ νΣοΫ • ؆қͳνΣοΫʢJSONϑΥʔϚοτͱΩʔͱͳΔ஋ʣͩ ͚ʹ͢Δ

    • Ωʔ஋ͷଥ౰ੑνΣοΫ͸APIͰଞͷαʔόʔʹฉ͖ʹߦ͘
  27. ڭ܇ͦͷ̎ • ୯Ұͷ੹຿ʹूதͤ͞Δ • ޙ޻ఔͷίετԼ͍͛ͨͱ͔ཉΛग़͞ͳ͍ • ΋͠ɺ੹຿͔Β֎ΕΔߦҝΛ΍Γ͍ͨͱ͖ ͸API࡞ͬͯୟ͖ʹߦ͘

  28. And now

  29. ϦΫΤετʹ߹Θͤͨ޻෉Λ͢Δ • ͋·Γʹଟ͍ϦΫΤετΛ͞͹͘ʹ͸Rails ͕ͭΒ͍ɻ • Ωϟογϡʹώοτ͠ͳ͍෼ੳσʔλ͸Ϧ ΫΤετʹ͕͔͔࣌ؒΔ=unicorn޲͔ͳ͍

  30. ·ͱΊ

  31. • ࠷ॳ͸ϞϊϦγοΫʹɺ͔ͦ͜ΒαʔϏε Λ෼͚Δํ͕੹຿͕໌֬ʹͳΔɻ • ϦΫΤετ਺΍ঢ়گʹԠͯ͡ɺ୯Ұͷ੹຿ ʹಛԽͨ͠αʔϏεʹ෼ׂ͢ΔɻཉΛग़͞ ͳ͍