Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
masayoshi
May 18, 2018
Technology
4.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web system architecture #2
第2回WSA研での発表資料です
masayoshi
May 18, 2018
More Decks by masayoshi
See All by masayoshi
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
590
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
900
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
7
6.2k
メトリクス、ログ、トレースをうまく使い分けて可観測性を高めよう!
masayoshi
8
13k
Developers Summit 2021 summer
masayoshi
15
32k
2021-06-cloud-native-reg-event
masayoshi
8
2.6k
SRE_Culture_Organization
masayoshi
16
11k
cloudnative-kansai-2019
masayoshi
1
820
Webサービスにおけるインフラアーキテクチャの体系化と選択自動化の研究/study on web system architecture #1
masayoshi
0
3.3k
Other Decks in Technology
See All in Technology
Turning Repos into the Product Second Brain with an LLM Wiki
linedevth
0
110
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
2
190
React改造してみた
tsukina_7mochi
0
140
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
150
How to Design Configuration for Rails Applications
willnet
1
910
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
130
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
180
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
320
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
370
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
300
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
170
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Scaling GitHub
holman
464
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Crafting Experiences
bethany
1
390
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
Making Projects Easy
brettharned
120
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
How to build a perfect <img>
jonoalderson
1
6.1k
How to Ace a Technical Interview
jacobian
280
24k
Transcript
ϛυϧΣΞ࣮ߦڥͷଟ༷Խ Λߟྀͨ͠ΠϯϑϥΞʔΩςΫ νϟͷҰݕ౼
ΞδΣϯμ • ຊൃදͱݚڀͷҐஔ͚ͮ • ϛυϧΣΞ࣮ߦڥͷଟ༷ԽͱӨڹ • طଘͷΠϯϑϥΞʔΩςΫνϟ • 3ΞʔΩςΫνϟ •
ϩʔϧׂΞʔΩςΫνϟ • ݕ౼ͨ͠ΠϯϑϥΞʔΩςΫνϟ • ιϑτΣΞΞʔΩςΫνϟͷมભ • ϨΠϠʔυΞʔΩςΫνϟ • ΠϯϑϥΦχΦϯΞʔΩςΫνϟ • ࠓޙͷํͱ·ͱΊ
ຊൃදͱݚڀͷҐஔ͚ͮ
ݚڀςʔϚ • ݚڀ༰ • WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽ • ΠϯϑϥΞʔΩςΫνϟͷબࣗಈԽ • લճͷൃදͰɺݚڀ՝ͷཧΛߦͬͨ WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽͱΠϯϑϥΞʔΩςΫνϟͷબࣗಈԽͷݚڀ՝ʹ͍ͭͯͷཧͱߟ
http://masayoshi.hatenablog.jp/entry/2017/12/27/235456
ݚڀςʔϚ ~ݱঢ়ͷΠϯϑϥઃܭ~ • ͜͏͍͏WebαʔϏεΛ࣮ͯ͠ɺಈ͔͍ͨ͠Μ͚ͩͲ… • ͦΕͳΒσʔλετΞ͜͏͍͏ܗࣜͰอଘ͕ྑͯ͘… • Write͕ଟ͍͔ΒɺεέʔϥϏϦςΟΛߟ͑Δͱ… • ͩͱ͢Δͱར༻͢ΔϛυϧΣΞ…
• ࣄྫʹΑΔͱ͋ͷϛυϧΣΞҙ֎ͱӡ༻͕େมΒͯ͘͠… • ӡ༻Λߟ͑ΔͱϚωʔδυαʔϏεΛར༻ͯ͠… • Ͱɺඅ༻ͱػೳΛߟྀ͢Δͱ… • ։ൃίϯςφΛ͍͍͔ͨΒɺԾج൫… • ͕ͩɺσʔλετΞ͋ͷϚωʔδυαʔϏεΛ͍͍͔ͨΒ… • Քಇ·Ͱʹߏங͢Δʹ… • ӡ༻ͷͨΊͷࢹ…
ݚڀςʔϚ ~ݱঢ়ͷΠϯϑϥઃܭ~ ৭ʑߟྀ͢Δͱ ͜ͷߏ͕(ܦݧ࣮ɺଞࣾࣄྫͳͲ͔Β͓ͦΒ͘) Ұ൪όϥϯε͕ྑ͍ͱࢥ͍·͢ʂ
ݚڀςʔϚ • ͦ͜Ͱɺ • WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽ • ΠϯϑϥΞʔΩςΫνϟͷબࣗಈԽ
ݚڀςʔϚ ~ΠϯϑϥΞʔΩςΫνϟͷબࣗಈԽ~ Πϯϑϥ ΞʔΩςΫνϟ" Πϯϑϥ ΞʔΩςΫνϟ# Πϯϑϥ ΞʔΩςΫνϟ$ Πϯϑϥ ΞʔΩςΫνϟ
ܾఆ܅ 8FCαʔϏε Πϯϑϥ ΞʔΩςΫνϟ%
αʔϏεͱΠϯϑϥͷϞσϧԽͱཁૉͷඥ͚ • αʔϏεɺΠϯϑϥڞʹϞσϧԽ͕ඞཁ • ཁૉΛઃఆ͠ɺͦΕʹԠͯ͡ಛੑ͕͋Γɺ͍ۙͷΛબ 8FCαʔϏε ཁૉ ཁૉ ཁૉ ཁૉ
ΞʔΩςΫνϟ" ཁૉ ཁૉ ཁૉ ཁૉ ΞʔΩςΫνϟ# ཁૉ ཁ ૉ ཁૉ ཁૉ
ݚڀ՝ͷཧ • બࣗಈԽͷͨΊͷείΞϦϯάख๏ͷཱ֬ • WebαʔϏεͷཁૉચ͍ग़͠ͱϞσϧԽ • طଘͷWebαʔϏεͷௐࠪͱྨ • ΠϯϑϥΞʔΩςΫνϟͷཁૉͷચ͍ग़͠ͱϞσϧԽ •
طଘͷΠϯϑϥΞʔΩςΫνϟͷௐࠪͱྨ
ݚڀςʔϚ ~ΠϯϑϥΞʔΩςΫνϟͷཁૉͱྨ~ ྨЋ ΞʔΩςΫνϟ" ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ
ΞʔΩςΫνϟ# ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ྨЌ ΞʔΩςΫνϟ$ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ΞʔΩςΫνϟ% ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ
WebαʔϏεʹؔ࿈͢ΔطଘͷΞʔΩςΫνϟྫ • 3ΞʔΩςΫνϟ • ϚΠΫϩαʔϏεΞʔΩςΫνϟ • αʔόϨεΞʔΩςΫνϟ • FastContainerΞʔΩςΫνϟ •
TimeFuzeΞʔΩςΫνϟ • ʮTimeFuzeΞʔΩςΫνϟߏ - ॲཧͱσʔλͱλΠϚʔΛҰମԽͨ͠ఆظσʔλύΠϓϥΠϯʯ • ࣮ߦڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟ
ΞϓϦέʔγϣϯͷ࣮ ΞʔΩςΫνϟͷྨΠϝʔδ? શମͷߏ ΞʔΩςΫνϟ ϛυϧΣΞͷར༻ख๏ 5JNF'V[F ΞϓϦέʔγϣϯ࣮ߦڥ αʔόϨε ϚΠΫϩαʔϏε ϞϊϦγοΫαʔϏε
'BTU$POUBJOFS ·ͩ໌֬ʹྨͰ͖͍ͯͳ͍
ΞʔΩςΫνϟબͷΠϝʔδ • ྨຖʹΞʔΩςΫνϟΛબ͠ɺ࠾༻ͯ͠Έ߹ΘͤΔ • ྫ͑ɺηϯαʔσʔλΛऩूɺूܭͯ͠ɺWebͰՄࢹԽ • ηϯαʔσʔλऩूϚΠΫϩαʔϏεͱՄࢹԽͷϚΠΫϩαʔϏε • ՄࢹԽσʔλΛදࣔ͢Δ͚ͩͷγϯϓϧͳͷͳͷͰ FastContainerͰαʔόӡ༻Λ͠ͳ͍
• ηϯαʔσʔλऩू͢ΔϚΠΫϩαʔϏεσʔλΛՃͯ֨͠ ೲ͠ɺ࣌ܥྻͷσʔλΛఆظతʹूܭͰ͖ΔΑ͏ʹɺTimeFuseͰʂ • ͡Ό͋ɺLOLIPOP! ϚωʔδυΫϥυͱAWSΛ͓͏ʂ https://mc.lolipop.jp/ https://aws.amazon.com/
ݒ೦ • ͋ΔΞʔΩςΫνϟͱΞʔΩςΫνϟΛબͨ͠ࡍʹɺಉ࣮͡ߦڥ(αʔ ϏεϛυϧΣΞ)Ͱ࣮ݱͰ͖Δ͔? • ࣮ߦڥɺར༻αʔϏε͕ෳʹͳͬͨ߹ͷߏஙɺӡ༻໘ߟྀ͞Εͯ ͍Δ͔? • WebαʔϏεͷػೳཁ͚݅ͩͰΞʔΩςΫνϟͷબग़དྷͳ͍ͷͰͳ ͍͔?
• ΞʔΩςΫνϟΛΈ߹ΘͤΔ߹ɺར༻͢Δ্Ͱͷલఏ݅ͷߟྀ͕Α Γඞཁʹͳ͖ͬͯͦ͏
ํ • ࡢࠓͷΠϯϑϥΞʔΩςΫνϟɺલఏͱ͍ͯ͠Δ࣮ߦ ڥ(ϛυϧΣΞαʔϏε,ίϯςφ্ͳͲ)͕ଟ༷Խͯ͠ ͍Δ • બͨ͠ΞʔΩςΫνϟͷ࣮ߦڥͱߏஙɺӡ༻ίετΛ ߟྀͨ͠શମͷΞʔΩςΫνϟΛݕ౼͍ͯ͘͠ඞཁ͕͋Δ • ಛʹϛυϧΣΞɺछྨαʔϏεɺ࣮ߦڥ͕ଟ༷Խ
͓ͯ͠Γ੍ଟ͍
Ξϓϩʔν • ͍͖ͳΓશମͷΞʔΩςΫνϟΛߟ͑ΔͷࠔͳͷͰɺ ϛυϧΣΞʹண͠ݕ౼ • ϛυϧΣΞͷ࣮ߦڥͷଟ༷ԽͱɺͦΕʹΑΔߏஙπʔ ϧͷؔΛιϑτΣΞ։ൃख๏ͷߟ͑ํΛಋೖ͠ɺΞʔ ΩςΫνϟਤͰදݱ͢Δ • ຊൃදͱٞʹΑΓɺࠓޙͷΞϓϩʔνͷํΛݕ౼͢Δ
࣮ߦڥͷଟ༷ԽͱӨڹ
࣮ߦڥͷଟ༷Խ • αʔόԾԽٕज़(2005~) • ΫϥυαʔϏεͱϚωʔδυαʔϏε(2010~) • ίϯςφٕज़(2015~) ()ීٴظͷ҆
࣮ߦڥͷଟ༷Խ ~αʔόԾԽٕज़~ • αʔόͷ༻ҙɺߏங͕༰қʹͳͬͨ • ϛυϧΣΞຖ(ϩʔϧຖ)ʹαʔόͷ͕༰қʹͳͬͨ • αʔόͷΦʔτεέʔϧͳͲՄೳʹͳͬͨ • αʔόͷ૿ՃΦʔτεέʔϧԽʹΑΓɺϓϩϏδϣχϯ
άπʔϧͷधཁ͕ߴ·ͬͨ • ༷ʑͳΫϥυαʔϏε͕ੜʹͭͳ͕Δ • αʔόͷͳͲਐΜ͕ͩɺαʔό্ʹOS͕ଘࡏ͠ɺͦͷ্ ͰϛυϧΣΞ͕ಈ࡞͢Δ͜ͱʹมΘΓͳ͔ͬͨ
࣮ߦڥͷଟ༷Խ ~ΫϥυαʔϏε~ • ༷ʑͳϛυϧΣΞͷϚωʔδυαʔϏεɺଟ༷ͳΫϥυ ϓϥοτϑΥʔϜ͕ొ͢ΔΑ͏ʹͳͬͨ • ΫϥυϓϥοτϑΥʔϜຖʹݻ༗ͷϓϩϏδϣχϯάπʔϧ ϞχλϦϯάख๏͕ొ͢ΔΑ͏ʹͳͬͨ • OS্ͰϛυϧΣΞΛ࣮ߦ͢ΔͷͰͳ͘ɺϛυϧΣΞΛ
αʔϏεͱͯ͠ར༻͢Δܗଶ͕ొͨ͠ • ݩͷϛυϧΣΞ͕ಉ͡Ͱɺ੍ػೳͳͲ͕ͦΕͧΕͷϚ ωʔδυαʔϏεɺݩͷϛυϧΣΞͰҟͳΔΑ͏ʹͳͬͨ • αʔόϨεͳͲɺ΄΅αʔϏεར༻લఏͷΞʔΩςΫνϟͳͲ
࣮ߦڥͷଟ༷Խ ~ίϯςφٕज़~ • αʔόOS୯ҐͰͳ͘ɺΞϓϦέʔγϣϯ୯ҐͰͷ͕༰ қʹͳͬͨ • FaaSɺαʔόϨεͳͲɺΫϥυαʔϏεͳͲʹେ͖ͳӨڹ Λ༩͑ͨ • ίϯςφ্ͰϛυϧΣΞΛ࣮ߦ͢Δܗଶ͕ੜͨ͠
• DockerͳͲίϯςφΤϯδϯຖʹ࣮ߦܗଶ͕ҟͳΓɺϓϩϏ δϣχϯάͳͲҟͳΔΑ͏ʹͳͬͨ • γεςϜίϯςφΞϓϦέʔγϣϯίϯςφͳͲίϯςφࣗ ମͷ࣮ߦܗଶίϯςφΤϯδϯຖʹଟ༷Խ
࣮ߦڥͷଟ༷Խ • OS্ͰϛυϧΣΞ͕ಈ͘ͷ͕͋ͨΓ·͔͑Β • OS্Ͱಈ͔͢ɺίϯςφ্Ͱಈ͔͢ɺޓͷΫϥυαʔ ϏεΛར༻͢ΔͳͲଟ༷Խ • WebΞϓϦέʔγϣϯɺϓϩϏδϣχϯάɺϞχλϦϯά ͳͲɺࣄ߲ܗଶͷଟ༷ԽʹΑΓมԽ •
ΠϯϑϥΞʔΩςΫνϟ͜ͷଟ༷ԽΛແࢹ͢Δ͜ͱͰ ͖ͳ͍
طଘͷΠϯϑϥΞʔΩςΫνϟ
3ΞʔΩςΫνϟ
3ΞʔΩςΫνϟ • αʔόΫϥΠΞϯτϞσϧͷγεςϜΞʔΩςΫνϟ • ࠷ॳظͷWebΞϓϦέʔγϣϯͷιϑτΣΞΞʔΩς ΫνϟͰ͋Δ • αʔόԾԽٕज़ͷීٴҎલ͔Βଘࡏ • ݱࡏɺ3ΞʔΩςΫνϟΛجຊʹෳࡶԽ
• WebαʔόͷલޙΖʹΩϟογϡαʔό • ॲཧ͕ҟͳΔෳͷΞϓϦέʔγϣϯαʔό • DBαʔόͱͯ͠RDBͱKVSͷซ༻ • ͜ͷෳࡶԽͨ͠ͷΛϩʔϧׂΞʔΩςΫνϟͱ͢Δ
ϩʔϧׂΞʔΩςΫνϟ
ϩʔϧׂΞʔΩςΫνϟ • αʔόԾԽٕज़ϛυϧΣΞͷछྨ͕ଟ༷Խ • ϛυϧΣΞΞϓϦέʔγϣϯ͝ͱʹαʔόΛ ͠ɺͦΕͧΕΛ࿈ܞͤ͞Δ • ͦΕͧΕͷϩʔϧʹΑׂͬͯ͢Δ • αʔόϛυϧΣΞͷ૿ՃʹΑΓɺϓϩϏδϣχ
ϯάπʔϧϞχλϦϯάπʔϧͷॏཁੑ͕૿Ճ αʔόԾԽʹΑΔΦʔτεέʔϦϯάٕज़ؔ࿈
ϩʔϧׂΞʔΩςΫνϟͷྫ
ϩʔϧׂΞʔΩςΫνϟͱ࣮ߦڥͷଟ༷Խ • ϛυϧΣΞΞϓϦέʔγϣϯͷ࣮ߦڥඞͣࣗ͠ ͕ͨͪཧ͍ͯ͠ΔαʔόͰͳ͘ͳͬͨ • ࣌ͷϓϩϏδϣχϯάπʔϧϞχλϦϯάπʔϧαʔ ό্Ͱಈ࡞͢ΔSSHͳͲΛར༻͢Δ͜ͱ͕ଟ͔ͬͨ • ϚωʔδυαʔϏεͰఏڙ͞ΕͨAPIαʔϏεͷར༻ •
CloudformationͳͲ • ίϯςφͰίϯςφΤϯδϯ͕༻ҙͨ͠πʔϧͷར༻ • DockerfileͳͲ
ϩʔϧׂΞʔΩςΫνϟͱ࣮ߦڥͷଟ༷Խ • WebαʔϏεʹඞཁͳϛυϧΣΞΛચ͍ग़͠ɺͦΕ ͧΕผͷαʔόʹ͢Δ • ͦΕΒͷαʔόͷӡ༻ɺཧख๏ผʹݕ౼͢Δ • ඞཁͳϛυϧΣΞɺαʔϏεΛWebαʔϏεͷཁ ݅ɺ࣮ߦڥʹΑΔӡ༻ɺཧख๏ͷ੍ߟྀͭ͠ ͭόϥϯεྑ͘બ͢Δ
ϩʔϧׂΞʔΩςΫνϟͱ࣮ߦڥͷଟ༷Խ
ݱࡏͷϩʔϧׂΞʔΩςΫνϟͷྫ http://hb.matsumoto-r.jp/draft/-fgEmqKH1dnuQR79TLBXmUfWeIE
ଟ༷ԽͷରԠ • WebαʔϏεͷཁ݅Λຬͨ͢ϛυϧΣΞΛࣗ༝ʹΈ߹Θͤ ͍͍ͯͨ • ͔͠͠ɺ࣮ߦڥͷଟ༷Խɺར༻ܗଶͷଟ༷ԽʹΑΓɺαʔό αʔϏεɺϛυϧΣΞΛԣஅ͢Δ(ྫ͑ɺϓϩϏδϣχ ϯάख๏)ͳͲͷߟྀࣄ߲͕ΑΓ૿Ճ • ͳΜ͔ιϑτΣΞΞʔΩςΫνϟͱࣅͨΑ͏ͳͰͳ͍
ͷ͔? • ͦͷ··ద༻Ͱ͖ͳ͍ʹͯ͠ιϑτΣΞΞʔΩςΫνϟ͕ ࢀߟʹͳΔͷͰ?
ιϑτΣΞΞʔΩςΫνϟͱͦͷมભ
ιϑτΣΞΞʔΩςΫνϟͱͦͷมભ • ࣗಈςετ֎෦ϓϩάϥϜɺαʔϏεͷར༻ • ϢʔβΠϯλʔϑΣʔεͱϏδωεϩδοΫͷ • DBͳͲΠϯϑϥετϥΫνϟʔͷ • ϨΠϠʔυΞʔΩςΫνϟʹΑΔվળ •
ϨΠϠʔͷՃϨΠϠʔൣғͷ࠶ఆٛ • UI -> Application -> Domain -> infrastructure • UI͚ͩͰͳ͘Infrastructure͔Β͕ඞཁ • Infrastructure͕૿͑Δ͜ͱͷରԠ(MySQL,PostgreSQL) • ଆ(application, Domain)ͱ֎ଆ(UI,Infrastructure)ͷ
ϔΩαΰφϧΞʔΩςΫνϟ(2005) http://alistair.cockburn.us/Hexagonal+architecture
ΦχΦϯΞʔΩςΫνϟ(2008) http://jeffreypalermo.com/blog/the-onion-architecture- part-1/
ΫϦʔϯΞʔΩςΫνϟ(2012) https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean- architecture.html
ιϑτΣΞΞʔΩςΫνϟͱͦͷมભ • ΑΓૄ݁߹ͳΞʔΩςΫνϟมԽ͍ͯͬͨ͠ • ଟ༷ͳαʔϏεɺιϑτΣΞಉ࢜ͷ࿈ܞͷରԠ • ࣗಈςετɺCIͳͲͷରԠ • ্هରԠͷͨΊͷ։ൃͷݮ •
ϨΠϠʔߏ͔Βಉ৺ԁঢ়ͷߏมԽ͍ͯͬͨ͠ • ্͔ΒԼͰͳ͘ɺ͔Β֎ • σʔλͷྲྀΕॲཧͷྲྀΕɺར༻͢Δ͞ΕΔͰͳ ͘ɺ͔ࣗଞਓ͔
ΠϯϑϥΞʔΩςΫνϟͷԠ༻
ΠϯϑϥΞʔΩςΫνϟͷԠ༻ • ϛυϧΣΞ࣮ߦڥͷଟ༷Խ • Infrastructure͔Βͷ • ϛυϧΣΞଟ༷Խ • ଟ༷ͳαʔϏεɺιϑτΣΞಉ࢜ͷ࿈ܞͷରԠ •
ϓϩϏδϣχϯάπʔϧɺϞχλϦϯάͷରԠ • ࣗಈςετɺCIͳͲͷରԠ
ϨΠϠʔυΞʔΩςΫνϟ • UI -> Middleware -> Infrastructure • UI •
MySQLϓϩτίϧ • Middleware • MySQL, RDS, Aurora • Infrastructure • OS, ίϯςφ, AWS
ϨΠϠʔυΞʔΩςΫνϟ ϓϩϏδϣχϯάπʔϧInfrastructureͷଓ WebΞϓϦέʔγϣϯUIͷଓ
ΦχΦϯΞʔΩςΫνϟ
ΠϯϑϥΦχΦϯΞʔΩςΫνϟ
ΠϯϑϥΦχΦϯΞʔΩςΫνϟ • Infrastructure, UI, MiddlewareService • ࣮ߦڥͷଟ༷ԽΛΧόʔ • MiddlewareɺDomain •
ϛυϧΣΞ࣮ • WebαʔϏεͷཁ݅ • “”Ͱ͋ΔDomain,Middlewareͷબ • ࣮ߦڥଟ༷ԽͱϓϩϏδϣχϯάπʔϧ • ”֎”ͱͷଓͱෳࡶ͞ͷදݱ
ΠϯϑϥΦχΦϯΞʔΩςΫνϟͷྫ
ΠϯϑϥΦχΦϯΞʔΩςΫνϟͷྫ
ΠϯϑϥΦχΦϯΞʔΩςΫνϟͷྫ
ΠϯϑϥΦχΦϯΞʔΩςΫνϟ • ϛυϧΣΞͷ࣮ߦڥଟ༷ԽͱɺϓϩϏδϣχϯάπʔ ϧͱͷؔʹண͠ɺιϑτΣΞΞʔΩςΫνϟΛԠ༻ ͨ͠Λߟ͑ͨ • ࠓޙߋʹɺιϑτΣΞͷςετͷΑ͏ʹΠϯϑϥCI ϞχλϦϯάͳͲՃ͍ͨ͠ • ιϑτΣΞΞʔΩςΫνϟͱҟͳΔͱ͜Ζ݁ߏ͋Δ
ͷͰ͕ͦ͜Ͳ͏ͳΔ͔ • ϛυϧΣΞ୯ମͰͳͦ͘ΕΒΛΈ߹ΘͤͨΠϯϑϥΞʔ ΩςΫνϟʹ·ͰԠ༻Λ͍͛ͨ
·ͱΊ
·ͱΊͱࠓޙͷํ • WebαʔϏεͷશମߏͷΠϯϑϥΞʔΩςΫνϟ • ϛυϧΣΞɺAppͳͲͷ࣮ߦڥͷଟ༷Խʹద༻ • WebΞϓϦέʔγϣϯཁ͚݅ͩͰͳ͘ɺϓϩϏδϣχ ϯάɺϞχλϦϯάͳͲߟྀ͢Δඞཁ͋Γ • طଘͷιϑτΣΞΞʔΩςΫνϟΛར༻ͯ͠ɺΠϯϑϥΞʔ
ΩςΫνϟΛݕ౼ͨ͠ • ݕ౼ͨ͠༰Λͬͱվળɺ֦ுͯ͠༗༻ੑΛࣔͯ͠ߦ͖͍ͨ
ٞ༰ • ΞʔΩςΫνϟͱ͍͏ΑΓͲͪΒ͔ͱ͍͏ͱUMLͷΑ͏ͳͷʹ ͍͔ۙ? ◦ ґଘͷՄࢹԽΛߦͳ͍ɺબΛ༰қʹ͢Δͱ͍͏؍ͰUMLͷ ΄͏͕͍ۙؾ͢Δɻ ◦ ࣮ࡍʹ࣮͢ΔΘ͚Ͱͳ͍ͷͰ͜ͷลͦͷ··ΞʔΩςΫ νϟͱͯ࣋ͬͯ͘͠Δͱҧײ͕͋Δ͔
• ϓϩϏδϣχϯάπʔϧͷΑ͏ͳӡ༻ཧπʔϧϛυϧΣΞͱ গ͠ҧ͏ಉ৺ԁঢ়͔? • ϓϩϏδϣχϯά͚ͩͰͳ͘ϞχλϦϯάೖΕ͍ͨ ◦ ݱঢ়্ख͍ܗ͕ݟ͔ͭΒͣ͏গ͠ཧ͕ඞཁͦ͏ ◦ ͳʹ͔͍͍Ҋ͕ແ͍ͩΖ͏͔ • ͏গ͠ཧ͞ΕΔͱ໘നͦ͏Ͱ৽نੑ༗༻ੑݟ͑ͯ͘Δؾ͕͠ ͍ͯΔ