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
490
これから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
LLMエージェント時代に適応した開発フロー
hiragram
1
410
新卒(ほぼ)専業Kagglerという選択肢
nocchi1
1
2.1k
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
180
Go で言うところのアレは TypeScript で言うとコレ / Kyoto.なんか #7
susisu
5
1.3k
そのコンポーネント、サーバー?クライアント?App Router開発のモヤモヤを可視化する補助輪
makotot
3
280
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
190
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
30k
AIドリブンのソフトウェア開発 - うまいやり方とまずいやり方
okdt
PRO
9
570
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
120
キャリアを支え組織力を高める「多層型ふりかえり」 / 20250821 Kazuki Mori
shift_evolve
PRO
2
300
実践アプリケーション設計 ③ドメイン駆動設計
recruitengineers
PRO
1
150
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
2
130
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
RailsConf 2023
tenderlove
30
1.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Bash Introduction
62gerente
614
210k
For a Future-Friendly Web
brad_frost
179
9.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
Being A Developer After 40
akosma
90
590k
Designing Experiences People Love
moore
142
24k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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ͷ ΄͏͕͍ۙؾ͢Δɻ ◦ ࣮ࡍʹ࣮͢ΔΘ͚Ͱͳ͍ͷͰ͜ͷลͦͷ··ΞʔΩςΫ νϟͱͯ࣋ͬͯ͘͠Δͱҧײ͕͋Δ͔
• ϓϩϏδϣχϯάπʔϧͷΑ͏ͳӡ༻ཧπʔϧϛυϧΣΞͱ গ͠ҧ͏ಉ৺ԁঢ়͔? • ϓϩϏδϣχϯά͚ͩͰͳ͘ϞχλϦϯάೖΕ͍ͨ ◦ ݱঢ়্ख͍ܗ͕ݟ͔ͭΒͣ͏গ͠ཧ͕ඞཁͦ͏ ◦ ͳʹ͔͍͍Ҋ͕ແ͍ͩΖ͏͔ • ͏গ͠ཧ͞ΕΔͱ໘നͦ͏Ͱ৽نੑ༗༻ੑݟ͑ͯ͘Δؾ͕͠ ͍ͯΔ