クライアントサイドから考える マイクロサービス

D3056a4ff4bd225d03cb44627c18dfc8?s=47 neonankiti
October 30, 2018

クライアントサイドから考える マイクロサービス

・マイクロサービスとクライアント
・マイクロサービス運用の課題と解決
・マイクロアプリ化について

D3056a4ff4bd225d03cb44627c18dfc8?s=128

neonankiti

October 30, 2018
Tweet

Transcript

  1.      FiNC Technologies Inc. / Engineer

    Department Yuki Nanri
  2. 2 Who am I l ໊લೆཬ༐ؾ ͳΜΓ Ώ͏͖ !OFPOBOLJUJ l

    ໊͋ͩόΠιϯ l גࣜձࣾ'J/$5FDIOPMPHJFT l ΫϥΠΞϯταΠυ J04"OESPJE։ൃ l ࠷ۙɺ'MVUUFSʹڵຯ͕͋Δ
  3. 3  l ϚΠΫϩαʔϏεͱΫϥΠΞϯτ l ϚΠΫϩαʔϏεӡ༻ͷ՝୊ͱղܾ l ϚΠΫϩΞϓϦԽʹ͍ͭͯ l ·ͱΊ

  4.     

  5. 5    l 4FSWJDF਺૿Ճ 㲈*OUFSGBDF਺ͷ૿Ճ l ը໘ খ͞ͳίϯϙʔωϯτʹ෼ׂ͞ΕΔ

    l ը໘ʹෳ਺αʔϏε͕ඥͮ͘
  6.    

  7.    

  8. 8  l αʔόʔͷαʔϏεؒͷࠩҟ l αʔόʔͷαʔϏεؒͷࠩҟͷٵऩ l J04"OESPJEʹ͓͚ΔυϝΠϯઃܭͷζϨ

  9. 9     MS  MS MS MS

  10.    

  11. 11       MS  MS

    MS MS
  12. 12  l αʔϏεؒͰಉ͡Ϧιʔε ఏڙ͢ΔKTPO ʹର͢Δදݱ͕ҟͳΔ l ը૾Λදݱ͢ΔϦιʔεͷྫ “image”: {

    “url”: “https://example”, “thumb_url”: “https://example”, “thumb_small_url”: “https://example” , “width”: 144, “height”: 144 } “image”: { “original”: “https://example”, “medium”: “https://example”, “small”: “https://example” } “image”: { “original”: { “url”: “https://example”, “thumb_url”: “https://example”, “thumb_small_url”: “https://example” , “width”: 144, “height”: 144 }, “medium”: {}, “small”: {} }
  13. 13     l αʔϏεؒͰ΋࣮࣭͸ಉ͡υϝΠϯϞσϧͰ͋Δ l ʹ΋ؔΘΒͣɺ$POUFYU͝ͱʹҧ͏Ϧιʔε KTPO

    Λฦ͢
  14. 14  l ϞσϧͱίʔυϕʔεશମΛ׬શʹಉظͤ͞ΔͱΦʔόʔϔου͕େ͖ ͘ͳΓ͗͢Δ͔΋͠Εͳ͍͕ɺ৻ॏʹબ୒ͨ͠αϒηοτΛಉظ͢Δͷ Ͱ͋Ε͹ɺগͳ͍ίετͰརӹͷ΄ͱΜͲΛಘΒΕΔɻ ΤϦοΫɾΤ ϰΝϯε ෳ਺ͷίϯςΩετͰڞ༗ͷϞσϧΛ࣋ͭ͜ͱ

  15. 15  l νʔϜ಺Ͱڞ༗͢Δ͜ͱʹ߹ҙͨ͠υϝΠϯϞσϧͰ͋Δ l ڞ༗νʔϜ಺ʹ૬ஊͳ͠Ͱมߋ͸Ͱ͖ͳ͍ l ςετΛ࣮ߦ͢Δ͜ͱ

  16. 16 Image   l ֎෦ʹެ։͢Δ"1*ͷΨΠυϥΠϯͷ࡞੒ͱӡ༻ αʔόʔ l ڞ༗Χʔωϧ Ϟσϧɺσʔλϕʔεઃܭ

    Λ౷Ұͨ͠Θ͚Ͱ͸ͳ͍ɻ
  17.   

  18. 18     MS   MS MS

    MS
  19. 19   l αʔϏεؒͰಉ͡Ϧιʔεʹର͢Δදݱ͕ҟͳΔ৔߹͕͋Δ l αʔόʔ͸ڞ༗Χʔωϧͱͯ͜͠ΕΛղܾ͢Δ΂͖ l ΞϓϦ಺Ͱ͸ɺಉ͡Ϧιʔε͸ಉ͡Ϟσϧͱͯ͠ѻ͍1SFTFOUBUJPO૚ͱ %PNBJO૚Λద੾ʹ෼཭͍ͨ͠

    l #''
  20. 20 FiNC  (Image) l αʔόʔ͕ಉҰϦιʔεʹҧ͏KTPOΛฦ͢͜ͱΛ૝ఆ͍ͯ͠ͳ͍ l ΫϥΠΞϯτυϝΠϯ಺Ͱ࣮૷ऀ͕ಠࣗͷυϝΠϯϞσϧΛఆٛ͢Δɻ

  21. 21   l αʔόʔ͕ಉҰϦιʔεʹҧ͏KTPOΛฦ͢͜ͱΛ૝ఆ͍ͯ͠ͳ͍ l %%%ʹ͓͚Δڥք͚ͮΒΕͨ$POUFYUͷଘࡏͷೝࣝ l ΫϥΠΞϯτυϝΠϯ಺Ͱ࣮૷ऀ͕ಠࣗͷυϝΠϯϞσϧΛఆٛ͢Δɻ l

    ΫϥΠΞϯτ$POUFYU಺ͰͷυϝΠϯͷίϯηϯαε
  22. 22     l    l

    ΞϓϦ͸ϋϒͰ͋Δ l αʔόʔνʔϜ͸ΫϥΠΞϯτνʔϜͱ෼அ͞Ε͍ͯΔ ιϑτ ΢ΣΞతʹ΋$POUFYU͕ҧ͏ ෼அ͢Δඞཁ͕͋Δ
  23. 23      l ಉҰ৬ೳ಺ͰͷίϛϡχέʔγϣϯڧԽ l "OESPJE4IBSF

    "OESPJEि࣍ϛʔςΟϯά l ਫ༵Ͳ͏Ͱ͠ΐ͏ J04ि࣍ϛʔςΟϯά l ໨త͸ɺγΣΞͱ߹ҙܗ੒ͷσΟεΧογϣϯ
  24. 24  l %%%ʹ͓͚Δڥք͚ͮΒΕͨ$POUFYUͷଘࡏͷೝࣝ l ෗ഊ๷ࢭ૚ͷઃஔ l ΫϥΠΞϯτ$POUFYU಺ͰͷυϝΠϯͷίϯηϯαε l ಉҰ৬ೳ಺ͷίϯηϯαεڧԽ

  25. 25     l αʔόʔؒͷࠩҟ͸ڊେͳϞϊϦγοΫͰ΋ى͜Γ͏Δ l ϚΠΫϩαʔϏε͸ΫϥΠΞϯτͷજࡏత՝୊Λൃݟ͢Δ͖͔͚ͬʹա ͗ͳ͍

    l 'J/$5FDIOPMPHJFTͰ͸ͨ·ͨ·ɺϚΠΫϩαʔϏεͩͬͨ l ΋ͪΖΜzى͜Γ΍͢͞z͸͋Δ
  26. iOS/Android 

  27. 27 iOS/Android    MS  MS MS MS

    
  28. 28     l ৬ೳ͝ͱͷνʔϜମ੍ l J04"OESPJEͰίϛϡχέʔγϣϯ͕෼அ͞Ε͍ͯΔɻ

  29. 29  l J04"OESPJEʹ͓͚Δઃܭͷ૬ҧ l J04"OESPJEؒͷυϝΠϯϞσϧͷࠩҟ l ձٞʹJ04"OESPJEͷΤϯδχΞ͕Ұਓͣͭඞཁ

  30. 30 Client Fusion l $MJFOU'VTJPOͱ͸ʁ l J04"OESPJEͷ෼அ͞Εͨίϛϡχέʔγϣϯͷڮ౉͠ l ໨త l

    J04"OESPJEʹ͓͚Δ࣮૷ઃܭͷࠩ෼ͷղফ l ίϛϡχέʔγϣϯίετͷ࡟ݮ ձٞͳͲ l J04"OESPJEͷ૬ޓͷϑϨʔϜϫʔΫཧղ 4XJGU ,PUMJO
  31. 31    l ΫϥΠΞϯτશମఆྫ l J04"OESPJEͷ։ൃϝϯόʔ͕ू·Δ l ՝୊ͷڞ௨ೝࣝͷػձͷఏڙ

    l ΫϥΠΞϯτԣஅతͳٕज़ͷγΣΞ l ΫϥΠΞϯτϦʔυఆྫ l J04"OESPJEͷ5FDI-FBE͕'VTJPO͢ΔͨΊͷઓུΛཱͯΔ
  32. 32  l ݱঢ়͸΄΅ᴥᴪ͕ͳ͍ l ଈޮੑ͸ͳ͍ l ࠷ॳ͸࣭ΑΓස౓ʹϑΥʔΧε͢Δɻ l த௕ظతʹΈΔͱ

    l ࣄલʹઃܭΛγΣΞ͢Δश׳͕Ͱ͖Δ l ϨϏϡʔ࣌ʹؾ෇͖΍͍͢
  33. 33    l J04"OESPJEԣஅͷίϛϡχέʔγϣϯػձࣗମ͸(PPE l ؔΘΔਓ਺͕ଟ͍ ҙࢥܾఆͷεϐʔυͷ௿Լ l

    J04"OESPJEΤϯδχΞͷΈͰू·Δͱʮ΂͖࿦ʯ΁ͷൺॏ͕ॏ͘ͳΓ ΍͍͢ɻ l ϏδωεΠϯύΫτ΁ͷ؍఺͕ബΕ͕ͪ
  34. 34   l αʔϏε ϏδωεΠϯύΫτͷ࠷খ୯Ґʹॏ఺Λஔ͍ͨνʔϜମ੍ l ΤϯδχΞͷΈͳΒͣɺσΟϨΫλʔɺσβΠφʔΛؚΜͩνʔϜΛͭ ͷ୯Ґʹ

  35. 35   vs  l ίϯ΢ΣΠͷ๏ଇ l ૊৫ͱιϑτ΢ΣΞͷߏ଄͸ಉ͡ʹͳΔ l

    ঢ়گʹԠͯ͡ɺॎԣʹνʔϜΛ෼அͰ͖Δ͜ͱ͕ॏཁ l εϞʔϧνʔϜͰੜ࢈ੑΛߴΊΔ
  36.   

  37. 37   l ΫϥΠΞϯτΞϓϦ಺ͷ෼ׂ͞ΕͨϚΠΫϩαʔϏε ػೳ l ֤υϝΠϯ͕ΞϓϦϓϩηεΛ࣋ͭ l υϝΠϯຖͷΞϓϦΠϯετʔϧ

    l ࣗ཯ੑ ಠཱͨ͠σϓϩΠϝϯτ l ˞ 'J/$5FDIOPMPHJFTͰউखʹ໋໊
  38. 38 (iOS/Android) l 8FCͱΞϓϦͷγʔϜϨεͳମݧ͕ग़དྷͳ͍ l 8FCΞϓϦʹ͓͍ͯɺະΠϯετʔϧ࣌ʹΠϯετʔϧ͕ඞཁ l ΞϓϦαΠζ͕େ͖͍ l Ұ෦ͷίϯςϯπͷͨΊʹશମΛΠϯετʔϧͨ͘͠ͳ͍

  39. 39   l Πϯετʔϧεςοϓͷ࡟ݮ l ΞϓϦαΠζͷ࡟ݮ l ࢀߟ l

    *OTUBOU"QQTIUUQTEFWFMPQFSBOESPJEDPNUPQJDHPPHMF QMBZJOTUBOU l "UMBTTJBOͷ+JSBͳͲ͸ରԠ "OESPJE
  40. 40   ≒   l ϚϧνϞδϡʔϧԽ l ॎԣͷ෼அ

    l ྫ <ॎ>ϝσΟΞػೳͷ੾Γग़͠ <ԣ>ೝূػೳ l ϚϧνϞδϡʔϧͷ͢ʍΊ l IUUQTTQFBLFSEFDLDPNLHNZTIJONVMUJNPEVMFOP TVTVNF
  41. 41    l ϚΠΫϩΞϓϦ͸͍ۙະདྷʹ͘Δɻ l ΑΓ8FCʹ͍ۙγʔϜϨεͳମݧ l ϚΠΫϩΞϓϦʹඋ͑ͨୈҰา͸ϚϧνϞδϡʔϧԽ͔Β࢝·Δ

  42. 42  l ϚΠΫϩαʔϏε͸ΫϥΠΞϯτͷજࡏతͳ໰୊Λݕ஌͢ΔͨΊͷ͖ͬ ͔͚ʹ͗͢ͳ͍ l ૊৫ମ੍ΛॎԣͱॊೈʹมߋͰ͖Δ͜ͱɺ·ͨιϑτ΢ΣΞΞʔΩςΫ νϟ͕ಉ༷ʹมߋՄೳ͔ʁ l ϚΠΫϩΞϓϦԽͷํ޲ʹਐΜͰ͍Δ