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
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
550
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
870
これから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
810
Webサービスにおけるインフラアーキテクチャの体系化と選択自動化の研究/study on web system architecture #1
masayoshi
0
3.2k
Other Decks in Technology
See All in Technology
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
200
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
0
100
Spring BootからQuarkusへの移行
tatsuya1bm
2
120
Railsのように考える: See through the Master
snoozer05
PRO
3
880
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
2.6k
20260912_スクフェス三河
kgnkhkr
0
380
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
820
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
27
23k
Reactの設計論
uhyo
24
13k
AI時代、データエンジニアが一番おもろい
genshun9
0
600
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.4k
Screen Lens - 今見てる画面を翻訳する
komagata
0
310
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
How to make the Groovebox
asonas
2
2.4k
Leo the Paperboy
mayatellez
10
2.3k
A Modern Web Designer's Workflow
chriscoyier
699
190k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Done Done
chrislema
186
16k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Rails Girls Zürich Keynote
gr2m
96
14k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Spectacular Lies of Maps
axbom
PRO
1
990
Bash Introduction
62gerente
615
220k
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ͷ ΄͏͕͍ۙؾ͢Δɻ ◦ ࣮ࡍʹ࣮͢ΔΘ͚Ͱͳ͍ͷͰ͜ͷลͦͷ··ΞʔΩςΫ νϟͱͯ࣋ͬͯ͘͠Δͱҧײ͕͋Δ͔
• ϓϩϏδϣχϯάπʔϧͷΑ͏ͳӡ༻ཧπʔϧϛυϧΣΞͱ গ͠ҧ͏ಉ৺ԁঢ়͔? • ϓϩϏδϣχϯά͚ͩͰͳ͘ϞχλϦϯάೖΕ͍ͨ ◦ ݱঢ়্ख͍ܗ͕ݟ͔ͭΒͣ͏গ͠ཧ͕ඞཁͦ͏ ◦ ͳʹ͔͍͍Ҋ͕ແ͍ͩΖ͏͔ • ͏গ͠ཧ͞ΕΔͱ໘നͦ͏Ͱ৽نੑ༗༻ੑݟ͑ͯ͘Δؾ͕͠ ͍ͯΔ