Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

ࣗݾ঺հ • @ota42y • FiNC TechnologiesͷαʔόαΠυΤϯδχΞ • ϚΠΫϩαʔϏεΑΖͣຊΈ͍ͨͳͷΛग़ͯ͠·͢ • ిࢠ൛΋͋ΔΑ(ƅ㱼ƅ)oኯƅ
 https://booth.pm/ja/items/1040359
 https://booth.pm/ja/items/824288 • དྷ݄ͷٕज़ॻయͰͦͷ͕̏ग़ΔΑ Ұߦ΋ॻ͍ͯͳ͍…

Slide 6

Slide 6 text

͜͜·Ͱ1:30͙Β͍

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

ϚΠΫϩαʔϏε͕૿͑͗͢Δͱ • ଞͷ෼ׂ΋੒ޭͯ͠ͲΜͲΜαʔϏε͕૿͑Δ • FiNCͷ৽ػೳΛͲΜͲΜ࡞͍ͬͯ͘ઓུͱϚον • ࠓ͸̑̌ݸ͙Β͍Ͱ (ΤϯδχΞ਺ × 2) < αʔϏε਺
 (ΫοࣾΑΓͪΐͬͱগͳ͍਺Λ1/5͙Β͍ͷਓ਺Ͱϝϯςͯ͠Δ…) • ঃʑʹͭΒ͍αʔϏε͕ग़࢝ΊΔ…

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

ଞʹ΋͋ΔΑ 12:15

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

17:20

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

ϚΠΫϩαʔϏεͷෳࡶੑ • ϚΠΫϩαʔϏεͷ໰୊ͷ೉͠͞͸શମͷෳࡶੑͱൺྫ͢Δ • 2,3ݸఔ౓ͳΒͦ͜·Ͱେม͡Όͳ͍ • αʔϏεͷ࿈ܞ͕গͳ͚Ε͹ਏ͞͸௿͍
 ΞΧ΢ϯτ͚ͩڞ༗͢Δͱ͔ • جຊతʹαʔϏε΍࿈ܞΛ૿΍͢ͱෳࡶʹͳΓίετ͕ߴ͘ • @yoshioriʮ֤αʔϏε͸୯७Ͱ΋γεςϜશମͱͯ͠͸ෳࡶʹͳΔʯ
 (DevOps, Immutable Infrastructure, microservices ͦͯ͠ Chaos Engineering) • ҰํͰϞϊϦγοΫͩͱϚΠΫϩαʔϏεͷྑ͞͸ಘΒΕͳ͍…

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Monolithic hell Power of organization Complexity of 
 microservices

Slide 42

Slide 42 text

Monolithic hell Microservices hell Power of organization Complexity of 
 microservices

Slide 43

Slide 43 text

Power of organization Complexity of 
 microservices Best microservices Monolithic hell Microservices hell

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

24:00

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

ଟ෼ࠓ27෼͙Β͍

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

Reduction of Microservices Hell Power of organization Monolithic hell Complexity of 
 microservices Expansion of best microservices Micro- services hell

Slide 60

Slide 60 text

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