Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

ota42y
March 22, 2019

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

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

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

ota42y

March 22, 2019
Tweet

More Decks by ota42y

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. Whether you do it or not, you can not
    avoid this topic
    ΍Δʹͯ͠΋ɺ΍Βͳ͍ʹͯ͠΋
    ͜ͷ࿩୊͸ආ͚ΒΕͳ͍

    View Slide

  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
    ӳޠ͸͜͜Ͱྗਚ͖·ͨ͠…

    View Slide

  5. ࣗݾ঺հ
    • @ota42y
    • FiNC TechnologiesͷαʔόαΠυΤϯδχΞ
    • ϚΠΫϩαʔϏεΑΖͣຊΈ͍ͨͳͷΛग़ͯ͠·͢
    • ిࢠ൛΋͋ΔΑ(ƅ㱼ƅ)oኯƅ

    https://booth.pm/ja/items/1040359

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

    View Slide

  6. ͜͜·Ͱ1:30͙Β͍

    View Slide

  7. FiNCʹ͓͚ΔϚΠΫϩαʔϏεߏ੒
    • ࣄۀ͕෯޿͘ͳΔ૝ఆͰॳظ͔ΒϚΠΫϩαʔϏεʹ
    • ΞϓϦ/EC/BtoBʹࣄۀ෦͝ͱʹίʔυϕʔε͕ผ
    • ࣄۀ෦಺ʹߋʹෳ਺ͷνʔϜͱϚΠΫϩαʔϏε (શ෦Ͱ50ݸ͙Β͍)
    • αʔϏε͸ͪΌΜͱ෼ׂ͞ΕͯΔ (No ෼அ͞ΕͨϞϊϦε)
    • ΄΅Rails͚ͩͰग़དྷͯΔϚΠΫϩαʔϏε
    • ෳ਺ͷٕज़ελοΫ(Polyglot)͸΄ͱΜͲͳ͍͚Ͳे෼خ͍͠

    View Slide

  8. • 1ࣄۀ෦ʹ਺ݸఔ౓ͷαʔϏεͰ͸໰୊͸ى͖ͳ͔ͬͨ
    • ࣄۀͷ੒௕ͱͱ΋ʹϚΠΫϩαʔϏε͕େ͖͘ͳΔ
    ࠷ॳ͸਺͕গͳ͔ͬͨ
    ৄ͘͠͸ʮFiNCͰͷ5೥ؒʹ౉Δ ϚΠΫϩαʔϏεͷҭͯํʯͰ
    https://speakerdeck.com/shinofumijp/microservices-at-finc

    View Slide

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

    View Slide

  10. ૊৫ͱͯ͠ͷཁٻࣄ߲
    • ϦϑΝΫλϦϯάΑΓػೳ։ൃ༏ઌ
    • ձࣾͷϑΣʔζతͳཧ༝
    • طଘػೳͱؔ܎͕ബ͍৽ػೳ͕ଟ͍
    • طଘͷϞϊϦγοΫ΁ͷػೳ௥Ճ͸େมͰ։ൃͷ଎౓͕஗͘ͳΔ
    • ΞϓϦνʔϜΛ͞ΒͳΔࢠνʔϜʹ෼ׂ
    • ࢠνʔϜ͕ಠࣗʹPDCAΛճͤΔΑ͏ʹӨڹൣғͷॖখ

    View Slide

  11. ͞ΒͳΔϚΠΫϩαʔϏεԽ
    • ΞϓϦͷόοΫΤϯυΛ͞Βʹࡉ͔͘ϚΠΫϩαʔϏεʹ
    • ૊৫ͱͯ͠΋ϚΠΫϩαʔϏε͕ΑΓ͸·Δಈ͖

    DHHʮϚΠΫϩαʔϏε͸૊৫ύλʔϯʯ
    • ৽ػೳ։ൃ΍ɺطଘػೳͷ੾Γग़͠౳΍Γํ͸༷ʑ
    • ݁Ռͱͯ̍͠ɽ̑೥ͰαʔϏε਺͕̎ഒҎ্ʹ
    • ͏·͍ͬͨ͘෦෼΋͋Ε͹͏·͍͔͘ͳ͍෦෼΋…

    View Slide

  12. ϚΠΫϩαʔϏεͰخ͍͠ͱ͜Ζ
    4:40ͳΒ͍͍ϖʔε

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. Α͋͘Δ
    ʮϚΠΫϩαʔϏε͕خ͍͠ཧ༝ʯ
    ͸ਖ਼͍͠

    View Slide

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

    (ΫοࣾΑΓͪΐͬͱগͳ͍਺Λ1/5͙Β͍ͷਓ਺Ͱϝϯςͯ͠Δ…)
    • ঃʑʹͭΒ͍αʔϏε͕ग़࢝ΊΔ…

    View Slide

  18. ۩ମྫɿϥϯΩϯάϚΠΫϩαʔϏε
    • า਺ΛҰఆͷάϧʔϓͰڝ͏ػೳΛ୲͏αʔϏε
    7:20

    View Slide

  19. ͍͍ײ͡ͷϚΠΫϩαʔϏε෼ׂͩͬͨ
    • ৄ͍͠ઃܭͱ͔͸خ͍͠ͱ͜Ζ͸ٕज़ϒϩάʹ…

    ʮϥϯΩϯάʯͷϚΠΫϩαʔϏεΛ࡞ͬͨ࿩

    https://medium.com/finc-engineering/ranking-microservice-1dda92714260
    • ӡ༻΋͍͍ײ͡ʹճͬͯΔ
    • طଘͷ΍͹͍ϞϊϦγοΫͱ෼ׂͰ͖ͨ
    • ϏδωεϩδοΫ΋͔ͬ͠Γ٧·͍ͬͯΔ
    • ଞͷϚΠΫϩαʔϏεͱͷ݁߹౓߹͍΋গͳ͍

    View Slide

  20. ἝΛΉ͘
    ϚΠΫϩαʔϏεͷෛͷଆ໘

    View Slide

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

    View Slide

  22. ηΩϡϦςΟରԠ͕खബʹ
    • ruby 2.3.1ͷ··2೥͙Β͍์ஔ
    • gemͷ੬ऑੑ΋ಛʹରԠ͞Εͣ
    • GithubͷSecurity AlertͰΘ͔ͬͨ
    • ӡྑ͘໰୊ʹͳΒͳ͔͚ͬͨͲਫ਼ࠪͯͨ͠Θ͚Ͱ͸ͳ͍

    View Slide

  23. ϞϊϦγοΫͳγεςϜͱൺ΂Δͱ
    • rankingͷαʔϏεΦʔφʔ͸̍ਓ͚ͩͰ݉೚
    • ઐ೚νʔϜΛஔ͚ͳ͔ͬͨ
    • Χόʔ΋୭΋Ͱ͖ͳ͔ͬͨ
    • ϞϊϦγοΫͩͱ໨͕ଟ͘ɺ೺ѲͰ͖ͳ͍ঢ়ଶ͸ආ͚ΕΔ
    • Ξοϓσʔτࣗମ͸ࠔ೉ʹͳΔ৔߹΋(มߋ͕େ͖͍ͱͭΒ͍)
    • Ξοϓσʔτͯ͠ͳ͍ϦεΫΛෳ਺ਓͰڞ༗Ͱ͖ɺίϯτϩʔϧԼʹ͓͚Δ

    View Slide

  24. ϚΠΫϩαʔϏεͷํ͕ରԠ͸ָ
    • Өڹൣғ͕ݶΒΕͯΔͷͰΞοϓσʔτ͠΍͍͢
    • ؾ͕͍͔ͭͯΒͷΞοϓσʔτ͸͙ͩͬͨ͢
    • νʔϜΛ௒͑Δͱ࡞ۀҎ֎ͷͱ͜Ζ͸େม
    • ผνʔϜʹΞοϓσʔτΛଅ͢ࡍͷਐΊํ
    • ผνʔϜͷαʔϏε͕·͍ͣঢ়ଶͩͱ೺Ѳ͢Δίετ

    View Slide

  25. ϞϊϦγοΫ͸࡞ۀ͸େม͕ͩ࿙Εʹ͘͘
    ϚΠΫϩαʔϏε͸࡞ۀ͸؆୯͕ͩ࿙Ε΍͍͢

    View Slide

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

    View Slide

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

    View Slide

  28. ଞʹ΋͋ΔΑ
    12:15

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  34. ආ͚Δͷ͸೉͍͠
    • ϚΠΫϩαʔϏεʹ͠ͳ͍બ୒͸೉͔ͬͨ͠
    • طଘͷϞϊϦγοΫ͕΍͹͗ͯ͢·ͱ΋ʹ։ൃͰ͖ͳ͍
    • ͖Ε͍ʹ࡞ͬͯ΋੒ޭ͠ͳ͍ͳΒҙຯ͕ͳ͍…
    • Ͳ͏੒௕͢Δ͔ΛݟۃΊΔͷ͸೉͍͠
    • ະདྷ༧ଌ͸ແཧ
    • DHHͩͬͯ3ճॻ͖௚ͯ͠ΔͷʹҰൃͰద੾ͳυϝΠϯΛ੾Δͷ͸Ή͍ͣ

    View Slide

  35. Ͳ͏͢Ε͹͍͍͔
    • ϚΠΫϩαʔϏεͷ౷߹ͱ͍͏Ҋ͕ग़͍ͯΔ
    • Martin FowlerʮΊͬͨʹมߋ͞Εͳ͍γεςϜͷ෦෼͸ɺݱࡏมߋΛͨ͘͞Μߦ͍ͬͯΔ෦෼ͱ͸ҟ
    ͳΔαʔϏεʹ͢Δ΂͖Ͱ͢ɻ΋͠2ͭͷαʔϏεΛಉ࣌ʹมߋ͢Δ͜ͱ͕Կ౓΋͋Ε͹ɺͦΕ͸ͦ
    ΕΒͷαʔϏεΛ̍ͭʹ͢΂͖αΠϯͰ͢ɻʯ
    • ϞϊϦεʹ໭ΔͷͰͦΕ͸ͦΕͰͭΒ͍
    • ·ͨυϝΠϯ͕มԽͨ͠ͱ͖ʹ෼ׂ͠௚͢ͷ͸େม
    • Ͱ΋͜ͷ··࡞Γଓ͚Δͷ΋ͭΒ͍
    http://kimitok.hateblo.jp/entry/2014/11/09/211820

    View Slide

  36. Έ͍ͨͳ࿩͕ଞʹ΋৭ʑ
    • σʔλͷ੔߹ੑͷ໘
    • τϥϯβΫγϣϯ͸ਓྨ͕खʹೖΕͨฒྻॲཧʹର͢Δڧྗͳ෢ث
    • Πϯϑϥ
    • ؂ࢹɺো֐ͷ࿈࠯ɺҧ͏ٕज़ελοΫͷσϓϩΠɾνϡʔχϯάɺetc…
    • νʔϜ࿈ܞͷ໘
    • ద੾ͳݖݶҠৡɺνʔϜΛ·͍ͨͩਓһௐ੔ɺϚΠΫϩαʔϏεͷςετɺϢʔβମݧͷ౷Ұ
    • αʔϏεΛ·͍ͨͩ࣌ͷΦʔόʔϔου
    • APIΛఆٛ͢Δࡍͷίϛϡχέʔγϣϯ͸େมɺΞϓϦ͔Βෳ਺ͷϚΠΫϩαʔϏεʹ໰͍߹ΘͤΔ௨৴ίετ
    ϚΠΫϩαʔϏεΑΖͣຊʹ·ͱΊͨΓɺॻ͍͍ͯͬͨΓ͠·͢…

    View Slide

  37. 17:20

    View Slide

  38. ϚΠΫϩαʔϏεಛ༗ͷ໰୊Ͱ͸ͳ͍
    • ϚΠΫϩαʔϏεͷ໰୊͸ϞϊϦγοΫͰ΋ى͖͏Δ

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

    View Slide

  39. ϚΠΫϩαʔϏεͷෳࡶੑ
    • ϚΠΫϩαʔϏεͷ໰୊ͷ೉͠͞͸શମͷෳࡶੑͱൺྫ͢Δ
    • 2,3ݸఔ౓ͳΒͦ͜·Ͱେม͡Όͳ͍
    • αʔϏεͷ࿈ܞ͕গͳ͚Ε͹ਏ͞͸௿͍

    ΞΧ΢ϯτ͚ͩڞ༗͢Δͱ͔
    • جຊతʹαʔϏε΍࿈ܞΛ૿΍͢ͱෳࡶʹͳΓίετ͕ߴ͘
    • @yoshioriʮ֤αʔϏε͸୯७Ͱ΋γεςϜશମͱͯ͠͸ෳࡶʹͳΔʯ

    (DevOps, Immutable Infrastructure, microservices ͦͯ͠ Chaos Engineering)
    • ҰํͰϞϊϦγοΫͩͱϚΠΫϩαʔϏεͷྑ͞͸ಘΒΕͳ͍…

    View Slide

  40. ૊৫͕ରԠͰ͖Δෳࡶੑ͸্͕Δ
    • ਓ਺͕͍Ε͹ରԠͰ͖Δ͜ͱ͸ଟ͍
    • ̍ϚΠΫϩαʔϏε͋ͨΓ਺ਓ͓͚Ε͹ΑΏ͏
    • ̏ਓͷελʔτΞοϓͰ̍̌ϚΠΫϩαʔϏεͱ͔ϠόΠ
    • ૊৫ͷ੒௕ʹΑͬͯෳࡶͳ໰୊΁ͷରॲʹϦιʔεΛׂ͚Δ
    • ΠϕϯτΞʔΩςΫνϟ΍Envoyͷಋೖɺ݈શੑΛ֬อ͢Δ࣌ؒ
    • ෳࡶͳϚΠΫϩαʔϏε΋͞͹͚ΔΑ͏ʹͳΔ

    View Slide

  41. Monolithic hell
    Power of
    organization
    Complexity of 

    microservices

    View Slide

  42. Monolithic hell
    Microservices
    hell
    Power of
    organization
    Complexity of 

    microservices

    View Slide

  43. Power of
    organization
    Complexity of 

    microservices
    Best microservices
    Monolithic hell
    Microservices
    hell

    View Slide

  44. Ͳ͏͢Ε͹ྑ͍ͷ͔
    • ྫ͑͹FiNCͰ্ख͍ͬͨ͘ͷ͸
    • ࣄۀ෦Ϩϕϧɺ։ൃӡ༻νʔϜ͕͓͚ΔϨϕϧͰͷϚΠΫϩαʔϏε
    • ϞϊϦγοΫ಺Ͱ͋Δఔ౓υϝΠϯ͕ܾ·ͬͨ΋ͷʹରͯ͠બ೚νʔϜΛ࡞Δ
    • ࣾ಺SaaS͙Β͍ͷن໛Ͱ࡞ͬͯ͘ͷ͕ཧ૝ͬΆ͍
    • બ೚νʔϜ͕Ͱ͖Δ͙Β͍͔ɺࣄۀ෦͕ஔ͚Δ͔
    • ୯ʹυϝΠϯͰ੾Δ͚ͩͩͱ͏·͍͔͘ͳ͍͜ͱ͕͋Δ
    • ϚΠΫϩαʔϏε͸ӡ༻͢ΔਓͨͪΛ͖ͪΜͱ෇͚ͳ͍ͱࢮ͵
    • FaaSϕʔεʹ͢Δͷ͸ෳࡶ౓͕Ұؾʹ͕͋Δ͔Β΍Ίͨ΄͏͕ྑͦ͞͏

    View Slide

  45. ϚΠΫϩαʔϏε͸ຑༀ
    • Θ͔͍ͬͯͯ΋෼ׂΛؒҧ͑Δ

    ϚΠΫϩαʔϏεͷ৘ใ͸ຊ΍ࣄྫͰ͔ͳΓ༧शͨͭ͠΋Γͩͬͨ
    • ద੾ʹ࢖͑͹خ͍͕͠ɺඞཁҎ্ʹෳࡶʹͯ͠͠·͏

    View Slide

  46. ϚΠΫϩαʔϏε͸ຑༀ
    • ѹ౗తͳ୹ظͷྑ͕͞ಘΒΕΔ
    • ϚΠΫϩαʔϏεΛ෼ׂ͢ΔͱίʔσΟϯά͸ָ͘͢͝
    • ௕ظతͳίετ͸ݟ͑ʹ͍͘
    • কདྷࣦഊ͢Δ͔ΛࠓݟۃΊΔͷ͸೉͍͠
    • ಠཱͯ͠ಈ͘ྑ͕͞ɺશମͷෳࡶ͞ͷ೺ѲΛ೉͘͢͠Δ
    • ແࢹ͢Δѹྗ΋େ͖͍
    • ࠓΛ৐Γӽ͑ͳ͍ͱະདྷ͸ͳ͍ͱ͍͏ࣄ࣮
    • ѹ౗తͳ։ൃମݧͷྑ͞ͷલͰ͸௕ظతͳίετ͸খ͘͞ݟ͑Δ

    View Slide

  47. ϚΠΫϩαʔϏεͷྑ͞Λڗडͭͭ͠
    কདྷతʹਏ͘ͳΒͳ͍ঢ়ଶʹ͍ͨ͠

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  51. 24:00

    View Slide

  52. ϚΠΫϩαʔϏεʹ͓͚ΔRails
    • ϚΠΫϩαʔϏεͰ͸খʙதن໛ʹཹΊΔͷ͕ྑͦ͞͏
    • খ͗͢͞Δͱ࿈ܞ͕૿͑ͯෳࡶʹͳΔ
    • େ͖͗͢ΔͱϞϊϦγοΫ͕ਏ͍
    • ͦͷن໛αʔϏεΛ࡞ΔͷʹRails͸ศར
    • Ϩʔϧͷෑ͍ͯΔൣғ͸࠷଎Ͱۦ͚ൈ͚ΒΕΔ
    • ෑ͍ͨϨʔϧͷઌ(RailsͰͭΒ͍ঢ়ଶ)ʹདྷͨΒαʔϏε෼ׂͷγάφϧ

    View Slide

  53. ϚΠΫϩαʔϏεʹ͓͚ΔRails
    • RailsͰϚΠΫϩαʔϏε෼ׂ͸େม
    • Rails͸ີ݁߹ʹͳΓ΍͍͢
    • ૄ݁߹ͷ͖Ε͍ͳઃܭΑΓɺີ݁߹ʹΑΔεϐʔυˍϓϩμΫτͷ੒ޭ
    • ෼ׂ͠΍͍͢ઃܭ΁ͷϦϑΝΫλϦϯάख๏΍ɺີ݁߹Λ΄Ͳ͖ͭͭ෼ׂ͢
    Δख๏ͷ஌ݟ͕ඞཁ
    • ϚΠΫϩαʔϏεٕज़ސ໰ɺ୭͔͍ͳ͍Ͱ͔͢Ͷ…
    Day 2: @yasaichi Ruby on Railsͷਖ਼ମͱ޲͖߹͍ํɹͰ࿩͞ΕΔ͸ͣ…ͨͿΜ…

    View Slide

  54. ଟ෼ࠓ27෼͙Β͍

    View Slide

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

    View Slide

  56. ϚΠΫϩαʔϏε͸ա౉ظ
    • CI/CD΄ͲϚΠΫϩαʔϏε͸੒ख़ͯ͠ͳ͍
    • CI͸ঃʑʹ੒ख़͍ͯͬͨ͠
    • ֓೦ͷఏএʙӡ༻πʔϧͷొ৔ʙSaaSͳͲͰ؆୯ʹ
    • ϚΠΫϩαʔϏεΛ΍Δʹ͸·ͩύϫʔ͕ཁΔ
    • Πϯϑϥ໘΍ෳ਺ϚΠΫϩαʔϏεΛԣஅ͢Δ໰୊΁ͷରॲ
    • k8s΍ECSͱ͔Ͱग़͍ͯΔ͕·ͩ·ͩେม…

    View Slide

  57. ϚΠΫϩαʔϏεपลπʔϧͷਐԽ
    • αʔϏεϝογϡ͸खܰʹɾߴػೳʹͳͬͯΔ
    • AWS΍GCPͷϚωʔδυαʔϏεϝογϡ
    • Envoy+IstioͰϓϩμΫτΛग़͢TetrateΈ͍ͨͳελʔτΞοϓ΋
    • ϚΠΫϩαʔϏεΛલఏͱͨ͠ϓϩάϥϛϯάݴޠ
    • Ballerina (Cloud Native Computing Foundation੡)
    • ෳ਺γεςϜΛԣஅͨ͠τϥϯβΫγϣϯͷύλʔϯ
    • SageύλʔϯɺOnline Event Processing

    View Slide

  58. ਓྨͷਐԽͰϚΠΫϩαʔϏε͸؆୯ʹ
    • AWS΍Docker͕ͳ͍࣌୅͸ϚΠΫϩαʔϏε͸େن໛͡Όͳ͍ͱແཧ
    • ࠓ͸தن໛͙Β͍ͷ૊৫Ͱ΋͋Δఔ౓ෳࡶͳ΋ͷʹରԠͰ͖Δ
    • ςΫϊϩδʔͷਐԽ΍஌ݟ͕ஷ·Δͱখن໛Ͱ΋ԸܙΛड͚ΒΕΔ͔΋
    • FaaS͕౰ͨΓલͷੈք͸͍͔ͭ͸དྷΔ͔΋
    • (ϚΠΫϩαʔϏεͱ͍͏֓೦͔͸ո͍͠ɻPlatform programmingͳੈք)

    View Slide

  59. Reduction of
    Microservices
    Hell
    Power of
    organization
    Monolithic hell
    Complexity of 

    microservices
    Expansion of
    best microservices
    Micro-
    services
    hell

    View Slide

  60. ·ͱΊ
    • େن໛ʹͳͬͨΞϓϦʹϚΠΫϩαʔϏε͸ޮ͘
    • ϚΠΫϩαʔϏε͸ຑༀ
    • Θ͔͍ͬͯͯ΋͍ͭෆཁʹෳࡶͳϚΠΫϩαʔϏεʹͯ͠͠·͏
    • ϚΠΫϩαʔϏεͷ௕ظతͳίετ͸ݟ͑ʹ͍͘
    • ৭Μͳ஌ݟΛ࢖ͬͯ༻๏༻ྔΛकͬͨϚΠΫϩαʔϏεʹ͠Α͏
    • RailsͰخ͘͠ϚΠΫϩαʔϏεΛ΍Δ஌ݟ͸·ͩ·ͩ଍Γͳ͍

    View Slide