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
ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web...
Search
masayoshi
May 18, 2018
Technology
0
3.7k
ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web system architecture #2
第2回WSA研での発表資料です
masayoshi
May 18, 2018
Tweet
Share
More Decks by masayoshi
See All by masayoshi
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
480
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
5.4k
メトリクス、ログ、トレースをうまく使い分けて可観測性を高めよう!
masayoshi
8
11k
Developers Summit 2021 summer
masayoshi
15
30k
2021-06-cloud-native-reg-event
masayoshi
8
2.5k
SRE_Culture_Organization
masayoshi
17
10k
cloudnative-kansai-2019
masayoshi
1
720
Webサービスにおけるインフラアーキテクチャの体系化と選択自動化の研究/study on web system architecture #1
masayoshi
0
2.9k
はてなのインフラストラクチャ設計構想 / The Concept of Hatena Infrastructure
masayoshi
1
5.4k
Other Decks in Technology
See All in Technology
Backboneとしてのtimm2025
yu4u
1
240
Backlog AI アシスタントが切り開く未来
vvatanabe
1
170
ロールが細分化された組織でSREと協働するインフラエンジニアは何をするか? / SRE Lounge #18
kossykinto
0
240
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.4k
Cloud WANの基礎から応用~少しだけDeep Dive~
masakiokuda
4
120
[kickflow]20250319_少人数チームでのAutify活用
otouhujej
0
170
あとはAIに任せて人間は自由に生きる
kentaro
3
670
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
18
52k
datadog-distribution-of-opentelemetry-collector-intro
tetsuya28
0
120
GISエンジニアよ 現場に行け!
sudataka
1
140
Claude Code x Androidアプリ 開発
kgmyshin
1
250
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
nanachi
1
780
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
How STYLIGHT went responsive
nonsquared
100
5.7k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
470
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Six Lessons from altMBA
skipperchong
28
4k
GraphQLとの向き合い方2022年版
quramy
49
14k
A Tale of Four Properties
chriscoyier
160
23k
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ͷ ΄͏͕͍ۙؾ͢Δɻ ◦ ࣮ࡍʹ࣮͢ΔΘ͚Ͱͳ͍ͷͰ͜ͷลͦͷ··ΞʔΩςΫ νϟͱͯ࣋ͬͯ͘͠Δͱҧײ͕͋Δ͔
• ϓϩϏδϣχϯάπʔϧͷΑ͏ͳӡ༻ཧπʔϧϛυϧΣΞͱ গ͠ҧ͏ಉ৺ԁঢ়͔? • ϓϩϏδϣχϯά͚ͩͰͳ͘ϞχλϦϯάೖΕ͍ͨ ◦ ݱঢ়্ख͍ܗ͕ݟ͔ͭΒͣ͏গ͠ཧ͕ඞཁͦ͏ ◦ ͳʹ͔͍͍Ҋ͕ແ͍ͩΖ͏͔ • ͏গ͠ཧ͞ΕΔͱ໘നͦ͏Ͱ৽نੑ༗༻ੑݟ͑ͯ͘Δؾ͕͠ ͍ͯΔ