Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kosen12sLT_4.pdf
Search
Shintani Teppei
March 30, 2019
Technology
260
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kosen12sLT_4.pdf
Shintani Teppei
March 30, 2019
More Decks by Shintani Teppei
See All by Shintani Teppei
すべてがオンボーディングタスクになる / Everything becomes an onboarding task
euglena1215
0
140
「地続き」の技術面接 / "Continuous" technical interview
euglena1215
0
83
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
320
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
290
ISUCONで型をつける
euglena1215
1
170
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
5.8k
モジュラモノリス、その前に / Modular monolith, before that
euglena1215
8
1.2k
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
290
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
1k
Other Decks in Technology
See All in Technology
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
500
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
480
OPENLOGI Company Profile for engineer
hr01
1
74k
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.3k
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.3k
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
790
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
110
Vポイント分析基盤におけるデータモデリング20年史
taromatsui_cccmkhd
4
730
穢れた技術選定について
watany
19
6.2k
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
1
240
生成 AI 時代にいま一度「問い合わせ」について考えてみる
kazzpapa3
1
130
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
290
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
420
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The SEO Collaboration Effect
kristinabergwall1
1
510
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
So, you think you're a good person
axbom
PRO
2
2.1k
A better future with KSS
kneath
240
18k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
4 Signs Your Business is Dying
shpigford
187
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
Optimizing for Happiness
mojombo
378
71k
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/
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ
·ͱΊ ϞϊϦγοΫαʔϏε͔ΒͷϚΠΫϩαʔϏεԽ ࢮ͵΄Ͳߟ͑Δ͜ͱ͋Δ͔ΒؾΛ͚ͭΑ͏ͳ ޙͷࣗͷੜ࢈ੑΛ֬อ͢ΔͨΊʹ֤Ґ͕Μ͍͖ͬͯ·͠ΐ͏ Ͱ͏·͘ར༻͢Ε ʮαʔϏε͕ෳࡶ͗ͯ͢։ൃͭΒ͍ʯ͔Β ʮαʔϏεΛ։ൃ͢ΔਓΓͳͯͭ͘Β͍ʯʹ εέʔϧՄೳͳ(ۚͰղܾͰ͖Δ)ͱϘτϧωοΫΛҠͤΔ