Slide 1

Slide 1 text

ϞϊϦεΛখ͘͢͞ΔͭΒΈ kosen12s LT#4 Shintani Teppei (@euglena1215)

Slide 2

Slide 2 text

఻͍͑ͨ͜ͱ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ͸ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ΋͏·͘ར༻͢Ε͹ αʔϏεͷण໋ΛԆ͹͢͜ͱ͕Ͱ͖Δ(͔΋)

Slide 3

Slide 3 text

ͭΒΈΛ࿩͢લʹ •ɹͦ΋ͦ΋ͳͥਓྨ͸ϚΠΫϩαʔϏεԽΛ͕ͨ͠Δͷ͔ʁ •ɹͦ΋ͦ΋ϚΠΫϩαʔϏεͱ͸ʁ

Slide 4

Slide 4 text

What is microservices? • ༧ݴऀ Martin Fowler͕ఏএ • ϚΠΫϩαʔϏεΞʔΩςΫνϟελΠϧ͸୯ҰͷΞϓϦέʔγϣϯΛখ ͞ͳαʔϏε܈ͷ૊Έ߹Θͤͱͯ͠ߏங͢Δख๏ ref: https://martinfowler.com/articles/microservices.html

Slide 5

Slide 5 text

ref: https://martinfowler.com/articles/microservices.html

Slide 6

Slide 6 text

ϚΠΫϩαʔϏεԽͷϝϦοτ • ։ൃ࣌ʹߟ͑ͳ͍ͱ͍͚ͳ͍είʔϓ͕ڱ͘ͳΔ • “ਖ਼͘͠αʔϏεͷ੾Γ෼͚͕Ͱ͖Ε͹” ࣗ਎ͷαʔϏεͷ͜ͱ͚ͩΛߟ͑Ε͹Α͘ͳΔ • ো֐ͷ఻ൖͷ࠷খԽ • αʔϏε͝ͱʹαʔόʔΛىಈͤ͞ΔͷͰෆྀͷࣄނʹΑΓαʔόʔ͕ͪΐͬ͜ͱαʔόʔ͕མͪͨͱ ͯ͠΋”ਖ਼࣮͘͠૷͍ͯ͠Ε͹”αʔϏεશମͷμ΢ϯ͕໔ΕΔ • αʔόʔεϖοΫͷ࠷దԽ • αʔϏε͝ͱʹཁٻ͞ΕΔύϑΥʔϚϯε͕ҧͬͨΓ͢ΔͷͰ”ͪΌΜͱΠϯϑϥΛ؅ཧͰ͖ͯΕ͹”
 ʮ͜ͷαʔϏε͸ϝϞϦϚγϚγͰʯ͕؆୯ʹͰ͖Δ • CIͷߴ଎Խ • ଞαʔϏεͷॲཧ͸mockͯ͠ςετΛॻ͘ͷͰঢ়ଶͷֻ͚ࢉ͕ݮͬͯςετ͕؆ܿʹͳΔ • ਖ਼͘͠mock͢Δͷ͸ΊͪΌେม • Ϟμϯͳ։ൃΛͯͦ͠͏ͳงғؾ͕ग़Δ • ຊ౰͸͔ͳΓటष͍

Slide 7

Slide 7 text

લఏ ྫͱͯ͠ԫ྘৭ΞΠίϯͷϓϩάϥϚͷͨΊͷ ٕज़৘ใڞ༗αʔϏεΛϚΠΫϩαʔϏεԽΛ૝ఆ ※ தΛݟͨ͜ͱͳ͍ͷͰ׬શʹໝ૝Ͱ͢ • ϚΠΫϩαʔϏε࠷ߴʂͬͯ࿩ΛΑ͘ฉ͘ͷͰ΍ͬͯΈΔ͜ͱʹͨ͠ • ͱ͸͍͑ػೳ։ൃΛࢭΊΔΘ͚ʹ͸͍͔ͳ͍ͷͰ2νʔϜʹ෼͚ͯ
 ฒߦͯ͠ਐΊ͍ͯ͘ ঢ়گ

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙݱࡏʙ

Slide 10

Slide 10 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job ػೳ։ൃνʔϜʹΑΔʮJobػೳʯͷ௥Ճ

Slide 11

Slide 11 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job ϚΠΫϩαʔϏεԽ͠Α͏ʂʂʂ

Slide 12

Slide 12 text

Α͏ͦ͜஍ࠈ΁

Slide 13

Slide 13 text

஍ࠈͷ͓඼ॻ͖ ᶃ ؅ཧ͢Δαʔό૿͑Δ஍ࠈ ᶄ ϩάऩूͲ͏͢ΔΜͩ஍ࠈ ᶅ ࠷దͳݴޠͰ࣮૷ͨ͘͠ͳͬͯ͘Δ஍ࠈ ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍໿࢖͑ͳ͍஍ࠈ ᶇ ୤ϙϦϞʔϑΟοΫςʔϒϧ஍ࠈ ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢஍ࠈ ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔஍ࠈ ᶊ ΫϥΠΞϯταΠυ͸Կͱ௨৴͢Ε͹͑͑Μ΍஍ࠈ ᶋ ͦ΋ͦ΋υϝΠϯڥքมΘΔ஍ࠈ ᶌ ϚΠΫϩαʔϏε෼͚͗ͯ͢͠·ͬͨ஍ࠈ 
 and many more…

Slide 14

Slide 14 text

ᶃ ؅ཧ͢Δαʔό૿͑Δ஍ࠈ • ͍··Ͱ1ͭͰ׬͍݁ͤͯͨ͞αʔόΛෳ਺ʹ෼͚Δ • Ͳ͔͜ͰҰݩ؅ཧ͢Δඞཁੑ͕ग़ͯ͘Δ • ΠϯϑϥͳΜͰ΋஌ͬͯΔchigita͞Μ͕શͯख࡞ۀͰ؅ཧͯͨ͠Β • → chigita͞Μͷୀ৬ = αʔϏεऴྃͷ͓஌Βͤ

Slide 15

Slide 15 text

ᶃ ؅ཧ͢Δαʔό૿͑Δ஍ࠈ ͦΜͳ͋ͳͨʹɿInfrastructure as Code(IaC) • ϓϩϏδϣχϯάɺ֤αʔόͷཁٻੑೳΛશͯίʔυͰ؅ཧ͢Δ • →ଐਓԽΛͳ͘͢ • ࠷ۙΑ͘ฉ͘ͷ͸TerraformΛ࢖ͬͯk8s(GKE/EKS)΍ECSΛ؅ཧ͢Δ • ͜ͷลͷಋೖ͸ҰேҰ༦Ͱ͸·ͣແཧ • αʔό؅ཧʹΦʔφʔγοϓΛ࣋ͭΠϯϑϥΤϯδχΞ͸ඞਢ Terraform ɾɾɾ༗໊ͳΫϥ΢υαʔϏεΛڞ௨ͷॻ͖ํͰίʔυԽͰ͖Δπʔϧ k8s(kubernetes)ɾɾɾͨ͘͞Μͷdocker containerΛ͍͍ײ͡ʹ؅ཧ͢ΔϑϨʔϜϫʔΫ(OSS)
 GKE/EKS͸k8sͷSaaS ECS ɾɾɾEKSͱҧ͍͕෼͔ΒΜɻ୭͔ڭ͑ͯ΄͍͠

Slide 16

Slide 16 text

ᶄ ϩάऩूͲ͏͢ΔΜͩ஍ࠈ • هࣄϚΠΫϩαʔϏε͕όάͬͯΔ͜ͱ͜ͱ͕൑໌ • όάͷݪҼΛಥ͖ࢭΊ͍ͨ • ࠓ·Ͱ͸stacktraceΛݟΕ͹ϝιουͷݺͼग़͠ݩ͕෼͔ΔͷͰ͙͢ݪҼ Λಥ͖ࢭΊΔ͜ͱ͕Ͱ͖͍ͯͨ • αʔϏε͕෼͔ΕΔͱstacetraceʹදࣔ͞Εͳ͘ͳΔͷͰ
 stacktraceʹରԠ͢Δ΋ͷΛ࠶࣮૷͢Δඞཁ͕͋Δ

Slide 17

Slide 17 text

ᶄ ϩάऩूͲ͏͢ΔΜͩ஍ࠈ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ૷ or ۚͷ஄ؙ • ؤு࣮ͬͯ૷ • ֤ϚΠΫϩαʔϏεؒͷϦΫΤετʹUUIDΛ෇༩ͯ͠௨৴Λߦ͏͜ͱʹΑΓ
 ͋ͱͰ௨৴ܦ࿏Λௐ΂ΒΕΔΑ͏ʹ͢Δ • ۚͷ஄ؙ • ্هͷػೳΛఏڙͯ͘͠ΕͯΔSaaS(AWS X-Ray)Λ࢖͏

Slide 18

Slide 18 text

ᶅ ࠷దͳݴޠͰ࣮૷ͨ͘͠ͳͬͯ͘Δ஍ࠈ ͦΜͳ͋ͳͨʹɿզຫ͢Δ ࠷దͳݴޠͰͷ࠶࣮૷͸ϚΠΫϩαʔϏεԽ͕ࡁΜͰ͔Β ϚΠΫϩαʔϏεԽͱ࠶࣮૷ͱಉ࣌ʹߦ͏ͱઈରʹऴΘΒͳ͍ ʮRuby஗͍͠ܕͳ͍͠GoͰॻ͖׵͑ͨ͘ͳ͍ʁʯ

Slide 19

Slide 19 text

ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍໿࢖͑ͳ͍஍ࠈ • DBΛ෼͚Δͱ͍͏͜ͱ͸ࠓ·ͰͷਓྨͷӥஐΛࣺͯΔͱ͍͏͜ͱ • ҟͳΔDBಉ࢜ͷJOIN͸Ͱ͖ͳ͍͠ɺτϥϯβΫγϣϯ΋షΕͳ͍ɺ
 ֎෦ࢀর੍໿΋࢖͑ͳ͍ • ͱ͸͍͑σʔλෆ੔߹Λى͜͢Θ͚ʹ΋͍͔ͳ͍ͷͰαʔϏεؒ௨৴ͷҝͷผͷ࢓૊Έ Λ༻ҙ͢Δඞཁ͕͋Δ • API callʁ HTTP஗Ԇ଴ͯͳ͘ͳ͍ʁ • ඇಉظॲཧʁ σʔλෆ੔߹ͷՄೳੑ͋ΔΑͶʁ • ͜͜͸ཁ݅ͱʹΒΊͬͯ͜͠ͲͪΒ͕ྑ͍ͷ͔൑அ͢Δඞཁ͕͋Δ • ஗Ԇ΋ͤ͞ΒΕͳ͍͠ෆ੔߹΋ࠔΔ௨৴͕͋Δ৔߹͸ಉҰαʔϏε಺ʹ
 ஔ͍͓͔ͯ͘͠ͳ͍

Slide 20

Slide 20 text

ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍໿࢖͑ͳ͍஍ࠈ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ૷ • ͜͜͸ؤுΔ͔͠ͳ͍ • ࣗ෼ͷͱ͜Ζͷ৔߹ • API call → Ϩεϙϯε͸JSONܗࣜͰ͸ͳ͘protobufܗࣜͰ௨৴ • ඇಉظॲཧ → Cloud Pub/SubΛ࢖ͬͯpub/subͰ΍ΓऔΓ • payloadͷserialize͸API callͱಉ༷ͷprotobufܗࣜͰߦͳ͍ͬͯΔ pub/subɾɾɾ1ݸͷpublisherͱNݸͷsubscriber͕ඇಉظతʹ΍ΓͱΓΛ͢Δ࢓૊ΈɻCloud Pub/Sub͸ͦͷSaaS
 protobufɾɾɾσʔλࣗମ͸όΠφϦͰૹ৴࣌/ड৴࣌ʹserialize/deserializeΛߦ͏ɻJSONͱͷҧ͍͸ܕ͕͍ͭͯΔ

Slide 21

Slide 21 text

ᶇ ୤ϙϦϞʔϑΟοΫςʔϒϧ஍ࠈ • ϚΠΫϩαʔϏε੾Γग़͕࢝͠·ͬͯ਺೔ޙ… • ʮ͋Εɺλά͕هࣄ͚ͩ͡Όͳͯ͘Ϣʔβʔʹ΋ඥ͍ͮͯΔͧ…ʁʯ ࣌ؒͳ͚Ε͹skip

Slide 22

Slide 22 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job

Slide 23

Slide 23 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job

Slide 24

Slide 24 text

ᶇ ୤ϙϦϞʔϑΟοΫςʔϒϧ஍ࠈ • Ϣʔβʔొ࿥͢Δͱ͖ʹهࣄαʔϏε΁ϦΫΤετ͠ͳ͍ͱ͍͚ͳ͍σΟετϐΞͷ஀ੜ • ʮهࣄλάʯςʔϒϧͱʮϢʔβʔλάʯςʔϒϧʹ෼͚ͯɺͦΕͧΕͷϚΠΫϩαʔϏ εʹ࣋ͨͤΔ • ݱ࣮ͷαʔϏεͰ͸๲େͳ਺ʹͳΔͷͰશ෦෼͚Δͷ͸ۤߦofۤߦ • ෼͚Δඞཁͷ͋Δσʔλͱ෼͚ͳͯ͘΋͍͍σʔλΛਫ਼ࠪ͠ͳ͕ΒਐΊ͍ͯ͘΂͖

Slide 25

Slide 25 text

ᶇ ୤ϙϦϞʔϑΟοΫςʔϒϧ஍ࠈ • Ϣʔβʔొ࿥͢Δͱ͖ʹهࣄαʔϏε΁ϦΫΤετ͠ͳ͍ͱ͍͚ͳ͍σΟετϐΞͷ஀ੜ • ʮهࣄλάʯςʔϒϧͱʮϢʔβʔλάʯςʔϒϧʹ෼͚ͯɺͦΕͧΕͷϚΠΫϩαʔϏ εʹ࣋ͨͤΔ • ݱ࣮ͷαʔϏεͰ͸๲େͳ਺ʹͳΔͷͰશ෦෼͚Δͷ͸ۤߦofۤߦ • ෼͚Δඞཁͷ͋Δσʔλͱ෼͚ͳͯ͘΋͍͍σʔλΛਫ਼ࠪ͠ͳ͕ΒਐΊ͍ͯ͘΂͖ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ૷

Slide 26

Slide 26 text

ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢஍ࠈ • ͦΕͧΕͷϚΠΫϩαʔϏε͸ࣗ਎͕ΦʔφʔγοϓΛ͍࣋ͬͯΔςʔϒϧ͚ͩૢ࡞ͯ͠΄ ͍͠ • ਌Ϩίʔυ͕࡟আ͞ΕͨΒࢠϨίʔυ΋Ұॹʹ࡟আ͢Δ or ֎෦Ωʔͷͱ͜ΛNULLʹ͢Δ • Φʔφʔγοϓ֎ͷϨίʔυΛมߋ͍ͨ͠৔߹΋ଟʑ͋Δ • ී௨Ͱ͋Ε͹O/R mapper΍webϑϨʔϜϫʔΫ͕͍͍ײ͡ʹ΍ͬͯ͘ΕΔػೳΛ
 ࠶࣮૷͢Δඞཁ͕͋Δ ࣌ؒͳ͚Ε͹skip

Slide 27

Slide 27 text

ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢஍ࠈ • ͦΕͧΕͷϚΠΫϩαʔϏε͸ࣗ਎͕ΦʔφʔγοϓΛ͍࣋ͬͯΔςʔϒϧ͚ͩૢ࡞ͯ͠΄ ͍͠ • ਌Ϩίʔυ͕࡟আ͞ΕͨΒࢠϨίʔυ΋Ұॹʹ࡟আ͢Δ or ֎෦Ωʔͷͱ͜ΛNULLʹ͢Δ • Φʔφʔγοϓ֎ͷϨίʔυΛมߋ͍ͨ͠৔߹΋ଟʑ͋Δ • ී௨Ͱ͋Ε͹O/R mapper΍webϑϨʔϜϫʔΫ͕͍͍ײ͡ʹ΍ͬͯ͘ΕΔػೳΛ
 ࠶࣮૷͢Δඞཁ͕͋Δ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ૷

Slide 28

Slide 28 text

ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔஍ࠈ • ϚΠΫϩαʔϏεԽʹ͋ͨͬͯผϦϙδτϦʹίʔυΛҠ͍ͯ͘͠ඞཁ͕͋Δ • Ͱ΋ػೳ։ൃνʔϜ͸ΰϦΰϦػೳ࡞ͬͯΔͷͰҠͦ͏ʹ΋Ҡͤͳ͍

Slide 29

Slide 29 text

ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔஍ࠈ • ϚΠΫϩαʔϏεԽʹ͋ͨͬͯผϦϙδτϦʹίʔυΛҠ͍ͯ͘͠ඞཁ͕͋Δ • Ͱ΋ػೳ։ൃνʔϜ͸ΰϦΰϦػೳ࡞ͬͯΔͷͰҠͦ͏ʹ΋Ҡͤͳ͍ ͦΜͳ͋ͳͨʹɿ͕Μ͹Δ 1. ϞϊϦγοΫͳΞϓϦέʔγϣϯʹϚΠΫϩαʔϏεʹରԠ͢ΔॲཧΛߦ͏
 ΫϥεΛ࡞࣮ͬͯ૷ΛҠ͍ͯ͘͠(·ͩಉ͡ϦϙδτϦ) 2. ϚΠΫϩαʔϏεʹରԠ͢ΔॲཧΛॻ͍ͨΫϥεΛڞ௨ϥΠϒϥϦԽ • ػೳ։ൃνʔϜ΋ͦͷϥΠϒϥϦʹมߋΛՃ͑ͯ΋Β͏Α͏ʹ͢Δ 3. ৽͘͠ϦϙδτϦΛ࡞Γڞ௨ϥΠϒϥϦΛ࢖ͬͯϚΠΫϩαʔϏεΛ࡞͍ͬͯ͘ 4. ϞϊϦε͔Βஈ֊తʹڞ௨ϥΠϒϥϦΛൈ͍͍͖ͯ࠷ऴతʹ͸ϥΠϒϥϦফ໓

Slide 30

Slide 30 text

ᶊ ΫϥΠΞϯταΠυ͸Կͱ௨৴͢Ε͹͑͑Μ΍஍ࠈ • ϚΠΫϩαʔϏεԽͯ͠όοΫΤϯυ͸੔಴͞Εͯ៉ྷʹͳͬͨ • ΫϥΠΞϯτ͸ΞϓϦΛಈ͔ͨ͢Ίʹͨ͘͞Μͷαʔόͱ௨৴Λ͠ͳ͍ͱ
 ͍͚ͳ͘ͳͬͨ • ΞϓϦΤϯδχΞɺౖΓڰ͏

Slide 31

Slide 31 text

ᶊ ΫϥΠΞϯταΠυ͸Կͱ௨৴͢Ε͹͑͑Μ΍஍ࠈ ͦΜͳ͋ͳͨʹɿBackend For Frontend(BFF) • ΫϥΠΞϯτͱόοΫΤϯυͷதؒ؅ཧ৬తͳଘࡏ(proxy server) • ΫϥΠΞϯτ͔Βཉ͍͠৘ใͷϦΫΤετ͕ಧ͘ͱόοΫΤϯυ(ϚΠΫϩ αʔϏε)ʹ໰͍߹ΘͤͯΑ͠ͳʹσʔλΛऔ͖ͬͯͯ͘ΕΔ • ΫϥΠΞϯτ͸BFFͱ௨৴͢Δ͚ͩͰΑ͘ͳΔ • ΫϥΠΞϯτͱBFF͸GraphQLͰ΍ΓऔΓ͢Δ͜ͱ͕ଟ͍ؾ͕͢Δʁ GraphQLɾɾɾ୯ҰͷΤϯυϙΠϯτʹରͯ͠POSTΛߦ͍ɺbodyʹΫΤϦΛ෇༩͢Δ͜ͱʹΑΓཉ͍͠σʔλΛ
 ɹɹɹɹɹɹɹऔಘͰ͖ΔΑ͏ʹ͢Δ࢓૊ΈɻJSONͱҧͬͯܕ͕͍ͭͯΔͷ͕خ͍͠ɻ

Slide 32

Slide 32 text

ᶋ ͦ΋ͦ΋υϝΠϯڥքมΘΔ஍ࠈ • ϚΠΫϩαʔϏε੾Γग़࢝͠·ͬͯ਺िؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ

Slide 33

Slide 33 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job

Slide 34

Slide 34 text

Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job

Slide 35

Slide 35 text

ᶋ ͦ΋ͦ΋υϝΠϯڥքมΘΔ஍ࠈ • ϚΠΫϩαʔϏε੾Γग़࢝͠·ͬͯ਺िؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ • ຊ౰͸Job୯ମͰϚΠΫϩαʔϏεͱͯ͠੾Γ෼͚Δ΂͖ͩͬͨ • ϚΠΫϩαʔϏε੾Γग़͠ͷஈ֊Ͱ͸૝ఆͰ͖ͳ͍͜ͱ

Slide 36

Slide 36 text

ᶋ ͦ΋ͦ΋υϝΠϯڥքมΘΔ஍ࠈ • ϚΠΫϩαʔϏε੾Γग़࢝͠·ͬͯ਺िؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ • ຊ౰͸Job୯ମͰϚΠΫϩαʔϏεͱͯ͠੾Γ෼͚Δ΂͖ͩͬͨ • ϚΠΫϩαʔϏε੾Γग़͠ͷஈ֊Ͱ͸૝ఆͰ͖ͳ͍͜ͱ ͦΜͳ͋ͳͨʹɿ1ճϞϊϦεʹ͚ͬͭ͘௚ͯ͠࠶౓੾Γग़͠ Railsͷ࡞ऀ DHH͕ӡӦͯ͠ΔαʔϏε basecamp͸3ճॻ͖௚ͯ͠ΔΒ͍͠

Slide 37

Slide 37 text

ᶌ ϚΠΫϩαʔϏε෼͚͗ͯ͢͠·ͬͨ஍ࠈ • ϚΠΫϩαʔϏεʹ෼͚·ͬͨ݁͘Ռɺੜ࢈ੑ͕͔ͳΓ্͕ͬͨ • ΤϯδχΞ2ਓͰ1ͭͷϚΠΫϩαʔϏεΛݟΔ·Ͱʹ • ηΩϡϦςΟύονΛ౰ͯ๨ΕΔαʔϏε͕ग़ͯ͘Δ • ਓ͕গͳ͍෼ɺαʔϏεؒͰίʔυʹ͕ࠩग़ͯ͠·͏ • ಛఆͷσβΠϯύλʔϯଟ༻͢ΔϚϯͱ͔ ref: https://speakerdeck.com/ota42y/how-should-we-face-with-microservices-wo- hamaikurosabisutodouxiang-kihe-ubekika

Slide 38

Slide 38 text

ᶌ ϚΠΫϩαʔϏε෼͚͗ͯ͢͠·ͬͨ஍ࠈ ͦΜͳ͋ͳͨʹɿਓΛ૿΍͢ • ஌Γ߹͍Λwanted͠·͠ΐ͏ ͓͢͢ΊͷαʔϏε͸ͪ͜Βɿhttps://www.wantedly.com/

Slide 39

Slide 39 text

·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ͸ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ΋͏·͘ར༻͢Ε͹ ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢Δਓ਺଍Γͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)໰୊΁ͱϘτϧωοΫΛҠͤΔ

Slide 40

Slide 40 text

·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ͸ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ ਺೥ޙͷࣗ෼ͷੜ࢈ੑΛ֬อ͢ΔͨΊʹ֤Ґ͕Μ͹͍͖ͬͯ·͠ΐ͏ Ͱ΋͏·͘ར༻͢Ε͹ ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢Δਓ਺଍Γͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)໰୊΁ͱϘτϧωοΫΛҠͤΔ