Rails Developers Meetup 2019で話した「我々はマイクロサービスとどう向き合うべきか」の資料です https://railsdm.github.io/
質疑応答についてはこちら https://railsdm.herokuapp.com/issues/128
How should we face withmicroservices(զʑϚΠΫϩαʔϏεͱͲ͏͖߹͏͖͔)ota42y (FiNC Technologies)
View Slide
Now, every Tom, Dick, and Harry thinkmicroservices(࣌ೣḏࢠϚΠΫϩαʔϏε)
Whether you do it or not, you can notavoid this topicΔʹͯ͠ɺΒͳ͍ʹͯ͜͠ͷආ͚ΒΕͳ͍
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ӳޠ͜͜Ͱྗਚ͖·ͨ͠…
ࣗݾհ• @ota42y• FiNC TechnologiesͷαʔόαΠυΤϯδχΞ• ϚΠΫϩαʔϏεΑΖͣຊΈ͍ͨͳͷΛग़ͯ͠·͢• ిࢠ൛͋ΔΑ(ƅ㱼ƅ)oኯƅ https://booth.pm/ja/items/1040359 https://booth.pm/ja/items/824288• དྷ݄ͷٕज़ॻయͰͦͷ͕̏ग़ΔΑҰߦॻ͍ͯͳ͍…
͜͜·Ͱ1:30͙Β͍
FiNCʹ͓͚ΔϚΠΫϩαʔϏεߏ• ࣄۀ͕෯͘ͳΔఆͰॳظ͔ΒϚΠΫϩαʔϏεʹ• ΞϓϦ/EC/BtoBʹࣄۀ෦͝ͱʹίʔυϕʔε͕ผ• ࣄۀ෦ʹߋʹෳͷνʔϜͱϚΠΫϩαʔϏε (શ෦Ͱ50ݸ͙Β͍)• αʔϏεͪΌΜͱׂ͞ΕͯΔ (No அ͞ΕͨϞϊϦε)• ΄΅Rails͚ͩͰग़དྷͯΔϚΠΫϩαʔϏε• ෳͷٕज़ελοΫ(Polyglot)΄ͱΜͲͳ͍͚Ͳेخ͍͠
• 1ࣄۀ෦ʹݸఔͷαʔϏεͰى͖ͳ͔ͬͨ• ࣄۀͷͱͱʹϚΠΫϩαʔϏε͕େ͖͘ͳΔ࠷ॳ͕গͳ͔ͬͨৄ͘͠ʮFiNCͰͷ5ؒʹΔ ϚΠΫϩαʔϏεͷҭͯํʯͰhttps://speakerdeck.com/shinofumijp/microservices-at-finc
• ڊେͰΧΦεͳϞϊϦγοΫʹͨ͠• ͍ΖΜͳػೳ͕ͪ͝ΌͬͱೖͬͯΔ• CI௨͢ͷ40ɺը໘reloadʹ6• 150ߦ͙Β͍ͷcaseจ• controllerͰskip_callback*4ͱ͔ΞϓϦͷόοΫΤϯυαʔόͷڊେԽ
৫ͱͯ͠ͷཁٻࣄ߲• ϦϑΝΫλϦϯάΑΓػೳ։ൃ༏ઌ• ձࣾͷϑΣʔζతͳཧ༝• طଘػೳͱ͕ؔബ͍৽ػೳ͕ଟ͍• طଘͷϞϊϦγοΫͷػೳՃେมͰ։ൃͷ͕͘ͳΔ• ΞϓϦνʔϜΛ͞ΒͳΔࢠνʔϜʹׂ• ࢠνʔϜ͕ಠࣗʹPDCAΛճͤΔΑ͏ʹӨڹൣғͷॖখ
͞ΒͳΔϚΠΫϩαʔϏεԽ• ΞϓϦͷόοΫΤϯυΛ͞Βʹࡉ͔͘ϚΠΫϩαʔϏεʹ• ৫ͱͯ͠ϚΠΫϩαʔϏε͕ΑΓ·Δಈ͖ DHHʮϚΠΫϩαʔϏε৫ύλʔϯʯ• ৽ػೳ։ൃɺطଘػೳͷΓग़͠Γํ༷ʑ• ݁Ռͱͯ̍͠ɽ̑ͰαʔϏε͕̎ഒҎ্ʹ• ͏·͍ͬͨ͘෦͋Ε͏·͍͔͘ͳ͍෦…
ϚΠΫϩαʔϏεͰخ͍͠ͱ͜Ζ4:40ͳΒ͍͍ϖʔε
• lifelog(าɺମॏɺਭɺ৯ࣄɺମԹ…)ʑͷϥΠϑϩάσʔλΛ࢘ΔαʔϏε
• CI͕̐̌ˠ̑ʹ• ̍̍̌ճҎ্Ͱ͖Δ(ƅ㱼ƅ)oኯƅ• Ϋϥεߏґଘ͕গͳ͍• σʔλͷهͱਵ͢Δॲཧ͕͚ΒΕ༷͕ͯγϯϓϧʹʑͷ։ൃ্͕Δ
• αʔϏεͷมߋʹର͢ΔӨڹൣғ͕খ͘͞ͳΔ• ेݸͷϞσϧ͔͠ͳ͘ɺؔ࿈ཧ͞ΕͯΔ(چϞϊϦγοΫ1000ͱ͔)• ݟ௨͘͢͠ɺ৽͍͠ਓͷΩϟονΞοϓͳͲָ• ઐ༻νʔϜͰPDCAΛճͤΔ• ͢Δ͖͜ͱͱɺ͠ͳ͍͜ͱ͕໌֬ʹ• ҙࢥܾఆ͕ૣ͘ͳΔϓϩάϥϛϯάҎ֎خ͍͠
Α͋͘ΔʮϚΠΫϩαʔϏε͕خ͍͠ཧ༝ʯਖ਼͍͠
ϚΠΫϩαʔϏε͕૿͑͗͢Δͱ• ଞͷׂޭͯ͠ͲΜͲΜαʔϏε͕૿͑Δ• FiNCͷ৽ػೳΛͲΜͲΜ࡞͍ͬͯ͘ઓུͱϚον• ࠓ̑̌ݸ͙Β͍Ͱ (ΤϯδχΞ × 2) < αʔϏε (ΫοࣾΑΓͪΐͬͱগͳ͍Λ1/5͙Β͍ͷਓͰϝϯςͯ͠Δ…)• ঃʑʹͭΒ͍αʔϏε͕ग़࢝ΊΔ…
۩ମྫɿϥϯΩϯάϚΠΫϩαʔϏε• าΛҰఆͷάϧʔϓͰڝ͏ػೳΛ୲͏αʔϏε7:20
͍͍ײ͡ͷϚΠΫϩαʔϏεׂͩͬͨ• ৄ͍͠ઃܭͱ͔خ͍͠ͱ͜Ζٕज़ϒϩάʹ… ʮϥϯΩϯάʯͷϚΠΫϩαʔϏεΛ࡞ͬͨ https://medium.com/finc-engineering/ranking-microservice-1dda92714260• ӡ༻͍͍ײ͡ʹճͬͯΔ• طଘͷ͍ϞϊϦγοΫͱׂͰ͖ͨ• ϏδωεϩδοΫ͔ͬ͠Γ٧·͍ͬͯΔ• ଞͷϚΠΫϩαʔϏεͱͷ݁߹߹͍গͳ͍
ἝΛΉ͘ϚΠΫϩαʔϏεͷෛͷଆ໘
͍ͬͺ͍͋Δ͚Ͳ͚̎ͭͩ• ηΩϡϦςΟରԠͱ͔͕ѲͰ͖ͳ͘ͳͬͨ• υϝΠϯ͕มΘͬͯ݁߹͕ڧ͘ͳͬͨ
ηΩϡϦςΟରԠ͕खബʹ• ruby 2.3.1ͷ··2͙Β͍์ஔ• gemͷ੬ऑੑಛʹରԠ͞Εͣ• GithubͷSecurity AlertͰΘ͔ͬͨ• ӡྑ͘ʹͳΒͳ͔͚ͬͨͲਫ਼ࠪͯͨ͠Θ͚Ͱͳ͍
ϞϊϦγοΫͳγεςϜͱൺΔͱ• rankingͷαʔϏεΦʔφʔ̍ਓ͚ͩͰ݉• ઐνʔϜΛஔ͚ͳ͔ͬͨ• Χόʔ୭Ͱ͖ͳ͔ͬͨ• ϞϊϦγοΫͩͱ͕ଟ͘ɺѲͰ͖ͳ͍ঢ়ଶආ͚ΕΔ• ΞοϓσʔτࣗମࠔʹͳΔ߹(มߋ͕େ͖͍ͱͭΒ͍)• Ξοϓσʔτͯ͠ͳ͍ϦεΫΛෳਓͰڞ༗Ͱ͖ɺίϯτϩʔϧԼʹ͓͚Δ
ϚΠΫϩαʔϏεͷํ͕ରԠָ• Өڹൣғ͕ݶΒΕͯΔͷͰΞοϓσʔτ͍͢͠• ؾ͕͍͔ͭͯΒͷΞοϓσʔτ͙ͩͬͨ͢• νʔϜΛ͑Δͱ࡞ۀҎ֎ͷͱ͜Ζେม• ผνʔϜʹΞοϓσʔτΛଅ͢ࡍͷਐΊํ• ผνʔϜͷαʔϏε͕·͍ͣঢ়ଶͩͱѲ͢Δίετ
ϞϊϦγοΫ࡞ۀେม͕ͩ࿙Εʹ͘͘ϚΠΫϩαʔϏε࡞ۀ؆୯͕ͩ࿙Ε͍͢
FiNCͷରࡦɿ࿙ΕΛݮΒ͢• νʔϜԣஅతʹಈ͘ू·ΓΛ࡞Δ• gemrubyͷόʔδϣϯҰཡΛݟΒΕΔΞϓϦ• ΞοϓσʔτͷඞཁੑΛҰཡͰ͖Δ• ྫɿAWS SDK v2ͱ͔https://github.com/ota42y/gemicoma
FiNCͷରࡦɿ࣮ࡍͷ࡞ۀΛਐΊΔ• ि2hͷׂΕ૭Λ࣏࣌ؒ͢Λ֬อ• όʔδϣϯΞοϓͨ͠Γwarningফͨ͠Γ• ϏϧυڥΛ͑ͨΓ• Railsͷ੬ऑੑରԠ1Ͱ8ׂ͙Β͍ऴΘͬͨ(CVE-2019-5420)
ଞʹ͋ΔΑ12:15
υϝΠϯ͕ͯ͠มΘΔ• rankingॳ্ख͘ճ͍ͬͯͨ• ϏδωεϩδοΫ͕٧·ͬͯΔ• ґଘؔ΄΅ແ͍
ঃʑʹϥϯΩϯάͷػೳ͕૿͑Δ• BtoBͰܖͯ͠Δاۀ༷ͰͷาϥϯΩϯά• اۀ༷Λཧ͢ΔαʔϏεͱ࿈ܞ• ͋ΔਓͷίϛϡχςΟʹඥ͘ϥϯΩϯά• ίϛϡχςΟͷػೳΛཧ͢ΔαʔϏεͱ࿈ܞ• ϥϯΩϯάΛ׆͔ͨ͢ΊʹଞͷϚΠΫϩαʔϏεͱ݁߹͍ͯ͘͠
αʔϏεԣஅͷػೳ։ൃʹͳΔ• rankingͷׂ̓communityͷϚΠΫϩαʔϏε͕ؔ࿈͢Δ• communityͷϥϯΩϯάchat(ผαʔϏε)ʹ݁Ռ͕ग़Δ• ̏ͭͷϚΠΫϩαʔϏεΛಉ࣌Ͱ৮Δঢ়ଶʹ3BOLJOH$PNNVOJUZ $IBU
αʔϏεԣஅͷػೳ։ൃʹͳΔ• ϚΠΫϩαʔϏε͝ͱͷԻָੑͷҧ͍Λཧղͯ͠࡞Δͷେม• υϝΠϯΓʹ͍͘• ຖchatʹதؒใࠂΛૹ৴͢ΔػೳΛͲ͜ʹ࣋ͨͤΔ͔3BOLJOH$PNNVOJUZ $IBU
υϝΠϯ͕มΘ͍ͬͯͬͨ• ݩʑ༷ʑͳཁૉͰͷϥϯΩϯάΛߦ͑ΔΑ͏ʹ͍ͨ͠ཁٻ• communityαʔϏεͱ࿈ܞ͍ͨ͠ཁٻ͕΄ͱΜͲ• ϞδϡʔϧͰΑ͔ͬͨΛαʔϏεʹͯ͠͠·ͬͨͬΆ͍
ආ͚Δͷ͍͠• ϚΠΫϩαʔϏεʹ͠ͳ͍બ͔ͬͨ͠• طଘͷϞϊϦγοΫ͕͗ͯ͢·ͱʹ։ൃͰ͖ͳ͍• ͖Ε͍ʹ࡞ͬͯޭ͠ͳ͍ͳΒҙຯ͕ͳ͍…• Ͳ͏͢Δ͔ΛݟۃΊΔͷ͍͠• ະདྷ༧ଌແཧ• DHHͩͬͯ3ճॻ͖ͯ͠ΔͷʹҰൃͰదͳυϝΠϯΛΔͷΉ͍ͣ
Ͳ͏͢Ε͍͍͔• ϚΠΫϩαʔϏεͷ౷߹ͱ͍͏Ҋ͕ग़͍ͯΔ• Martin FowlerʮΊͬͨʹมߋ͞Εͳ͍γεςϜͷ෦ɺݱࡏมߋΛͨ͘͞Μߦ͍ͬͯΔ෦ͱҟͳΔαʔϏεʹ͢Δ͖Ͱ͢ɻ͠2ͭͷαʔϏεΛಉ࣌ʹมߋ͢Δ͜ͱ͕Կ͋ΕɺͦΕͦΕΒͷαʔϏεΛ̍ͭʹ͖͢αΠϯͰ͢ɻʯ• ϞϊϦεʹΔͷͰͦΕͦΕͰͭΒ͍• ·ͨυϝΠϯ͕มԽͨ͠ͱ͖ʹׂ͢͠ͷେม• Ͱ͜ͷ··࡞Γଓ͚ΔͷͭΒ͍http://kimitok.hateblo.jp/entry/2014/11/09/211820
Έ͍ͨͳ͕ଞʹ৭ʑ• σʔλͷ߹ੑͷ໘• τϥϯβΫγϣϯਓྨ͕खʹೖΕͨฒྻॲཧʹର͢Δڧྗͳث• Πϯϑϥ• ࢹɺোͷ࿈ɺҧ͏ٕज़ελοΫͷσϓϩΠɾνϡʔχϯάɺetc…• νʔϜ࿈ܞͷ໘• దͳݖݶҠৡɺνʔϜΛ·͍ͨͩਓһௐɺϚΠΫϩαʔϏεͷςετɺϢʔβମݧͷ౷Ұ• αʔϏεΛ·͍ͨͩ࣌ͷΦʔόʔϔου• APIΛఆٛ͢ΔࡍͷίϛϡχέʔγϣϯେมɺΞϓϦ͔ΒෳͷϚΠΫϩαʔϏεʹ͍߹ΘͤΔ௨৴ίετϚΠΫϩαʔϏεΑΖͣຊʹ·ͱΊͨΓɺॻ͍͍ͯͬͨΓ͠·͢…
17:20
ϚΠΫϩαʔϏεಛ༗ͷͰͳ͍• ϚΠΫϩαʔϏεͷϞϊϦγοΫͰى͖͏Δ ηΩϡϦςΟɺׂͷࣦഊɺνʔϜ࿈ܞ• ϚΠΫϩαʔϏεʹΑ͕ͬͯԿഒʹ૿෯͞ΕΔ• αʔϏεͷϦϑΝΫλϦϯάϞϊϦγοΫΑΓେม• FiNCͰ ਓ < αʔϏε ͳͷ͕ΑΓେม
ϚΠΫϩαʔϏεͷෳࡶੑ• ϚΠΫϩαʔϏεͷͷ͠͞શମͷෳࡶੑͱൺྫ͢Δ• 2,3ݸఔͳΒͦ͜·Ͱେม͡Όͳ͍• αʔϏεͷ࿈ܞ͕গͳ͚Εਏ͍͞ ΞΧϯτ͚ͩڞ༗͢Δͱ͔• جຊతʹαʔϏε࿈ܞΛ૿͢ͱෳࡶʹͳΓίετ͕ߴ͘• @yoshioriʮ֤αʔϏε୯७ͰγεςϜશମͱͯ͠ෳࡶʹͳΔʯ (DevOps, Immutable Infrastructure, microservices ͦͯ͠ Chaos Engineering)• ҰํͰϞϊϦγοΫͩͱϚΠΫϩαʔϏεͷྑ͞ಘΒΕͳ͍…
৫͕ରԠͰ͖Δෳࡶੑ্͕Δ• ਓ͕͍ΕରԠͰ͖Δ͜ͱଟ͍• ̍ϚΠΫϩαʔϏε͋ͨΓਓ͓͚ΕΑΏ͏• ̏ਓͷελʔτΞοϓͰ̍̌ϚΠΫϩαʔϏεͱ͔ϠόΠ• ৫ͷʹΑͬͯෳࡶͳͷରॲʹϦιʔεΛׂ͚Δ• ΠϕϯτΞʔΩςΫνϟEnvoyͷಋೖɺ݈શੑΛ֬อ͢Δ࣌ؒ• ෳࡶͳϚΠΫϩαʔϏε͚͞ΔΑ͏ʹͳΔ
Monolithic hellPower oforganizationComplexity of microservices
Monolithic hellMicroserviceshellPower oforganizationComplexity of microservices
Power oforganizationComplexity of microservicesBest microservicesMonolithic hellMicroserviceshell
Ͳ͏͢Εྑ͍ͷ͔• ྫ͑FiNCͰ্ख͍ͬͨ͘ͷ• ࣄۀ෦Ϩϕϧɺ։ൃӡ༻νʔϜ͕͓͚ΔϨϕϧͰͷϚΠΫϩαʔϏε• ϞϊϦγοΫͰ͋ΔఔυϝΠϯ͕ܾ·ͬͨͷʹରͯ͠બνʔϜΛ࡞Δ• ࣾSaaS͙Β͍ͷنͰ࡞ͬͯ͘ͷ͕ཧͬΆ͍• બνʔϜ͕Ͱ͖Δ͙Β͍͔ɺࣄۀ෦͕ஔ͚Δ͔• ୯ʹυϝΠϯͰΔ͚ͩͩͱ͏·͍͔͘ͳ͍͜ͱ͕͋Δ• ϚΠΫϩαʔϏεӡ༻͢ΔਓͨͪΛ͖ͪΜͱ͚ͳ͍ͱࢮ͵• FaaSϕʔεʹ͢Δͷෳࡶ͕Ұؾʹ͕͋Δ͔ΒΊͨ΄͏͕ྑͦ͞͏
ϚΠΫϩαʔϏεຑༀ• Θׂ͔͍ͬͯͯΛؒҧ͑Δ ϚΠΫϩαʔϏεͷใຊࣄྫͰ͔ͳΓ༧शͨͭ͠Γͩͬͨ• దʹ͑خ͍͕͠ɺඞཁҎ্ʹෳࡶʹͯ͠͠·͏
ϚΠΫϩαʔϏεຑༀ• ѹతͳظͷྑ͕͞ಘΒΕΔ• ϚΠΫϩαʔϏεΛׂ͢ΔͱίʔσΟϯάָ͘͢͝• ظతͳίετݟ͑ʹ͍͘• কདྷࣦഊ͢Δ͔ΛࠓݟۃΊΔͷ͍͠• ಠཱͯ͠ಈ͘ྑ͕͞ɺશମͷෳࡶ͞ͷѲΛ͘͢͠Δ• ແࢹ͢Δѹྗେ͖͍• ࠓΛΓӽ͑ͳ͍ͱະདྷͳ͍ͱ͍͏ࣄ࣮• ѹతͳ։ൃମݧͷྑ͞ͷલͰظతͳίετখ͘͞ݟ͑Δ
ϚΠΫϩαʔϏεͷྑ͞Λڗडͭͭ͠কདྷతʹਏ͘ͳΒͳ͍ঢ়ଶʹ͍ͨ͠
ϥούʔϚΠΫϩαʔϏε• ཪʹϞϊϦγοΫΛ͓͍ͯ৽ػೳׂ͚ͩ• ඞཁͳσʔλچαʔϏεʹ͍߹ΘͤΔ• ܰྔʹ࡞ΕΔͷͰࣦഊͯ͠౷߹͍͢͠• Ϩεϙϯε͘ͳΔچαʔϏε৽αʔϏε
ϚΠΫϩαʔϏεͷدੜ• ։ൃ͍͢͠ॴͷҰ෦ʹϞδϡʔϧΛͬͯಠཱͯ͠࡞Δ• ϚΠΫϩαʔϏεʹҭͨͳ͍Մೳੑ͋ΔϨϕϧͷখ͍ͭ͞• BFFͷҰ෦ʹدੜͯͬͯ͠Δ#''৽αʔϏε
ΤΫιμεαʔϏε• ৽ػೳΛ࣮͢ΔͨΊͷ৽ͨͳϞϊϦγοΫΛ࡞Δ• طଘͷϞϊϦγοΫ͜ΕҎ্৮Βͳ͍• खΛՃ͑ΔͳΒͬͪ͜ʹ࡞Δ(ඞཁͳػೳ͚ͩग़ͤͯ͘͞)• ͖Ε͍ͳϞϊϦγοΫԼखͳϚΠΫϩαʔϏεΑΓྑ͍ͱ͍͏Ծఆ• ࣾͰͨ͠Ҋஈ֊ͳͷͰݟ·ͩͳ͍
24:00
ϚΠΫϩαʔϏεʹ͓͚ΔRails• ϚΠΫϩαʔϏεͰখʙதنʹཹΊΔͷ͕ྑͦ͞͏• খ͗͢͞Δͱ࿈ܞ͕૿͑ͯෳࡶʹͳΔ• େ͖͗͢ΔͱϞϊϦγοΫ͕ਏ͍• ͦͷنαʔϏεΛ࡞ΔͷʹRailsศར• Ϩʔϧͷෑ͍ͯΔൣғ࠷Ͱۦ͚ൈ͚ΒΕΔ• ෑ͍ͨϨʔϧͷઌ(RailsͰͭΒ͍ঢ়ଶ)ʹདྷͨΒαʔϏεׂͷγάφϧ
ϚΠΫϩαʔϏεʹ͓͚ΔRails• RailsͰϚΠΫϩαʔϏεׂେม• Railsີ݁߹ʹͳΓ͍͢• ૄ݁߹ͷ͖Ε͍ͳઃܭΑΓɺີ݁߹ʹΑΔεϐʔυˍϓϩμΫτͷޭ• ׂ͍͢͠ઃܭͷϦϑΝΫλϦϯάख๏ɺີ݁߹Λ΄Ͳׂ͖ͭͭ͢Δख๏ͷݟ͕ඞཁ• ϚΠΫϩαʔϏεٕज़ސɺ୭͔͍ͳ͍Ͱ͔͢Ͷ…Day 2: @yasaichi Ruby on Railsͷਖ਼ମͱ͖߹͍ํɹͰ͞ΕΔͣ…ͨͿΜ…
ଟࠓ27͙Β͍
ະདྷͷϚΠΫϩαʔϏεͷ
ϚΠΫϩαʔϏεաظ• CI/CD΄ͲϚΠΫϩαʔϏεख़ͯ͠ͳ͍• CIঃʑʹख़͍ͯͬͨ͠• ֓೦ͷఏএʙӡ༻πʔϧͷొʙSaaSͳͲͰ؆୯ʹ• ϚΠΫϩαʔϏεΛΔʹ·ͩύϫʔ͕ཁΔ• Πϯϑϥ໘ෳϚΠΫϩαʔϏεΛԣஅ͢Δͷରॲ• k8sECSͱ͔Ͱग़͍ͯΔ͕·ͩ·ͩେม…
ϚΠΫϩαʔϏεपลπʔϧͷਐԽ• αʔϏεϝογϡखܰʹɾߴػೳʹͳͬͯΔ• AWSGCPͷϚωʔδυαʔϏεϝογϡ• Envoy+IstioͰϓϩμΫτΛग़͢TetrateΈ͍ͨͳελʔτΞοϓ• ϚΠΫϩαʔϏεΛલఏͱͨ͠ϓϩάϥϛϯάݴޠ• Ballerina (Cloud Native Computing Foundation)• ෳγεςϜΛԣஅͨ͠τϥϯβΫγϣϯͷύλʔϯ• SageύλʔϯɺOnline Event Processing
ਓྨͷਐԽͰϚΠΫϩαʔϏε؆୯ʹ• AWSDocker͕ͳ͍࣌ϚΠΫϩαʔϏεେن͡Όͳ͍ͱແཧ• ࠓதن͙Β͍ͷ৫Ͱ͋ΔఔෳࡶͳͷʹରԠͰ͖Δ• ςΫϊϩδʔͷਐԽݟ͕ஷ·ΔͱখنͰԸܙΛड͚ΒΕΔ͔• FaaS͕ͨΓલͷੈք͍͔ͭདྷΔ͔• (ϚΠΫϩαʔϏεͱ͍͏֓೦͔ո͍͠ɻPlatform programmingͳੈք)
Reduction ofMicroservicesHellPower oforganizationMonolithic hellComplexity of microservicesExpansion ofbest microservicesMicro-serviceshell
·ͱΊ• େنʹͳͬͨΞϓϦʹϚΠΫϩαʔϏεޮ͘• ϚΠΫϩαʔϏεຑༀ• Θ͔͍͍ͬͯͯͭෆཁʹෳࡶͳϚΠΫϩαʔϏεʹͯ͠͠·͏• ϚΠΫϩαʔϏεͷظతͳίετݟ͑ʹ͍͘• ৭ΜͳݟΛͬͯ༻๏༻ྔΛकͬͨϚΠΫϩαʔϏεʹ͠Α͏• RailsͰخ͘͠ϚΠΫϩαʔϏεΛΔݟ·ͩ·ͩΓͳ͍