Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
kosen12sLT_4.pdf
Shintani Teppei
March 30, 2019
Technology
1
200
kosen12sLT_4.pdf
Shintani Teppei
March 30, 2019
Tweet
Share
More Decks by Shintani Teppei
See All by Shintani Teppei
どんなときにテストを書いた方がいいのか/When should you write a test?
euglena1215
1
280
10万円支給されるやつ/10manen-hoshii
euglena1215
1
140
Ruby gRPCを使って「ちゃんと」サービスを作る / Make a service properly using Ruby gRPC
euglena1215
1
480
新卒がマイクロサービス化を行うメリット / Benefits of did microservices by new grads #megurorb
euglena1215
0
990
Slackにアップしたスライドをいい感じに見れるやつ作った
euglena1215
1
1.4k
高専Podcastの話
euglena1215
0
170
Other Decks in Technology
See All in Technology
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.2k
What's Data Lake ? Azure Data Lake best practice
ryomaru0825
2
730
JJUG2022_spring_Keycloak (Red Hat Single Sign-on)
tinoue
0
200
Scrum Fest Osaka 2022 フルリモート下でのチームビルディング
moritamasami
2
1.1k
Istio入門
nutslove
15
4.9k
UWBを使ってみた
norioikedo
0
400
Retca Cloud
bau
0
240
Microsoft Build 2022 Recap Party!! Azure のデータ & 分析サービス 注目アップデート / microsoft-build-2022-recap-azure-data-and-analytics
nakazax
0
250
さいきんのRaspberry Pi。 / osc22do-rpi
akkiesoft
4
4.9k
ROS再入門-はじめてのSLAM-
miura55
0
380
20220622_FinJAWS_あのときにAWSがあったらこうできた
taketakekaho
0
110
HoloLens2とMetaQuest2どちらも動くWebXRアプリをBabylon.jsで作る
iwaken71
0
180
Featured
See All Featured
Six Lessons from altMBA
skipperchong
14
1.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
15k
Testing 201, or: Great Expectations
jmmastey
21
5.4k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
Design by the Numbers
sachag
271
17k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
Code Reviewing Like a Champion
maltzj
506
37k
From Idea to $5000 a Month in 5 Months
shpigford
373
44k
Debugging Ruby Performance
tmm1
65
10k
Transcript
ϞϊϦεΛখ͘͢͞ΔͭΒΈ kosen12s LT#4 Shintani Teppei (@euglena1215)
͍͑ͨ͜ͱ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ͏·͘ར༻͢Ε αʔϏεͷण໋ΛԆ͢͜ͱ͕Ͱ͖Δ(͔)
ͭΒΈΛ͢લʹ •ɹͦͦͳͥਓྨϚΠΫϩαʔϏεԽΛ͕ͨ͠Δͷ͔ʁ •ɹͦͦϚΠΫϩαʔϏεͱʁ
What is microservices? • ༧ݴऀ Martin Fowler͕ఏএ • ϚΠΫϩαʔϏεΞʔΩςΫνϟελΠϧ୯ҰͷΞϓϦέʔγϣϯΛখ ͞ͳαʔϏε܈ͷΈ߹Θͤͱͯ͠ߏங͢Δख๏
ref: https://martinfowler.com/articles/microservices.html
ref: https://martinfowler.com/articles/microservices.html
ϚΠΫϩαʔϏεԽͷϝϦοτ • ։ൃ࣌ʹߟ͑ͳ͍ͱ͍͚ͳ͍είʔϓ͕ڱ͘ͳΔ • “ਖ਼͘͠αʔϏεͷΓ͚͕Ͱ͖Ε” ࣗͷαʔϏεͷ͜ͱ͚ͩΛߟ͑ΕΑ͘ͳΔ • োͷൖͷ࠷খԽ • αʔϏε͝ͱʹαʔόʔΛىಈͤ͞ΔͷͰෆྀͷࣄނʹΑΓαʔόʔ͕ͪΐͬ͜ͱαʔόʔ͕མͪͨͱ
ͯ͠”ਖ਼࣮͍ͯ͘͠͠Ε”αʔϏεશମͷμϯ͕໔ΕΔ • αʔόʔεϖοΫͷ࠷దԽ • αʔϏε͝ͱʹཁٻ͞ΕΔύϑΥʔϚϯε͕ҧͬͨΓ͢ΔͷͰ”ͪΌΜͱΠϯϑϥΛཧͰ͖ͯΕ” ʮ͜ͷαʔϏεϝϞϦϚγϚγͰʯ͕؆୯ʹͰ͖Δ • CIͷߴԽ • ଞαʔϏεͷॲཧmockͯ͠ςετΛॻ͘ͷͰঢ়ଶͷֻ͚ࢉ͕ݮͬͯςετ͕؆ܿʹͳΔ • ਖ਼͘͠mock͢ΔͷΊͪΌେม • Ϟμϯͳ։ൃΛͯͦ͠͏ͳงғؾ͕ग़Δ • ຊ͔ͳΓటष͍
લఏ ྫͱͯ͠ԫ৭ΞΠίϯͷϓϩάϥϚͷͨΊͷ ٕज़ใڞ༗αʔϏεΛϚΠΫϩαʔϏεԽΛఆ ※ தΛݟͨ͜ͱͳ͍ͷͰશʹໝͰ͢ • ϚΠΫϩαʔϏε࠷ߴʂͬͯΛΑ͘ฉ͘ͷͰͬͯΈΔ͜ͱʹͨ͠ • ͱ͍͑ػೳ։ൃΛࢭΊΔΘ͚ʹ͍͔ͳ͍ͷͰ2νʔϜʹ͚ͯ ฒߦͯ͠ਐΊ͍ͯ͘
ঢ়گ
None
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙݱࡏʙ
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job ػೳ։ൃνʔϜʹΑΔʮJobػೳʯͷՃ
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job ϚΠΫϩαʔϏεԽ͠Α͏ʂʂʂ
Α͏ͦ͜ࠈ
ࠈͷ͓ॻ͖ ᶃ ཧ͢Δαʔό૿͑Δࠈ ᶄ ϩάऩूͲ͏͢ΔΜͩࠈ ᶅ ࠷దͳݴޠͰ࣮ͨ͘͠ͳͬͯ͘Δࠈ ᶆ JOIN, τϥϯβΫγϣϯ,
֎෦ࢀর੍͑ͳ͍ࠈ ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢ࠈ ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔ࠈ ᶊ ΫϥΠΞϯταΠυԿͱ௨৴͢Ε͑͑Μࠈ ᶋ ͦͦυϝΠϯڥքมΘΔࠈ ᶌ ϚΠΫϩαʔϏε͚͗ͯ͢͠·ͬͨࠈ and many more…
ᶃ ཧ͢Δαʔό૿͑Δࠈ • ͍··Ͱ1ͭͰ͍݁ͤͯͨ͞αʔόΛෳʹ͚Δ • Ͳ͔͜ͰҰݩཧ͢Δඞཁੑ͕ग़ͯ͘Δ • ΠϯϑϥͳΜͰͬͯΔchigita͞Μ͕શͯख࡞ۀͰཧͯͨ͠Β • →
chigita͞Μͷୀ৬ = αʔϏεऴྃͷ͓Βͤ
ᶃ ཧ͢Δαʔό૿͑Δࠈ ͦΜͳ͋ͳͨʹɿInfrastructure as Code(IaC) • ϓϩϏδϣχϯάɺ֤αʔόͷཁٻੑೳΛશͯίʔυͰཧ͢Δ • →ଐਓԽΛͳ͘͢ •
࠷ۙΑ͘ฉ͘ͷTerraformΛͬͯk8s(GKE/EKS)ECSΛཧ͢Δ • ͜ͷลͷಋೖҰேҰ༦Ͱ·ͣແཧ • αʔόཧʹΦʔφʔγοϓΛ࣋ͭΠϯϑϥΤϯδχΞඞਢ Terraform ɾɾɾ༗໊ͳΫϥυαʔϏεΛڞ௨ͷॻ͖ํͰίʔυԽͰ͖Δπʔϧ k8s(kubernetes)ɾɾɾͨ͘͞Μͷdocker containerΛ͍͍ײ͡ʹཧ͢ΔϑϨʔϜϫʔΫ(OSS) GKE/EKSk8sͷSaaS ECS ɾɾɾEKSͱҧ͍͕͔ΒΜɻ୭͔ڭ͑ͯ΄͍͠
ᶄ ϩάऩूͲ͏͢ΔΜͩࠈ • هࣄϚΠΫϩαʔϏε͕όάͬͯΔ͜ͱ͜ͱ͕໌ • όάͷݪҼΛಥ͖ࢭΊ͍ͨ • ࠓ·ͰstacktraceΛݟΕϝιουͷݺͼग़͠ݩ͕͔ΔͷͰ͙͢ݪҼ Λಥ͖ࢭΊΔ͜ͱ͕Ͱ͖͍ͯͨ •
αʔϏε͕͔ΕΔͱstacetraceʹදࣔ͞Εͳ͘ͳΔͷͰ stacktraceʹରԠ͢ΔͷΛ࠶࣮͢Δඞཁ͕͋Δ
ᶄ ϩάऩूͲ͏͢ΔΜͩࠈ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ or ۚͷؙ • ؤு࣮ͬͯ • ֤ϚΠΫϩαʔϏεؒͷϦΫΤετʹUUIDΛ༩ͯ͠௨৴Λߦ͏͜ͱʹΑΓ ͋ͱͰ௨৴ܦ࿏ΛௐΒΕΔΑ͏ʹ͢Δ
• ۚͷؙ • ্هͷػೳΛఏڙͯ͘͠ΕͯΔSaaS(AWS X-Ray)Λ͏
ᶅ ࠷దͳݴޠͰ࣮ͨ͘͠ͳͬͯ͘Δࠈ ͦΜͳ͋ͳͨʹɿզຫ͢Δ ࠷దͳݴޠͰͷ࠶࣮ϚΠΫϩαʔϏεԽ͕ࡁΜͰ͔Β ϚΠΫϩαʔϏεԽͱ࠶࣮ͱಉ࣌ʹߦ͏ͱઈରʹऴΘΒͳ͍ ʮRuby͍͠ܕͳ͍͠GoͰॻ͖͑ͨ͘ͳ͍ʁʯ
ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍͑ͳ͍ࠈ • DBΛ͚Δͱ͍͏͜ͱࠓ·ͰͷਓྨͷӥஐΛࣺͯΔͱ͍͏͜ͱ • ҟͳΔDBಉ࢜ͷJOINͰ͖ͳ͍͠ɺτϥϯβΫγϣϯషΕͳ͍ɺ ֎෦ࢀর੍͑ͳ͍ •
ͱ͍͑σʔλෆ߹Λى͜͢Θ͚ʹ͍͔ͳ͍ͷͰαʔϏεؒ௨৴ͷҝͷผͷΈ Λ༻ҙ͢Δඞཁ͕͋Δ • API callʁ HTTPԆͯͳ͘ͳ͍ʁ • ඇಉظॲཧʁ σʔλෆ߹ͷՄೳੑ͋ΔΑͶʁ • ͜͜ཁ݅ͱʹΒΊͬͯ͜͠ͲͪΒ͕ྑ͍ͷ͔அ͢Δඞཁ͕͋Δ • Ԇͤ͞ΒΕͳ͍͠ෆ߹ࠔΔ௨৴͕͋Δ߹ಉҰαʔϏεʹ ஔ͍͓͔ͯ͘͠ͳ͍
ᶆ JOIN, τϥϯβΫγϣϯ, ֎෦ࢀর੍͑ͳ͍ࠈ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ • ͜͜ؤுΔ͔͠ͳ͍ • ࣗͷͱ͜Ζͷ߹ •
API call → ϨεϙϯεJSONܗࣜͰͳ͘protobufܗࣜͰ௨৴ • ඇಉظॲཧ → Cloud Pub/SubΛͬͯpub/subͰΓऔΓ • payloadͷserializeAPI callͱಉ༷ͷprotobufܗࣜͰߦͳ͍ͬͯΔ pub/subɾɾɾ1ݸͷpublisherͱNݸͷsubscriber͕ඇಉظతʹΓͱΓΛ͢ΔΈɻCloud Pub/SubͦͷSaaS protobufɾɾɾσʔλࣗମόΠφϦͰૹ৴࣌/ड৴࣌ʹserialize/deserializeΛߦ͏ɻJSONͱͷҧ͍ܕ͕͍ͭͯΔ
ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ • ϚΠΫϩαʔϏεΓग़͕࢝͠·ͬͯޙ… • ʮ͋Εɺλά͕هࣄ͚ͩ͡Όͳͯ͘Ϣʔβʔʹඥ͍ͮͯΔͧ…ʁʯ ࣌ؒͳ͚Εskip
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ • Ϣʔβʔొ͢Δͱ͖ʹهࣄαʔϏεϦΫΤετ͠ͳ͍ͱ͍͚ͳ͍σΟετϐΞͷੜ • ʮهࣄλάʯςʔϒϧͱʮϢʔβʔλάʯςʔϒϧʹ͚ͯɺͦΕͧΕͷϚΠΫϩαʔϏ εʹ࣋ͨͤΔ • ݱ࣮ͷαʔϏεͰେͳʹͳΔͷͰશ෦͚Δͷۤߦofۤߦ •
͚Δඞཁͷ͋Δσʔλͱ͚ͳ͍͍ͯ͘σʔλΛਫ਼ࠪ͠ͳ͕ΒਐΊ͍͖ͯ͘
ᶇ ϙϦϞʔϑΟοΫςʔϒϧࠈ • Ϣʔβʔొ͢Δͱ͖ʹهࣄαʔϏεϦΫΤετ͠ͳ͍ͱ͍͚ͳ͍σΟετϐΞͷੜ • ʮهࣄλάʯςʔϒϧͱʮϢʔβʔλάʯςʔϒϧʹ͚ͯɺͦΕͧΕͷϚΠΫϩαʔϏ εʹ࣋ͨͤΔ • ݱ࣮ͷαʔϏεͰେͳʹͳΔͷͰશ෦͚Δͷۤߦofۤߦ •
͚Δඞཁͷ͋Δσʔλͱ͚ͳ͍͍ͯ͘σʔλΛਫ਼ࠪ͠ͳ͕ΒਐΊ͍͖ͯ͘ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ
ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢ࠈ • ͦΕͧΕͷϚΠΫϩαʔϏε͕ࣗΦʔφʔγοϓΛ͍࣋ͬͯΔςʔϒϧ͚ͩૢ࡞ͯ͠΄ ͍͠ • Ϩίʔυ͕আ͞ΕͨΒࢠϨίʔυҰॹʹআ͢Δ or ֎෦Ωʔͷͱ͜ΛNULLʹ͢Δ •
Φʔφʔγοϓ֎ͷϨίʔυΛมߋ͍ͨ͠߹ଟʑ͋Δ • ී௨Ͱ͋ΕO/R mapperwebϑϨʔϜϫʔΫ͕͍͍ײ͡ʹͬͯ͘ΕΔػೳΛ ࠶࣮͢Δඞཁ͕͋Δ ࣌ؒͳ͚Εskip
ᶈ Ϩίʔυอଘ࣌ͷؔ࿈ςʔϒϧߋ৽callback֎͢ࠈ • ͦΕͧΕͷϚΠΫϩαʔϏε͕ࣗΦʔφʔγοϓΛ͍࣋ͬͯΔςʔϒϧ͚ͩૢ࡞ͯ͠΄ ͍͠ • Ϩίʔυ͕আ͞ΕͨΒࢠϨίʔυҰॹʹআ͢Δ or ֎෦Ωʔͷͱ͜ΛNULLʹ͢Δ •
Φʔφʔγοϓ֎ͷϨίʔυΛมߋ͍ͨ͠߹ଟʑ͋Δ • ී௨Ͱ͋ΕO/R mapperwebϑϨʔϜϫʔΫ͕͍͍ײ͡ʹͬͯ͘ΕΔػೳΛ ࠶࣮͢Δඞཁ͕͋Δ ͦΜͳ͋ͳͨʹɿؤு࣮ͬͯ
ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔ࠈ • ϚΠΫϩαʔϏεԽʹ͋ͨͬͯผϦϙδτϦʹίʔυΛҠ͍ͯ͘͠ඞཁ͕͋Δ • Ͱػೳ։ൃνʔϜΰϦΰϦػೳ࡞ͬͯΔͷͰҠͦ͏ʹҠͤͳ͍
ᶉ Ҡߦظؒͷίʔυڞ༗Ͳ͏͢Δ͔ࠈ • ϚΠΫϩαʔϏεԽʹ͋ͨͬͯผϦϙδτϦʹίʔυΛҠ͍ͯ͘͠ඞཁ͕͋Δ • Ͱػೳ։ൃνʔϜΰϦΰϦػೳ࡞ͬͯΔͷͰҠͦ͏ʹҠͤͳ͍ ͦΜͳ͋ͳͨʹɿ͕ΜΔ 1. ϞϊϦγοΫͳΞϓϦέʔγϣϯʹϚΠΫϩαʔϏεʹରԠ͢ΔॲཧΛߦ͏ ΫϥεΛ࡞࣮ͬͯΛҠ͍ͯ͘͠(·ͩಉ͡ϦϙδτϦ)
2. ϚΠΫϩαʔϏεʹରԠ͢ΔॲཧΛॻ͍ͨΫϥεΛڞ௨ϥΠϒϥϦԽ • ػೳ։ൃνʔϜͦͷϥΠϒϥϦʹมߋΛՃ͑ͯΒ͏Α͏ʹ͢Δ 3. ৽͘͠ϦϙδτϦΛ࡞Γڞ௨ϥΠϒϥϦΛͬͯϚΠΫϩαʔϏεΛ࡞͍ͬͯ͘ 4. ϞϊϦε͔Βஈ֊తʹڞ௨ϥΠϒϥϦΛൈ͍͍͖ͯ࠷ऴతʹϥΠϒϥϦফ໓
ᶊ ΫϥΠΞϯταΠυԿͱ௨৴͢Ε͑͑Μࠈ • ϚΠΫϩαʔϏεԽͯ͠όοΫΤϯυ͞Εͯ៉ྷʹͳͬͨ • ΫϥΠΞϯτΞϓϦΛಈ͔ͨ͢Ίʹͨ͘͞Μͷαʔόͱ௨৴Λ͠ͳ͍ͱ ͍͚ͳ͘ͳͬͨ • ΞϓϦΤϯδχΞɺౖΓڰ͏
ᶊ ΫϥΠΞϯταΠυԿͱ௨৴͢Ε͑͑Μࠈ ͦΜͳ͋ͳͨʹɿBackend For Frontend(BFF) • ΫϥΠΞϯτͱόοΫΤϯυͷதؒཧ৬తͳଘࡏ(proxy server) • ΫϥΠΞϯτ͔Βཉ͍͠ใͷϦΫΤετ͕ಧ͘ͱόοΫΤϯυ(ϚΠΫϩ
αʔϏε)ʹ͍߹ΘͤͯΑ͠ͳʹσʔλΛऔ͖ͬͯͯ͘ΕΔ • ΫϥΠΞϯτBFFͱ௨৴͢Δ͚ͩͰΑ͘ͳΔ • ΫϥΠΞϯτͱBFFGraphQLͰΓऔΓ͢Δ͜ͱ͕ଟ͍ؾ͕͢Δʁ GraphQLɾɾɾ୯ҰͷΤϯυϙΠϯτʹରͯ͠POSTΛߦ͍ɺbodyʹΫΤϦΛ༩͢Δ͜ͱʹΑΓཉ͍͠σʔλΛ ɹɹɹɹɹɹɹऔಘͰ͖ΔΑ͏ʹ͢ΔΈɻJSONͱҧͬͯܕ͕͍ͭͯΔͷ͕خ͍͠ɻ
ᶋ ͦͦυϝΠϯڥքมΘΔࠈ • ϚΠΫϩαʔϏεΓग़࢝͠·ͬͯिؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
Ϣʔβʔ هࣄ Organization λά ετοΫ γεςϜ֓ཁਤɹʙ֬ఆ͍ͯ͠Δະདྷʙ Job
ᶋ ͦͦυϝΠϯڥքมΘΔࠈ • ϚΠΫϩαʔϏεΓग़࢝͠·ͬͯिؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ • ຊJob୯ମͰϚΠΫϩαʔϏεͱͯ͠Γ͚Δ͖ͩͬͨ • ϚΠΫϩαʔϏεΓग़͠ͷஈ֊ͰఆͰ͖ͳ͍͜ͱ
ᶋ ͦͦυϝΠϯڥքมΘΔࠈ • ϚΠΫϩαʔϏεΓग़࢝͠·ͬͯिؒޙ • ʮJobͷࢪࡦͱͯ͠هࣄʹJobΛඥ͚͍ͮͨͰ͢ʯ • ຊJob୯ମͰϚΠΫϩαʔϏεͱͯ͠Γ͚Δ͖ͩͬͨ • ϚΠΫϩαʔϏεΓग़͠ͷஈ֊ͰఆͰ͖ͳ͍͜ͱ
ͦΜͳ͋ͳͨʹɿ1ճϞϊϦεʹ͚ͬͭͯ͘͠࠶Γग़͠ Railsͷ࡞ऀ DHH͕ӡӦͯ͠ΔαʔϏε basecamp3ճॻ͖ͯ͠ΔΒ͍͠
ᶌ ϚΠΫϩαʔϏε͚͗ͯ͢͠·ͬͨࠈ • ϚΠΫϩαʔϏεʹ͚·ͬͨ݁͘Ռɺੜ࢈ੑ͕͔ͳΓ্͕ͬͨ • ΤϯδχΞ2ਓͰ1ͭͷϚΠΫϩαʔϏεΛݟΔ·Ͱʹ • ηΩϡϦςΟύονΛͯΕΔαʔϏε͕ग़ͯ͘Δ • ਓ͕গͳ͍ɺαʔϏεؒͰίʔυʹ͕ࠩग़ͯ͠·͏
• ಛఆͷσβΠϯύλʔϯଟ༻͢ΔϚϯͱ͔ ref: https://speakerdeck.com/ota42y/how-should-we-face-with-microservices-wo- hamaikurosabisutodouxiang-kihe-ubekika
ᶌ ϚΠΫϩαʔϏε͚͗ͯ͢͠·ͬͨࠈ ͦΜͳ͋ͳͨʹɿਓΛ૿͢ • Γ߹͍Λwanted͠·͠ΐ͏ ͓͢͢ΊͷαʔϏεͪ͜Βɿhttps://www.wantedly.com/
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ ޙͷࣗͷੜ࢈ੑΛ֬อ͢ΔͨΊʹ֤Ґ͕Μ͍͖ͬͯ·͠ΐ͏ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ