How should we face with microservices (我々はマイクロサービスとどう向き合うべきか)

7fefbc0ddbb13f3bfde050f85acfa0c4?s=47 ota42y
March 22, 2019

How should we face with microservices (我々はマイクロサービスとどう向き合うべきか)

Rails Developers Meetup 2019で話した「我々はマイクロサービスとどう向き合うべきか」の資料です
https://railsdm.github.io/

質疑応答についてはこちら
https://railsdm.herokuapp.com/issues/128

7fefbc0ddbb13f3bfde050f85acfa0c4?s=128

ota42y

March 22, 2019
Tweet

Transcript

  1. How should we face with microservices (զʑ͸ϚΠΫϩαʔϏεͱͲ͏޲͖߹͏΂͖͔) ota42y (FiNC Technologies)

  2. Now, every Tom, Dick, and Harry think microservices (࣌୅͸ೣ΋ḏࢠ΋ϚΠΫϩαʔϏε)

  3. Whether you do it or not, you can not avoid

    this topic ΍Δʹͯ͠΋ɺ΍Βͳ͍ʹͯ͠΋ ͜ͷ࿩୊͸ආ͚ΒΕͳ͍
  4. Today’ topic • FiNC Technologies use microservices 5 years •

    Why we use microservices • Good point in microservices • Bad point in microservices and how to solve these problems • How should we face with microservices ӳޠ͸͜͜Ͱྗਚ͖·ͨ͠…
  5. ࣗݾ঺հ • @ota42y • FiNC TechnologiesͷαʔόαΠυΤϯδχΞ • ϚΠΫϩαʔϏεΑΖͣຊΈ͍ͨͳͷΛग़ͯ͠·͢ • ిࢠ൛΋͋ΔΑ(ƅ㱼ƅ)oኯƅ


    https://booth.pm/ja/items/1040359
 https://booth.pm/ja/items/824288 • དྷ݄ͷٕज़ॻయͰͦͷ͕̏ग़ΔΑ Ұߦ΋ॻ͍ͯͳ͍…
  6. ͜͜·Ͱ1:30͙Β͍

  7. FiNCʹ͓͚ΔϚΠΫϩαʔϏεߏ੒ • ࣄۀ͕෯޿͘ͳΔ૝ఆͰॳظ͔ΒϚΠΫϩαʔϏεʹ • ΞϓϦ/EC/BtoBʹࣄۀ෦͝ͱʹίʔυϕʔε͕ผ • ࣄۀ෦಺ʹߋʹෳ਺ͷνʔϜͱϚΠΫϩαʔϏε (શ෦Ͱ50ݸ͙Β͍) • αʔϏε͸ͪΌΜͱ෼ׂ͞ΕͯΔ

    (No ෼அ͞ΕͨϞϊϦε) • ΄΅Rails͚ͩͰग़དྷͯΔϚΠΫϩαʔϏε • ෳ਺ͷٕज़ελοΫ(Polyglot)͸΄ͱΜͲͳ͍͚Ͳे෼خ͍͠
  8. • 1ࣄۀ෦ʹ਺ݸఔ౓ͷαʔϏεͰ͸໰୊͸ى͖ͳ͔ͬͨ • ࣄۀͷ੒௕ͱͱ΋ʹϚΠΫϩαʔϏε͕େ͖͘ͳΔ ࠷ॳ͸਺͕গͳ͔ͬͨ ৄ͘͠͸ʮFiNCͰͷ5೥ؒʹ౉Δ ϚΠΫϩαʔϏεͷҭͯํʯͰ https://speakerdeck.com/shinofumijp/microservices-at-finc

  9. • ڊେͰΧΦεͳϞϊϦγοΫʹ੒௕ͨ͠ • ͍ΖΜͳػೳ͕ͪ͝ΌͬͱೖͬͯΔ • CI௨͢ͷ40෼ɺը໘reloadʹ6෼ • 150ߦ͙Β͍ͷcaseจ • controllerͰskip_callback*4ͱ͔

    ΞϓϦͷόοΫΤϯυαʔόͷڊେԽ
  10. ૊৫ͱͯ͠ͷཁٻࣄ߲ • ϦϑΝΫλϦϯάΑΓػೳ։ൃ༏ઌ • ձࣾͷϑΣʔζతͳཧ༝ • طଘػೳͱؔ܎͕ബ͍৽ػೳ͕ଟ͍ • طଘͷϞϊϦγοΫ΁ͷػೳ௥Ճ͸େมͰ։ൃͷ଎౓͕஗͘ͳΔ •

    ΞϓϦνʔϜΛ͞ΒͳΔࢠνʔϜʹ෼ׂ • ࢠνʔϜ͕ಠࣗʹPDCAΛճͤΔΑ͏ʹӨڹൣғͷॖখ
  11. ͞ΒͳΔϚΠΫϩαʔϏεԽ • ΞϓϦͷόοΫΤϯυΛ͞Βʹࡉ͔͘ϚΠΫϩαʔϏεʹ • ૊৫ͱͯ͠΋ϚΠΫϩαʔϏε͕ΑΓ͸·Δಈ͖
 DHHʮϚΠΫϩαʔϏε͸૊৫ύλʔϯʯ • ৽ػೳ։ൃ΍ɺطଘػೳͷ੾Γग़͠౳΍Γํ͸༷ʑ • ݁Ռͱͯ̍͠ɽ̑೥ͰαʔϏε਺͕̎ഒҎ্ʹ

    • ͏·͍ͬͨ͘෦෼΋͋Ε͹͏·͍͔͘ͳ͍෦෼΋…
  12. ϚΠΫϩαʔϏεͰخ͍͠ͱ͜Ζ 4:40ͳΒ͍͍ϖʔε

  13. • lifelog(า਺ɺମॏɺਭ຾ɺ৯ࣄɺମԹ…) ೔ʑͷϥΠϑϩάσʔλΛ࢘ΔαʔϏε

  14. • CI͕̐̌෼ˠ̑෼ʹ • ̍೔̍̌ճҎ্Ͱ͖Δ(ƅ㱼ƅ)oኯƅ • Ϋϥεߏ଄΋ґଘ͕গͳ͍ • σʔλͷه࿥ͱ෇ਵ͢Δॲཧ͕෼͚ΒΕͯ࢓༷͕γϯϓϧʹ ೔ʑͷ։ൃ଎౓͸্͕Δ

  15. • αʔϏε಺ͷมߋʹର͢ΔӨڹൣғ͕খ͘͞ͳΔ • ਺ेݸͷϞσϧ͔͠ͳ͘ɺؔ࿈΋੔ཧ͞ΕͯΔ(چϞϊϦγοΫ͸1000ͱ͔) • ݟ௨͠΍͘͢ɺ৽͍͠ਓͷΩϟονΞοϓͳͲ΋ָ • ઐ༻νʔϜͰPDCAΛճͤΔ • ͢Δ΂͖͜ͱͱɺ͠ͳ͍͜ͱ͕໌֬ʹ

    • ҙࢥܾఆ͕ૣ͘ͳΔ ϓϩάϥϛϯάҎ֎΋خ͍͠
  16. Α͋͘Δ ʮϚΠΫϩαʔϏε͕خ͍͠ཧ༝ʯ ͸ਖ਼͍͠

  17. ϚΠΫϩαʔϏε͕૿͑͗͢Δͱ • ଞͷ෼ׂ΋੒ޭͯ͠ͲΜͲΜαʔϏε͕૿͑Δ • FiNCͷ৽ػೳΛͲΜͲΜ࡞͍ͬͯ͘ઓུͱϚον • ࠓ͸̑̌ݸ͙Β͍Ͱ (ΤϯδχΞ਺ × 2)

    < αʔϏε਺
 (ΫοࣾΑΓͪΐͬͱগͳ͍਺Λ1/5͙Β͍ͷਓ਺Ͱϝϯςͯ͠Δ…) • ঃʑʹͭΒ͍αʔϏε͕ग़࢝ΊΔ…
  18. ۩ମྫɿϥϯΩϯάϚΠΫϩαʔϏε • า਺ΛҰఆͷάϧʔϓͰڝ͏ػೳΛ୲͏αʔϏε 7:20

  19. ͍͍ײ͡ͷϚΠΫϩαʔϏε෼ׂͩͬͨ • ৄ͍͠ઃܭͱ͔͸خ͍͠ͱ͜Ζ͸ٕज़ϒϩάʹ…
 ʮϥϯΩϯάʯͷϚΠΫϩαʔϏεΛ࡞ͬͨ࿩
 https://medium.com/finc-engineering/ranking-microservice-1dda92714260 • ӡ༻΋͍͍ײ͡ʹճͬͯΔ • طଘͷ΍͹͍ϞϊϦγοΫͱ෼ׂͰ͖ͨ •

    ϏδωεϩδοΫ΋͔ͬ͠Γ٧·͍ͬͯΔ • ଞͷϚΠΫϩαʔϏεͱͷ݁߹౓߹͍΋গͳ͍
  20. ἝΛΉ͘ ϚΠΫϩαʔϏεͷෛͷଆ໘

  21. ͍ͬͺ͍͋Δ͚Ͳ͚̎ͭͩ • ηΩϡϦςΟରԠͱ͔͕೺ѲͰ͖ͳ͘ͳͬͨ • υϝΠϯ͕มΘͬͯ݁߹͕ڧ͘ͳͬͨ

  22. ηΩϡϦςΟରԠ͕खബʹ • ruby 2.3.1ͷ··2೥͙Β͍์ஔ • gemͷ੬ऑੑ΋ಛʹରԠ͞Εͣ • GithubͷSecurity AlertͰΘ͔ͬͨ •

    ӡྑ͘໰୊ʹͳΒͳ͔͚ͬͨͲਫ਼ࠪͯͨ͠Θ͚Ͱ͸ͳ͍
  23. ϞϊϦγοΫͳγεςϜͱൺ΂Δͱ • rankingͷαʔϏεΦʔφʔ͸̍ਓ͚ͩͰ݉೚ • ઐ೚νʔϜΛஔ͚ͳ͔ͬͨ • Χόʔ΋୭΋Ͱ͖ͳ͔ͬͨ • ϞϊϦγοΫͩͱ໨͕ଟ͘ɺ೺ѲͰ͖ͳ͍ঢ়ଶ͸ආ͚ΕΔ •

    Ξοϓσʔτࣗମ͸ࠔ೉ʹͳΔ৔߹΋(มߋ͕େ͖͍ͱͭΒ͍) • Ξοϓσʔτͯ͠ͳ͍ϦεΫΛෳ਺ਓͰڞ༗Ͱ͖ɺίϯτϩʔϧԼʹ͓͚Δ
  24. ϚΠΫϩαʔϏεͷํ͕ରԠ͸ָ • Өڹൣғ͕ݶΒΕͯΔͷͰΞοϓσʔτ͠΍͍͢ • ؾ͕͍͔ͭͯΒͷΞοϓσʔτ͸͙ͩͬͨ͢ • νʔϜΛ௒͑Δͱ࡞ۀҎ֎ͷͱ͜Ζ͸େม • ผνʔϜʹΞοϓσʔτΛଅ͢ࡍͷਐΊํ •

    ผνʔϜͷαʔϏε͕·͍ͣঢ়ଶͩͱ೺Ѳ͢Δίετ
  25. ϞϊϦγοΫ͸࡞ۀ͸େม͕ͩ࿙Εʹ͘͘ ϚΠΫϩαʔϏε͸࡞ۀ͸؆୯͕ͩ࿙Ε΍͍͢

  26. FiNCͷରࡦɿ࿙ΕΛݮΒ͢ • νʔϜԣஅతʹಈ͘ू·ΓΛ࡞Δ • gem΍rubyͷόʔδϣϯҰཡΛݟΒΕΔΞϓϦ • ΞοϓσʔτͷඞཁੑΛҰཡͰ͖Δ • ྫɿAWS SDK

    v2ͱ͔ https://github.com/ota42y/gemicoma
  27. FiNCͷରࡦɿ࣮ࡍͷ࡞ۀΛਐΊΔ • ि2hͷׂΕ૭Λ࣏࣌ؒ͢Λ֬อ • όʔδϣϯΞοϓͨ͠Γwarningফͨ͠Γ • Ϗϧυ؀ڥΛ੔͑ͨΓ • Railsͷ੬ऑੑରԠ͸1೔Ͱ8ׂ͙Β͍ऴΘͬͨ(CVE-2019-5420)

  28. ଞʹ΋͋ΔΑ 12:15

  29. υϝΠϯ͕੒௕ͯ͠มΘΔ • ranking͸౰ॳ͸্ख͘ճ͍ͬͯͨ • ϏδωεϩδοΫ͕٧·ͬͯΔ • ґଘؔ܎΋΄΅ແ͍

  30. ঃʑʹϥϯΩϯάͷػೳ͕૿͑Δ • BtoBͰܖ໿ͯ͠Δاۀ༷಺Ͱͷา਺ϥϯΩϯά • اۀ༷Λ؅ཧ͢ΔαʔϏεͱ࿈ܞ • ͋Δਓ෺ͷίϛϡχςΟʹඥ෇͘ϥϯΩϯά • ίϛϡχςΟͷػೳΛ؅ཧ͢ΔαʔϏεͱ࿈ܞ •

    ϥϯΩϯάΛ׆͔ͨ͢ΊʹଞͷϚΠΫϩαʔϏεͱ݁߹͍ͯ͘͠
  31. αʔϏεԣஅͷػೳ։ൃʹͳΔ • rankingͷׂ̓͸communityͷϚΠΫϩαʔϏε͕ؔ࿈͢Δ • communityͷϥϯΩϯά͸chat(ผαʔϏε)ʹ݁Ռ͕ग़Δ • ̏ͭͷϚΠΫϩαʔϏεΛಉ࣌Ͱ৮Δঢ়ଶʹ 3BOLJOH $PNNVOJUZ $IBU

  32. αʔϏεԣஅͷػೳ։ൃʹͳΔ • ϚΠΫϩαʔϏε͝ͱͷԻָੑͷҧ͍Λཧղͯ͠࡞Δͷେม • υϝΠϯ΋੾Γʹ͍͘ • ຖ೔chatʹதؒใࠂΛૹ৴͢ΔػೳΛͲ͜ʹ࣋ͨͤΔ͔ 3BOLJOH $PNNVOJUZ $IBU

  33. υϝΠϯ͕มΘ͍ͬͯͬͨ • ݩʑ͸༷ʑͳཁૉͰͷϥϯΩϯάΛߦ͑ΔΑ͏ʹ͍ͨ͠ཁٻ • communityαʔϏεͱ࿈ܞ͍ͨ͠ཁٻ͕΄ͱΜͲ • ϞδϡʔϧͰΑ͔ͬͨ෺ΛαʔϏεʹͯ͠͠·ͬͨͬΆ͍

  34. ආ͚Δͷ͸೉͍͠ • ϚΠΫϩαʔϏεʹ͠ͳ͍બ୒͸೉͔ͬͨ͠ • طଘͷϞϊϦγοΫ͕΍͹͗ͯ͢·ͱ΋ʹ։ൃͰ͖ͳ͍ • ͖Ε͍ʹ࡞ͬͯ΋੒ޭ͠ͳ͍ͳΒҙຯ͕ͳ͍… • Ͳ͏੒௕͢Δ͔ΛݟۃΊΔͷ͸೉͍͠ •

    ະདྷ༧ଌ͸ແཧ • DHHͩͬͯ3ճॻ͖௚ͯ͠ΔͷʹҰൃͰద੾ͳυϝΠϯΛ੾Δͷ͸Ή͍ͣ
  35. Ͳ͏͢Ε͹͍͍͔ • ϚΠΫϩαʔϏεͷ౷߹ͱ͍͏Ҋ͕ग़͍ͯΔ • Martin FowlerʮΊͬͨʹมߋ͞Εͳ͍γεςϜͷ෦෼͸ɺݱࡏมߋΛͨ͘͞Μߦ͍ͬͯΔ෦෼ͱ͸ҟ ͳΔαʔϏεʹ͢Δ΂͖Ͱ͢ɻ΋͠2ͭͷαʔϏεΛಉ࣌ʹมߋ͢Δ͜ͱ͕Կ౓΋͋Ε͹ɺͦΕ͸ͦ ΕΒͷαʔϏεΛ̍ͭʹ͢΂͖αΠϯͰ͢ɻʯ • ϞϊϦεʹ໭ΔͷͰͦΕ͸ͦΕͰͭΒ͍

    • ·ͨυϝΠϯ͕มԽͨ͠ͱ͖ʹ෼ׂ͠௚͢ͷ͸େม • Ͱ΋͜ͷ··࡞Γଓ͚Δͷ΋ͭΒ͍ http://kimitok.hateblo.jp/entry/2014/11/09/211820
  36. Έ͍ͨͳ࿩͕ଞʹ΋৭ʑ • σʔλͷ੔߹ੑͷ໘ • τϥϯβΫγϣϯ͸ਓྨ͕खʹೖΕͨฒྻॲཧʹର͢Δڧྗͳ෢ث • Πϯϑϥ • ؂ࢹɺো֐ͷ࿈࠯ɺҧ͏ٕज़ελοΫͷσϓϩΠɾνϡʔχϯάɺetc… •

    νʔϜ࿈ܞͷ໘ • ద੾ͳݖݶҠৡɺνʔϜΛ·͍ͨͩਓһௐ੔ɺϚΠΫϩαʔϏεͷςετɺϢʔβମݧͷ౷Ұ • αʔϏεΛ·͍ͨͩ࣌ͷΦʔόʔϔου • APIΛఆٛ͢Δࡍͷίϛϡχέʔγϣϯ͸େมɺΞϓϦ͔Βෳ਺ͷϚΠΫϩαʔϏεʹ໰͍߹ΘͤΔ௨৴ίετ ϚΠΫϩαʔϏεΑΖͣຊʹ·ͱΊͨΓɺॻ͍͍ͯͬͨΓ͠·͢…
  37. 17:20

  38. ϚΠΫϩαʔϏεಛ༗ͷ໰୊Ͱ͸ͳ͍ • ϚΠΫϩαʔϏεͷ໰୊͸ϞϊϦγοΫͰ΋ى͖͏Δ
 ηΩϡϦςΟɺ෼ׂͷࣦഊɺνʔϜ࿈ܞ • ϚΠΫϩαʔϏεʹΑͬͯ໰୊͕Կഒʹ΋૿෯͞ΕΔ • αʔϏεͷϦϑΝΫλϦϯά͸ϞϊϦγοΫΑΓେม • FiNCͰ͸

    ਓ਺ < αʔϏε਺ ͳͷ͕ΑΓେม
  39. ϚΠΫϩαʔϏεͷෳࡶੑ • ϚΠΫϩαʔϏεͷ໰୊ͷ೉͠͞͸શମͷෳࡶੑͱൺྫ͢Δ • 2,3ݸఔ౓ͳΒͦ͜·Ͱେม͡Όͳ͍ • αʔϏεͷ࿈ܞ͕গͳ͚Ε͹ਏ͞͸௿͍
 ΞΧ΢ϯτ͚ͩڞ༗͢Δͱ͔ • جຊతʹαʔϏε΍࿈ܞΛ૿΍͢ͱෳࡶʹͳΓίετ͕ߴ͘

    • @yoshioriʮ֤αʔϏε͸୯७Ͱ΋γεςϜશମͱͯ͠͸ෳࡶʹͳΔʯ
 (DevOps, Immutable Infrastructure, microservices ͦͯ͠ Chaos Engineering) • ҰํͰϞϊϦγοΫͩͱϚΠΫϩαʔϏεͷྑ͞͸ಘΒΕͳ͍…
  40. ૊৫͕ରԠͰ͖Δෳࡶੑ͸্͕Δ • ਓ਺͕͍Ε͹ରԠͰ͖Δ͜ͱ͸ଟ͍ • ̍ϚΠΫϩαʔϏε͋ͨΓ਺ਓ͓͚Ε͹ΑΏ͏ • ̏ਓͷελʔτΞοϓͰ̍̌ϚΠΫϩαʔϏεͱ͔ϠόΠ • ૊৫ͷ੒௕ʹΑͬͯෳࡶͳ໰୊΁ͷରॲʹϦιʔεΛׂ͚Δ •

    ΠϕϯτΞʔΩςΫνϟ΍Envoyͷಋೖɺ݈શੑΛ֬อ͢Δ࣌ؒ • ෳࡶͳϚΠΫϩαʔϏε΋͞͹͚ΔΑ͏ʹͳΔ
  41. Monolithic hell Power of organization Complexity of 
 microservices

  42. Monolithic hell Microservices hell Power of organization Complexity of 


    microservices
  43. Power of organization Complexity of 
 microservices Best microservices Monolithic

    hell Microservices hell
  44. Ͳ͏͢Ε͹ྑ͍ͷ͔ • ྫ͑͹FiNCͰ্ख͍ͬͨ͘ͷ͸ • ࣄۀ෦Ϩϕϧɺ։ൃӡ༻νʔϜ͕͓͚ΔϨϕϧͰͷϚΠΫϩαʔϏε • ϞϊϦγοΫ಺Ͱ͋Δఔ౓υϝΠϯ͕ܾ·ͬͨ΋ͷʹରͯ͠બ೚νʔϜΛ࡞Δ • ࣾ಺SaaS͙Β͍ͷن໛Ͱ࡞ͬͯ͘ͷ͕ཧ૝ͬΆ͍ •

    બ೚νʔϜ͕Ͱ͖Δ͙Β͍͔ɺࣄۀ෦͕ஔ͚Δ͔ • ୯ʹυϝΠϯͰ੾Δ͚ͩͩͱ͏·͍͔͘ͳ͍͜ͱ͕͋Δ • ϚΠΫϩαʔϏε͸ӡ༻͢ΔਓͨͪΛ͖ͪΜͱ෇͚ͳ͍ͱࢮ͵ • FaaSϕʔεʹ͢Δͷ͸ෳࡶ౓͕Ұؾʹ͕͋Δ͔Β΍Ίͨ΄͏͕ྑͦ͞͏
  45. ϚΠΫϩαʔϏε͸ຑༀ • Θ͔͍ͬͯͯ΋෼ׂΛؒҧ͑Δ
 ϚΠΫϩαʔϏεͷ৘ใ͸ຊ΍ࣄྫͰ͔ͳΓ༧शͨͭ͠΋Γͩͬͨ • ద੾ʹ࢖͑͹خ͍͕͠ɺඞཁҎ্ʹෳࡶʹͯ͠͠·͏

  46. ϚΠΫϩαʔϏε͸ຑༀ • ѹ౗తͳ୹ظͷྑ͕͞ಘΒΕΔ • ϚΠΫϩαʔϏεΛ෼ׂ͢ΔͱίʔσΟϯά͸ָ͘͢͝ • ௕ظతͳίετ͸ݟ͑ʹ͍͘ • কདྷࣦഊ͢Δ͔ΛࠓݟۃΊΔͷ͸೉͍͠ •

    ಠཱͯ͠ಈ͘ྑ͕͞ɺશମͷෳࡶ͞ͷ೺ѲΛ೉͘͢͠Δ • ແࢹ͢Δѹྗ΋େ͖͍ • ࠓΛ৐Γӽ͑ͳ͍ͱະདྷ͸ͳ͍ͱ͍͏ࣄ࣮ • ѹ౗తͳ։ൃମݧͷྑ͞ͷલͰ͸௕ظతͳίετ͸খ͘͞ݟ͑Δ
  47. ϚΠΫϩαʔϏεͷྑ͞Λڗडͭͭ͠ কདྷతʹਏ͘ͳΒͳ͍ঢ়ଶʹ͍ͨ͠

  48. ϥούʔϚΠΫϩαʔϏε • ཪʹϞϊϦγοΫΛ͓͍ͯ৽ػೳ͚ͩ෼ׂ • ඞཁͳσʔλ͸چαʔϏεʹ໰͍߹ΘͤΔ • ܰྔʹ࡞ΕΔͷͰࣦഊͯ͠΋౷߹͠΍͍͢ • Ϩεϙϯε͸஗͘ͳΔ چαʔϏε

    ৽αʔϏε
  49. ϚΠΫϩαʔϏε΁ͷدੜ • ։ൃ͠΍͍͢৔ॴͷҰ෦ʹϞδϡʔϧΛ੾ͬͯಠཱͯ͠࡞Δ • ϚΠΫϩαʔϏεʹҭͨͳ͍Մೳੑ΋͋ΔϨϕϧͷখ͍͞΍ͭ • BFFͷҰ෦ʹدੜͯ͠΍ͬͯΔ #'' ৽αʔϏε

  50. ΤΫιμεαʔϏε • ৽ػೳΛ࣮૷͢ΔͨΊͷ৽ͨͳϞϊϦγοΫΛ࡞Δ • طଘͷϞϊϦγοΫ͸͜ΕҎ্৮Βͳ͍ • खΛՃ͑ΔͳΒͬͪ͜ʹ࡞Δ(ඞཁͳػೳ͚ͩ୤ग़ͤͯ͘͞) • ͖Ε͍ͳϞϊϦγοΫ͸ԼखͳϚΠΫϩαʔϏεΑΓྑ͍ͱ͍͏Ծఆ •

    ࣾ಺Ͱ࿩ͨ͠Ҋஈ֊ͳͷͰ஌ݟ͸·ͩͳ͍
  51. 24:00

  52. ϚΠΫϩαʔϏεʹ͓͚ΔRails • ϚΠΫϩαʔϏεͰ͸খʙதن໛ʹཹΊΔͷ͕ྑͦ͞͏ • খ͗͢͞Δͱ࿈ܞ͕૿͑ͯෳࡶʹͳΔ • େ͖͗͢ΔͱϞϊϦγοΫ͕ਏ͍ • ͦͷن໛αʔϏεΛ࡞ΔͷʹRails͸ศར •

    Ϩʔϧͷෑ͍ͯΔൣғ͸࠷଎Ͱۦ͚ൈ͚ΒΕΔ • ෑ͍ͨϨʔϧͷઌ(RailsͰͭΒ͍ঢ়ଶ)ʹདྷͨΒαʔϏε෼ׂͷγάφϧ
  53. ϚΠΫϩαʔϏεʹ͓͚ΔRails • RailsͰϚΠΫϩαʔϏε෼ׂ͸େม • Rails͸ີ݁߹ʹͳΓ΍͍͢ • ૄ݁߹ͷ͖Ε͍ͳઃܭΑΓɺີ݁߹ʹΑΔεϐʔυˍϓϩμΫτͷ੒ޭ • ෼ׂ͠΍͍͢ઃܭ΁ͷϦϑΝΫλϦϯάख๏΍ɺີ݁߹Λ΄Ͳ͖ͭͭ෼ׂ͢ Δख๏ͷ஌ݟ͕ඞཁ

    • ϚΠΫϩαʔϏεٕज़ސ໰ɺ୭͔͍ͳ͍Ͱ͔͢Ͷ… Day 2: @yasaichi Ruby on Railsͷਖ਼ମͱ޲͖߹͍ํɹͰ࿩͞ΕΔ͸ͣ…ͨͿΜ…
  54. ଟ෼ࠓ27෼͙Β͍

  55. ະདྷͷϚΠΫϩαʔϏεͷ࿩

  56. ϚΠΫϩαʔϏε͸ա౉ظ • CI/CD΄ͲϚΠΫϩαʔϏε͸੒ख़ͯ͠ͳ͍ • CI͸ঃʑʹ੒ख़͍ͯͬͨ͠ • ֓೦ͷఏএʙӡ༻πʔϧͷొ৔ʙSaaSͳͲͰ؆୯ʹ • ϚΠΫϩαʔϏεΛ΍Δʹ͸·ͩύϫʔ͕ཁΔ •

    Πϯϑϥ໘΍ෳ਺ϚΠΫϩαʔϏεΛԣஅ͢Δ໰୊΁ͷରॲ • k8s΍ECSͱ͔Ͱग़͍ͯΔ͕·ͩ·ͩେม…
  57. ϚΠΫϩαʔϏεपลπʔϧͷਐԽ • αʔϏεϝογϡ͸खܰʹɾߴػೳʹͳͬͯΔ • AWS΍GCPͷϚωʔδυαʔϏεϝογϡ • Envoy+IstioͰϓϩμΫτΛग़͢TetrateΈ͍ͨͳελʔτΞοϓ΋ • ϚΠΫϩαʔϏεΛલఏͱͨ͠ϓϩάϥϛϯάݴޠ •

    Ballerina (Cloud Native Computing Foundation੡) • ෳ਺γεςϜΛԣஅͨ͠τϥϯβΫγϣϯͷύλʔϯ • SageύλʔϯɺOnline Event Processing
  58. ਓྨͷਐԽͰϚΠΫϩαʔϏε͸؆୯ʹ • AWS΍Docker͕ͳ͍࣌୅͸ϚΠΫϩαʔϏε͸େن໛͡Όͳ͍ͱແཧ • ࠓ͸தن໛͙Β͍ͷ૊৫Ͱ΋͋Δఔ౓ෳࡶͳ΋ͷʹରԠͰ͖Δ • ςΫϊϩδʔͷਐԽ΍஌ݟ͕ஷ·Δͱখن໛Ͱ΋ԸܙΛड͚ΒΕΔ͔΋ • FaaS͕౰ͨΓલͷੈք͸͍͔ͭ͸དྷΔ͔΋ •

    (ϚΠΫϩαʔϏεͱ͍͏֓೦͔͸ո͍͠ɻPlatform programmingͳੈք)
  59. Reduction of Microservices Hell Power of organization Monolithic hell Complexity

    of 
 microservices Expansion of best microservices Micro- services hell
  60. ·ͱΊ • େن໛ʹͳͬͨΞϓϦʹϚΠΫϩαʔϏε͸ޮ͘ • ϚΠΫϩαʔϏε͸ຑༀ • Θ͔͍ͬͯͯ΋͍ͭෆཁʹෳࡶͳϚΠΫϩαʔϏεʹͯ͠͠·͏ • ϚΠΫϩαʔϏεͷ௕ظతͳίετ͸ݟ͑ʹ͍͘ •

    ৭Μͳ஌ݟΛ࢖ͬͯ༻๏༻ྔΛकͬͨϚΠΫϩαʔϏεʹ͠Α͏ • RailsͰخ͘͠ϚΠΫϩαʔϏεΛ΍Δ஌ݟ͸·ͩ·ͩ଍Γͳ͍