Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ϚΠΫϩαʔϏεͱΫϥΠΞϯτ: ཧͱݱ࣮ͷڱؒͰ @qsona / FiNC Technologies Inc. 2018-10-30 Microservices Meetup vol.9 (FiNC App & Frontend)
Slide 2
Slide 2 text
ୈ1෦: ϚΠΫϩαʔϏεͷ݁߹ϨΠϠʔ
Slide 3
Slide 3 text
ϚΠΫϩαʔϏεͷྑ͞ !3 • ٕज़ҟ࣭ੑ – ͦΕͧΕ࠷దͳݴޠɾϥΠϒϥϦɾσʔλετΞΛར༻Ͱ͖Δ – ٕज़తෛ࠴ΛҾ͖ͣΓʹ͍͘ • ճ෮ੑ (Resilience) – αʔϏεʹো͕ى͖ͯશମͷӨڹগͳ͍ • σϓϩΠͷಠཱ • খࣗ͘͞ɾಠཱͨ͠৫ – ίϛϡχέʔγϣϯύεΛݮΒ͠ɺҙࢥܾఆΛૉૣ͘
Slide 4
Slide 4 text
αʔϏεͷૄ݁߹͔ΒདྷΔ ߴ͍ࣗ༝ɾࣗ
Slide 5
Slide 5 text
αʔϏε͕ີ݁߹ʹͳΔͱ ϚΠΫϩαʔϏεͷྑ͞ফ͑Δ
Slide 6
Slide 6 text
ϚΠΫϩαʔϏεΛ݁߹͢Δऀୡ ... ݁߹ϨΠϠʔΛཧղ͠ɺ దʹରॲ͠ͳ͚ΕͳΒͳ͍ ࣄۀܭը, ΠϯϑϥετϥΫνϟ, ϑϩϯτΤϯυ, Ӧۀ, ԣஅతͳϏδωε, εΩϧηοτ, σʔλੳ, ηΩϡϦςΟ, ίετϚωδϝϯτ, etc..
Slide 7
Slide 7 text
݁߹ͷྫ (1) ϚΠΫϩαʔϏεͱӦۀ !7 • ;ͭ͏ӦۀελοϑɺಛఆͷϚΠΫ ϩαʔϏεத৺ͷ৫ʹଐ͞ͳ͍ • ͔͠͠ɺ͠ଐ͍ͯͨ͠Βʁ – Ӧۀελοϑ͕ࣗͷαʔϏεʹৄ͍͠ – αʔϏεͷมߋʹڧ͍ (αʔϏεʹมߋ͕͋ͬ ͨͱ͖ʹવӦۀελοϑʹप͞ΕΔ) – Ӧۀઌ͔ΒͷϑΟʔυόοΫ͕࣮ʹө͞ Ε͍͢ – αʔϏεͷڧ͍Ѫண͕࣋ͯΔ ϚΠΫϩαʔϏενʔϜA ϚΠΫϩαʔϏενʔϜB ΫϥΠΞϯτ(Ӧۀઌ)
Slide 8
Slide 8 text
݁߹ͷྫ (1) ϚΠΫϩαʔϏεͱӦۀ !8 • ͪΖΜ͜ΕΤϯυϢʔβʔΛແࢹ ͨ͠ص্ͷۭ – ϚΠΫϩαʔϏε(ػೳ)୯ҐͰӦۀ͞Εͯ ސ٬خ͘͠ͳ͍ – ΤϯυϢʔβʔϚΠΫϩαʔϏε͕౷߹͞ ΕͨମݧΛΜͰ͍Δ ϚΠΫϩαʔϏενʔϜA ϚΠΫϩαʔϏενʔϜB ΫϥΠΞϯτ(Ӧۀઌ)
Slide 9
Slide 9 text
݁߹ͷྫ (1) ϚΠΫϩαʔϏεͱӦۀ !9 • ӦۀνʔϜϚΠΫϩαʔϏεΛ౷߹ ͢Δ (݁߹ϨΠϠʔ) • νʔϜΛ·͕ͨͬͨίϛϡχέʔγϣ ϯͷऔΓํΛߟ͑Δඞཁ͋Γ ϚΠΫϩαʔϏενʔϜA ϚΠΫϩαʔϏενʔϜB ΫϥΠΞϯτ(Ӧۀઌ) ӦۀνʔϜ
Slide 10
Slide 10 text
݁߹ͷྫ (2) ϚΠΫϩαʔϏεͱԣஅϏδωε !10 • ෳͷϚΠΫϩαʔϏεΛԣஅతʹར༻͢Δ ϏδωεϞσϧ • FiNCͰͷྫ: ಛεϚʔτΞϓϦ – ಛఆͷܦ࿏͔ΒΞϓϦΛΠϯετʔϧ͢Δͱ ಛϢʔβʔʹͳΓɺ ಛઐ༻ΦϯϘʔσΟϯά͕࢝·Δ – ಛઐ༻ϛογϣϯ͕ղ์͞ΕΔ – ಛϢʔβʔ༻ʹΧελϚΠζ͞Εͨ push௨͕৴͞ΕΔ
Slide 11
Slide 11 text
݁߹ͷྫ (2) ϚΠΫϩαʔϏεͱԣஅϏδωε !11 • ෳͷϚΠΫϩαʔϏεΛԣஅతʹར༻͢Δ ϏδωεϞσϧ • FiNCͰͷྫ: ಛεϚʔτΞϓϦ – ಛఆͷܦ࿏͔ΒΞϓϦΛΠϯετʔϧ͢Δͱ ಛϢʔβʔʹͳΓɺ ಛઐ༻ΦϯϘʔσΟϯά͕࢝·Δ – ಛઐ༻ϛογϣϯ͕ղ์͞ΕΔ – ಛϢʔβʔ༻ʹΧελϚΠζ͞Εͨ push௨͕৴͞ΕΔ • User Tag αʔϏε • Onboarding αʔϏε • Mission αʔϏε • Push௨ αʔϏε ͦΕͧΕ͕ ϚΠΫϩαʔϏεʹରԠ
Slide 12
Slide 12 text
݁߹ͷྫ (2) ϚΠΫϩαʔϏεͱԣஅϏδωε !12 • ίϛϡχέʔγϣϯܦ࿏͕ෳࡶʹͳΔ • ͷॴࡏ͕͍͋·͍ʹͳΓ͕ͪ – ֤αʔϏε͝ͱʹରԠࡁ·͍ͤͯΔ͕… – end-to-end ͰͷڍಈͷνΣοΫ͕ෆेͩͬͨΓ – ʮಛεΩʔϜʯͱ͍͏ମݧͷશମΛୡ͢ΔͨΊͷϘʔϧ͕མ͍ͪ͢ • ༏ઌॱҐ͚ͮͷ – ࣗͷαʔϏεͷλεΫͱͲͪΒΛ༏ઌͤ͞Δͷ͔ – ಛͷ߹ʮ༏ઌॱҐ͕࠷ߴʯͰ͋Δ͜ͱ͕໌Β͔ͩͬͨͷͰɺ ͦ͜·ͰͰͳ͔ͬͨ
Slide 13
Slide 13 text
ୈ1෦ ·ͱΊ !13 • ͯ͢ͷϚΠΫϩαʔϏε͕ૄ݁߹ͳͷ͕ཧ – ٕज़ҟ࣭ੑ, খنͰࣗͨ͠৫, etc... • ϚΠΫϩαʔϏεΛ݁߹͍ͯ͠ΔϨΠϠʔͷଘࡏ͕ݱ࣮ • ݁߹ʹΑΓى͖͏Δʹର͠ɺదʹରॲ͢Δඞཁ͕͋Δ – (۩ମࣄྫʹର͢Δղܾࡦɺࠓճ৮Ε·ͤΜ) – ͜ͷ2ͭͷࣄྫʹରͯ͋͠·Γ brilliant ͳղܾࡦͳ͍ɺͱ͍͏ҹ
Slide 14
Slide 14 text
ୈ2෦: ϑϩϯτΤϯυͰͷ݁߹
Slide 15
Slide 15 text
ϑϩϯτΤϯυ (Web, Native App, ...) ϚΠΫϩαʔϏεͷ݁߹ϨΠϠʔ
Slide 16
Slide 16 text
ϑϩϯτΤϯυͰͷ݁߹ !16 • ϑϩϯτΤϯυΤϯδχΞ ΤϯυϢʔβʔΛ࠷ڧ͘ҙࣝ͢Δ – ΤϯυϢʔβʔ͕ݟ͍ͨͷϚΠΫϩαʔϏεͰͳ͍ – ౷߹͞ΕͨϢʔβʔମݧ
Slide 17
Slide 17 text
ϑϩϯτΤϯυͰͷ݁߹ !17 (ҎԼɺຊจΑΓҾ༻) ʮFOLIOͰɺBackends For FrontendsʢBFFʣΛ࠾༻͍ͯ͠Δ ͷͰ͕͢ɺ͜ΕʹΑͬͯ͞·͟·ͳαʔϏεAPIΛఏڙ͢Δࡍ ͷΛΞʔΩςΫνϟతʹղܾ͠Α͏ͱࢼΈ͍ͯ·͢ɻ(தུ) FOLIOͷαʔϏεͰɺޱ࠲Λཧ͢ΔɺגՁΛදࣔ͢Δͱ͍ͬ ͨػೳ͕ɺͦΕͧΕϚΠΫϩαʔϏεͱͯ͠ػೳ͍ͯ͠·͢ɻҰ ํͰɺϢʔβʔ͕ݟΔը໘͔ΒݸผͷαʔϏεΛݺͼग़͢ͱɺ ϒϥβͷෛՙ͕ߴ·ΓɺੑೳྼԽͳͲͷΛҾ͖ىͯ͜͠ ͠·͍·͢ɻBFFͰ֤ϚΠΫϩαʔϏεͷݺͼग़͠Λू͢Δ͜ ͱͰɺ͜ΕΒͷΛղܾ͍ͯ͠·͢ɻ·ͨBFFΛઃ͚Δ͜ͱ ͰɺαʔϏεUIͷ౷ҰײΛอ͍ͪ͢ͱ͍͏ར͋Γ·͢ɻϚ ΠΫϩαʔϏεͰଟذʹΘͨΔػೳ͕ͦΕͧΕಠཱͯ͠ಈ͍͍ͯ ͯɺϑϩϯτΤϯυͰɺͦΕΛूͯ͠1ຕͷը໘ͰݟͤΔɻ Ϣʔβʔ͕ཉ͍͠ͷ͋͘·Ͱը໘Λ௨ͨ͡“ମݧ”ͳͷͰɺͦ ΕΛεϜʔζʹఏڙ͢ΔͨΊʹ֤෦ॺͱ࿈ܞͯ͠ϑϩϯτΤϯυ ͷҰຕͷը໘ʹू͢Δɻ͔֬ʹ͜ΕϋϒతͳׂͰ͢Ͷʯ ϑϩϯτΤϯυΤϯδχΞશମΛͭͳ͙“ϋϒ”ͷΑ͏ͳଘࡏ ΤϯδχΞʹٻΊΒΕΔίϛϡχέʔγϣϯೳྗɹࣾͷ“ϋϒ”ͱͯ͠ػೳ͢ΔϑϩϯτΤϯυΤϯδχΞϦϯάʔFOLIO ݟ ༸ีࢯ - Forkwell Press
Slide 18
Slide 18 text
FiNC͕औΓΜͰ͖ͨ͜ͱ • APIͷϦιʔεࢦԽ • APIΨΠυϥΠϯ • iOS/AndroidͷઃܭΛἧ͑Δ • ৫ͷϦϑΝΫλϦϯά (ϏδωεͰνʔϜׂ͠ɺΫϥΠΞϯτΤϯδχΞͱ αʔόʔΤϯδχΞ͕ಉ͡νʔϜͰ։ൃ) • Backends for Frontends • Micro Frontends ※͍ͣΕࠓͷΠϕϯτͷத Ͱ৮ΕΔτϐοΫͰ͢
Slide 19
Slide 19 text
APIͷϦιʔεࢦԽɾAPIΨΠυϥΠϯ !19 • Backend API ڧ͘ϦιʔεΛҙࣝ͢Δ – ಉ͡υϝΠϯΛද͢ͳΒಉ͡ܗࣜ • Backend API ͷܗࣜΛͰ͖Δ͚ͩἧ͑Δ – ϖʔδϯάͳͲ – جຊతʹنΛकΔ͚ͩͰ͍͍ͷͰɺ όοΫΤϯυͷࣗ༝͕ୣΘΕΔΘ͚Ͱͳ͍ • Ͳ͏ͯ͠ඞཁͳΒҳͰ͖Δ • ͦͦAPI͕ྑ͘ఆٛ͞Ε͍ͯͳ͍ͱɺ ΫϥΠΞϯτͰͷ݁߹ͷෛ୲͕૿͑Δ
Slide 20
Slide 20 text
Backends For Frontends ͱ Micro Frontends !20 • ΞʔΩςΫνϟ͔Βͷ2ͭͷΞϓϩʔν – ͨͩ͠ɺํੑେ͖͘ҟͳΔ • Backends For Frontends ... ੵۃతʹ݁߹ΛҾ͖ड͚ɺෳࡶ͞ʹରॲ • Micro Frontends ... ݁߹ϨΠϠʔΛϑϩϯτΤϯυͷUIʹͣΒ͠ɺബ͘͢Δ
Slide 21
Slide 21 text
ΤϯυϢʔβʔʹͱͬͯͷཧ ։ൃऀɾ৫ʹͱͬͯͷཧ ͦΕΒΛݱ࣮ʹམͱ͠ࠐΉ