マイクロサービスにおける技術と組織の衝突に向き合う / Manage the Conflict between Microservices Architecture and Organization Structure

942bb606679caf4c57b38927f83178e1?s=47 qsona
July 02, 2019

マイクロサービスにおける技術と組織の衝突に向き合う / Manage the Conflict between Microservices Architecture and Organization Structure

Developers Summit 2019 Summer [C-9] 「本気で実践している人たちにしかできない話が聞きたい」の中の Lightning Talk です。
より詳細な内容は https://scrapbox.io/qsona/devsumi_LT_2019-07-02 を参照ください。

942bb606679caf4c57b38927f83178e1?s=128

qsona

July 02, 2019
Tweet

Transcript

  1. ϚΠΫϩαʔϏεʹ͓͚Δ ٕज़ͱ૊৫ͷিಥʹ޲͖߹͏ @qsona (FiNC Technologies Inc.) 2019-07-02 Developers Summit 2019

    Summer [C-9]
  2. ஫ҙ • ͜ͷࢿྉ͸ൃද༻ͷͨΊɺৄࡉΛ୺ં͍ͬͯ·͢ • ΑΓৄࡉͳ಺༰͸ҎԼΛࢀর͍ͩ͘͞
 https://scrapbox.io/qsona/devsumi_LT_2019-07-02 • (ຊࢿྉ͸ɺ্ͷهࣄͷαϒηοτͰ͢)

  3. "ϚΠΫϩαʔϏε͸૊৫࿦"

  4. None
  5. ϚΠΫϩαʔϏεͷཧ૝ܗ • ֤αʔϏε͸ɺϏδωευϝΠϯ Ͱ੾Γग़͞ΕΔ • ͦͷαʔϏεΛॴ༗͢ΔνʔϜ΋ ϏδωευϝΠϯʹ߹Θͤͯߏ੒ ͞ΕΔ • αʔϏεͱϏδωενʔϜ͕


    ҰରҰରԠ͢Δ
  6. Θ͔ͬͯΔਓ͸ ࠷ॳ͔Βཧղ͍ͯ͠Δ ӈͷࢿྉ: 2016-07-07 (3೥લ!) "MicroservicesͰWebϑϩϯτΤϯυ Ͳ͏ͯ͠Δͷʁ" by @teppeis Microservices

    Meetup vol.1
  7. ࠷ۙͷ "ϚΠΫϩαʔϏε͸૊৫࿦" • "νʔϜΛׂΓ౰ͯΒΕͳ͍ͳΒ
 ϚΠΫϩαʔϏεΛ࡞ͬͯ͸͍͚ͳ͍" • "NਓະຬͷձࣾͰ͸
 ϚΠΫϩαʔϏεΛࢤ޲ͯ͠͸͍͚ͳ͍"

  8. ࠷ۙͷ "ϚΠΫϩαʔϏε͸૊৫࿦" • ίϯ΢ΣΠͷ๏ଇݪཧओٛ (ΧʔΰɾΧϧτతͰڱྔ) • ͳ͔ͥ૊৫͕໨తʹͳ͍ͬͯΔਓ΋ • ຊདྷ͸ٕज़ɾ૊৫ͷ྆ྠͰ
 ՝୊Λղܾ͍ͯ͘͠΋ͷͳͷʹ...

  9. ࠓ೔ͷϞνϕʔγϣϯ • ͖Ε͍͝ͱͰ͸ࡁ·ͳ͍ɺ
 ϚΠΫϩαʔϏεͷٕज़ͱ૊৫͕িಥ͢Δ࿩Λ
 ݱ৔ͷٕज़ऀ໨ઢͰޠ͍͖͍ͬͯͨ • ςʔϚΛҰݴͰද͢ͱ "ڠྗͷ૊৫σβΠϯ"

  10. ࿩ऀ঺հ • @qsona (FiNC Technologies Inc.) • Microservices Meetup ओ࠵

    • ओʹݱ৔ͰαʔϏε։ൃʹؔΘΓͳ͕Βɺ
 ԣஅ՝୊Λݟ͚ͭͯղܾ͍ͯ͘͠࢓ࣄΛ͍ͯ͠Δ • ݱࡏ͸SREνʔϜʹॴଐ
  11. ٕज़ͱ૊৫͕িಥ͢Δ࣮ྫ ࣮ྫͱϓϥΫςΟε, ૊৫Ϛωδϝϯτ΁ͷཁ੥

  12. 1. ڞ༗ػೳαʔϏε

  13. ڞ༗ػೳαʔϏε - ֓ཁ • ͋Δ1ͭͷػೳΛɺෳ਺ͷαʔϏε ͔Β࢖͏ • ڞ༗͞ΕΔػೳͷྫ • Push௨஌,

    ΞϓϦ಺௨஌ػೳ • λΠϜϥΠϯ • etc...
  14. ࣮ྫ: PUSH௨஌༧໿ػೳ • Biz A νʔϜ/αʔϏε ͱ
 Biz B νʔϜ/αʔϏε

    ͕ͦΕͧΕ
 Push௨஌αʔϏεΛར༻͍ͯ͠Δ • Biz A νʔϜͷཁ݅Ͱ
 "Push௨஌༧໿ػೳ" Λ࡞Δ͜ͱʹ • ͲͷαʔϏεʹ࣮૷͢Δʁ
  15. ౴: PUSH௨஌αʔϏε (ࢲݟ) • ߴڽू, ૄ݁߹͕ϚΠΫϩαʔϏεઃܭͷجຊɻ
 Push௨஌ͷؔ৺͝ͱ͸ҰՕॴʹूΊ͍ͨɻ • ࠶ར༻ੑ΋ߴ͘Ͱ͖ͦ͏ɻ

  16. ϓϥΫςΟε (ٕज़໨ઢ) • Smart Endpoint • ڞ༗ػೳαʔϏεʹ΋ɺ಄(ϩδοΫ)Λ࣋ͨͤΑ • Simple API

    with Good Defaults • "࢖͍΍͢͞" Λॏࢹͨ͠APIʹ
  17. ͜ͷٞ࿦Ͱे෼ͩΖ͏͔...?

  18. ૊৫ͷ՝୊ (ٕज़ͱͷίϯϑϦΫτ) • Push௨஌νʔϜ͸ଘࡏ͢Δʁ • ࣄۀతͳ༏ઌ౓΍ɺ࣮૷ɾӡ༻ ͷස౓ʹΑΓͦ͏ • ଘࡏ͠ͳ͍ͱԾఆ͢Δɻ
 ࡞ͬͨػೳΛอकɾӡ༻͢Δͷ͸

    ୭ʁ
  19. ૊৫ͷ՝୊ (ٕज़ͱͷίϯϑϦΫτ) • Push௨஌νʔϜ͕ଘࡏ͢ΔͱԾఆ • Push௨஌νʔϜͰ࣮૷͢ΔͳΒɺ ଞͷλεΫͱͷ༏ઌ౓͸Ͳ͏΍ͬ ͯௐ੔͢Δʁ • ੓࣏ઓͷ༷૬Λఄ͢Δ

  20. ϓϥΫςΟε (૊৫) • ௚઀ॴ༗͠ͳ͍αʔϏε΁ͷ Pull Request Λ׻ܴͤΑ • νʔϜ͸ͳ͘ͱ΋ɺʮαʔϏεͷकΓखʯ͸ඞཁ

  21. ٯίϯ΢ΣΠͷ๏ଇ • [A-4] Ͱ޿໦େ஍͞Μ͕࿩͞Ε͍ͯ ͨ໛༷ 
 (ӈ͸ yasaichi ͞Μͷ࣮گπΠʔτ) •

    (ײ૝) ͜Ε͕Ͱ͖ͨΒ૊৫Ϛωδ ϝϯτͷՖܗͩͳͱࢥ͏ɻ
 ࣗ෼͸·ͩ͜Ε͕Ͱ͖Δঢ়گʹ͸ ૺ۰ͯ͠ͳ͍ɻ
  22. ૊৫Ϛωδϝϯτ΁ͷཁ੥ • ʮαʔϏεͷकΓखʯΛ࡞͍ͬͯͨ͘Ίͷڠྗ͕΄͍͠ • Job Description, ໌֬ͳΞαΠϯ(݉຿ʹͳΔ),
 ࣌ؒతόοϑΝ,ҭ੒, ධՁ, etc...

  23. 2. MULTI-SIDED PLATFORM

  24. MULTI-SIDED PLATFORM ෳ਺ͷϢʔβʔάϧʔϓʹରͯ͠ϓ ϩμΫτΛఏڙ͍ͯ͘͠ܗଶ

  25. MULTI-SIDED PLATFORM ʹ͓͚Δ՝୊ • ૊৫ߏ଄ʹαʔϏεΛҰகͤ͞Δ ͱɺαʔϏεʹ·͕ͨͬͯσʔλ ͷڞ༗͕ඞཁʹͳΔ • యܕతʹ͸ڞ༗DBΞϯνύλʔϯ ʹߦ͖ண͖͕ͪ

  26. ϓϥΫςΟε: ϞϊϦε͔Β࢝ΊΑ • ʮϢʔβʔछผ໊ʯαʔϏεΛ
 ҆௚ʹ࡞Βͳ͍ • 1ͭͷαʔϏε͔Β
 2ͭͷϓϩμΫτΛఏڙ͢Δ • SPA

    (Single Page Application) ΍
 BFF (Backends for Frontends) ͳΒ Ϣʔβʔछผ͝ͱʹ࡞ͬͯྑ͍
  27. ૊৫Ϛωδϝϯτ΁ͷཁ੥ • Multi-Sided Platform ࣄۀʹ͓͍ͯυϝΠϯ͕ަΘΔ෦෼͸
 ٕज़తʹ΋೉қ౓͕ߴ͍ • ௐ੔΍ڠྗ͕ઈରʹඞཁʹͳΔ͜ͱΛཧղ͠ɺ
 ໰୊ղܾʹಋ͍ͯཉ͍͠ •

    ͜͜Ͱ΋΍͸ΓʮकΓखʯΛҭͯͯ΄͍͠
  28. 3. αʔϏεԣஅ/ڞ௨՝୊΁ͷରॲ

  29. ϚΠΫϩαʔϏεͱԣஅ/ڞ௨՝୊ • ϚΠΫϩαʔϏεΛԣஅ͢Δ ՝୊͸ଟ͘ଘࡏ͢Δ • جຊతʹ͸ඇػೳཁ݅ • Ϗδωε͕ؔ܎͢Δ
 ԣஅ՝୊΋͋Δ

  30. ԣஅ՝୊΁ͷରॲํ๏ • αʔϏενʔϜଆͰڠྗͯ͠ରॲ͢Δʁ • ͍ΘΏΔʮڞ௨ج൫νʔϜʯΛ࡞Δʁ

  31. ՝୊ 1. ϓϩμΫτଆͰղܾ͢Δ ྗֶ͕ಇ͔ͳ͍ • ϞϊϦεͷ৔߹ɺ
 1ͭͷ໰୊͸ଟ͘ͷਓͷ໰୊ • ղܾ͢ΔϝϦοτ͕େ͖͍

  32. ՝୊ 1. ϓϩμΫτଆͰղܾ͢Δ ྗֶ͕ಇ͔ͳ͍ • ϚΠΫϩαʔϏεͷ৔߹ɺ໰୊͕ ֤αʔϏενʔϜʹ෼ࢄ͍ͯ͠Δ • 1ͭͷαʔϏεͷ՝୊͚ͩղܾ͠ Α͏ͱ͢Δͱɺ


    ίεύ͕ѱ͘ͳΓ͕ͪ • ہॴ࠷దʹؕΓɺղܾ͞Εͳ͍
  33. ՝୊ 2. ج൫νʔϜ͕ϫʔΫ͠ͳ͍ • ج൫νʔϜͷ࢓ࣄ͕ɺݱ৔ʹਁಁ͠ͳ͍ (ࢹ఺ɾײ֮ͷζϨ) • ج൫νʔϜʹ໰୊͕ԡ͠෇͚ΒΕ͕ͪ

  34. αʔϏεଆͰͷղܾΛଅ͢ • جຊతʹɺࠔͬͯΔਓ͕Ұ൪Ϟνϕʔγϣϯ͕ߴ͍ • ԣஅ՝୊ʹؾ͚ͮΔͨΊͷ "ࡶͳձ࿩" Λ૿΍͢ • ಛఆͷԣஅ՝୊ରॲͷͨΊͷҰ࣌తͳνʔϜΛ࡞Δ
 (λεΫϑΥʔε)

    • ͳΔ΂͘ΰʔϧΛ໌֬ʹఆΊɺୡ੒ͨ͠Βղࢄ͢Δ
  35. ج൫νʔϜ͸ϚΠφεΛফ͢΂͠ • ج൫νʔϜ͸ϓϥεΛ࡞Ζ͏ͱ͢Δͱ্ख͍͔͘ͳ͍ɺ
 ϚΠφεΛͳ͘͢ํ্͕ख͍͘͘ɻ
 ͳͥͳΒݱ৔͕ࠔ͍ͬͯΔ͔Β (@sukesan1984) • ج൫νʔϜ͸ݱ৔͕ຊ౰ʹࠔ͍ͬͯΔ͜ͱΛཧղ͠ɺ
 ͦͷ໰୊ͷղܾʹϑΥʔΧε͢Δ΂͖

  36. ϚΠφεΛʮݟͤΔʯ౒ྗ΋ඞཁ • ྫ: ηΩϡϦςΟύον͕౰͍ͨͬͯͳ͍ͷ͕ৗଶԽ͍ͯ͠Δ • ໌Β͔ʹʮϚΠφεͷঢ়ଶʯͰ͋Δ͜ͱʹؾ͚͍ͮͯͳ͍ • ͦͷϦεΫͷେ͖͞Λཧղ͠ɺ
 ΍Βͳ͚Ε͹͍͚ͳ͍͜ͱͱͯ͠ѻͬͯ΋Β͏ •

    => (ྫ) E2Eςετ΍ΧφϦϠϦϦʔεͷ͋Γ͕ͨΈ͕ཧղͰ͖Δ
  37. ϓϩμΫτͱج൫ͷྑ͍ڠྗͷྫ • "Quipper ࣾ಺ཹֶମݧه" by @masaki925 • ࠓ೔ग़ͯΔهࣄͰ͢ɻඞݟ ❗ •

    ʮσʔλνʔϜʯ͔Β toC ͷࣄۀʹߩݙ • σʔλνʔϜ͸ɺ໨త͕໌֬Խ͞Εͨԣஅ૊৫ͱݴ͑Δ • toC νʔϜʹ "ཹֶ" ͠ɺݱ৔ͷ ՝୊Λཧղ͠ͳ͕Βղܾ͍ͯ͠ Δૉ੖Β͍͠ࣄྫ • ૊৫ͷนΛ௒͑ͨڠྗ͕Ͱ͖Δ จԽ͕ܗ੒͞Ε͍ͯΔ
  38. ·ͱΊ: ٕज़ͱ૊৫͕িಥ͢Δ࣌ɺ զʑ͸ԿΛߟ͑Δ΂͖͔

  39. ίϯ΢ΣΠ͸و͠ ίϯ΢ΣΠʹͨͷ·ͣ

  40. "αʔϏε΍νʔϜΛ௒͑ͨڠྗ" ͷ ૊৫σβΠϯ

  41. THANK YOU FOR LISTENING! • ͜ͷࢿྉ͸ൃද༻ͷͨΊɺৄࡉΛ୺ં͍ͬͯ·͢ • ΑΓৄࡉͳ಺༰͸ҎԼΛࢀর͍ͩ͘͞
 https://scrapbox.io/qsona/devsumi_LT_2019-07-02