Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

࿩ऀ঺հ • @qsona (FiNC Technologies Inc.) • Microservices Meetup ओ࠵ • ओʹݱ৔ͰαʔϏε։ൃʹؔΘΓͳ͕Βɺ
 ԣஅ՝୊Λݟ͚ͭͯղܾ͍ͯ͘͠࢓ࣄΛ͍ͯ͠Δ • ݱࡏ͸SREνʔϜʹॴଐ

Slide 11

Slide 11 text

ٕज़ͱ૊৫͕িಥ͢Δ࣮ྫ ࣮ྫͱϓϥΫςΟε, ૊৫Ϛωδϝϯτ΁ͷཁ੥

Slide 12

Slide 12 text

1. ڞ༗ػೳαʔϏε

Slide 13

Slide 13 text

ڞ༗ػೳαʔϏε - ֓ཁ • ͋Δ1ͭͷػೳΛɺෳ਺ͷαʔϏε ͔Β࢖͏ • ڞ༗͞ΕΔػೳͷྫ • Push௨஌, ΞϓϦ಺௨஌ػೳ • λΠϜϥΠϯ • etc...

Slide 14

Slide 14 text

࣮ྫ: PUSH௨஌༧໿ػೳ • Biz A νʔϜ/αʔϏε ͱ
 Biz B νʔϜ/αʔϏε ͕ͦΕͧΕ
 Push௨஌αʔϏεΛར༻͍ͯ͠Δ • Biz A νʔϜͷཁ݅Ͱ
 "Push௨஌༧໿ػೳ" Λ࡞Δ͜ͱʹ • ͲͷαʔϏεʹ࣮૷͢Δʁ

Slide 15

Slide 15 text

౴: PUSH௨஌αʔϏε (ࢲݟ) • ߴڽू, ૄ݁߹͕ϚΠΫϩαʔϏεઃܭͷجຊɻ
 Push௨஌ͷؔ৺͝ͱ͸ҰՕॴʹूΊ͍ͨɻ • ࠶ར༻ੑ΋ߴ͘Ͱ͖ͦ͏ɻ

Slide 16

Slide 16 text

ϓϥΫςΟε (ٕज़໨ઢ) • Smart Endpoint • ڞ༗ػೳαʔϏεʹ΋ɺ಄(ϩδοΫ)Λ࣋ͨͤΑ • Simple API with Good Defaults • "࢖͍΍͢͞" Λॏࢹͨ͠APIʹ

Slide 17

Slide 17 text

͜ͷٞ࿦Ͱे෼ͩΖ͏͔...?

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

ٯίϯ΢ΣΠͷ๏ଇ • [A-4] Ͱ޿໦େ஍͞Μ͕࿩͞Ε͍ͯ ͨ໛༷ 
 (ӈ͸ yasaichi ͞Μͷ࣮گπΠʔτ) • (ײ૝) ͜Ε͕Ͱ͖ͨΒ૊৫Ϛωδ ϝϯτͷՖܗͩͳͱࢥ͏ɻ
 ࣗ෼͸·ͩ͜Ε͕Ͱ͖Δঢ়گʹ͸ ૺ۰ͯ͠ͳ͍ɻ

Slide 22

Slide 22 text

૊৫Ϛωδϝϯτ΁ͷཁ੥ • ʮαʔϏεͷकΓखʯΛ࡞͍ͬͯͨ͘Ίͷڠྗ͕΄͍͠ • Job Description, ໌֬ͳΞαΠϯ(݉຿ʹͳΔ),
 ࣌ؒతόοϑΝ,ҭ੒, ධՁ, etc...

Slide 23

Slide 23 text

2. MULTI-SIDED PLATFORM

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

ϓϥΫςΟε: ϞϊϦε͔Β࢝ΊΑ • ʮϢʔβʔछผ໊ʯαʔϏεΛ
 ҆௚ʹ࡞Βͳ͍ • 1ͭͷαʔϏε͔Β
 2ͭͷϓϩμΫτΛఏڙ͢Δ • SPA (Single Page Application) ΍
 BFF (Backends for Frontends) ͳΒ Ϣʔβʔछผ͝ͱʹ࡞ͬͯྑ͍

Slide 27

Slide 27 text

૊৫Ϛωδϝϯτ΁ͷཁ੥ • Multi-Sided Platform ࣄۀʹ͓͍ͯυϝΠϯ͕ަΘΔ෦෼͸
 ٕज़తʹ΋೉қ౓͕ߴ͍ • ௐ੔΍ڠྗ͕ઈରʹඞཁʹͳΔ͜ͱΛཧղ͠ɺ
 ໰୊ղܾʹಋ͍ͯཉ͍͠ • ͜͜Ͱ΋΍͸ΓʮकΓखʯΛҭͯͯ΄͍͠

Slide 28

Slide 28 text

3. αʔϏεԣஅ/ڞ௨՝୊΁ͷରॲ

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

՝୊ 1. ϓϩμΫτଆͰղܾ͢Δ ྗֶ͕ಇ͔ͳ͍ • ϚΠΫϩαʔϏεͷ৔߹ɺ໰୊͕ ֤αʔϏενʔϜʹ෼ࢄ͍ͯ͠Δ • 1ͭͷαʔϏεͷ՝୊͚ͩղܾ͠ Α͏ͱ͢Δͱɺ
 ίεύ͕ѱ͘ͳΓ͕ͪ • ہॴ࠷దʹؕΓɺղܾ͞Εͳ͍

Slide 33

Slide 33 text

՝୊ 2. ج൫νʔϜ͕ϫʔΫ͠ͳ͍ • ج൫νʔϜͷ࢓ࣄ͕ɺݱ৔ʹਁಁ͠ͳ͍ (ࢹ఺ɾײ֮ͷζϨ) • ج൫νʔϜʹ໰୊͕ԡ͠෇͚ΒΕ͕ͪ

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

ϓϩμΫτͱج൫ͷྑ͍ڠྗͷྫ • "Quipper ࣾ಺ཹֶମݧه" by @masaki925 • ࠓ೔ग़ͯΔهࣄͰ͢ɻඞݟ ❗ • ʮσʔλνʔϜʯ͔Β toC ͷࣄۀʹߩݙ • σʔλνʔϜ͸ɺ໨త͕໌֬Խ͞Εͨԣஅ૊৫ͱݴ͑Δ • toC νʔϜʹ "ཹֶ" ͠ɺݱ৔ͷ ՝୊Λཧղ͠ͳ͕Βղܾ͍ͯ͠ Δૉ੖Β͍͠ࣄྫ • ૊৫ͷนΛ௒͑ͨڠྗ͕Ͱ͖Δ จԽ͕ܗ੒͞Ε͍ͯΔ

Slide 38

Slide 38 text

·ͱΊ: ٕज़ͱ૊৫͕িಥ͢Δ࣌ɺ զʑ͸ԿΛߟ͑Δ΂͖͔

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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