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
PHPerにオススメのインフラの話
Search
soudai sone
February 22, 2017
Technology
5
3.3k
PHPerにオススメのインフラの話
第二回 山陰PHP勉強会の資料です
soudai sone
February 22, 2017
Tweet
Share
More Decks by soudai sone
See All by soudai sone
マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy
soudai
23
5.4k
キャッシュと向き合う、キャッシュと共に生きる / cache pattern
soudai
29
9.8k
RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド / delete flag
soudai
25
16k
コミュニティと共に生きる - キャリアの螺旋 / live with community
soudai
7
3.8k
今年1年間の”アウトプット”を振り返る / soudai's output - 2023
soudai
10
1.8k
「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の輪読会のススメ - そーだいなる輪読会キックオフ / soudai-kickoff
soudai
0
240
Webアプリケーションのパフォーマンス・チューニングの勘所 / web tuningperformance
soudai
40
12k
データベーススペシャリストというキャリアと生存戦略 ~10年後も変わらないこと、変わること / career-spiral
soudai
21
7.1k
失敗から学ぶ ISUCONの正しい歩き方 / ISUCON Revenge
soudai
1
440
Other Decks in Technology
See All in Technology
中央集権体制からDataOpsへの転換 / centralized-to-dataops-transformation
pei0804
7
1.5k
ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP
yuitosato
29
12k
検証からプロダクトへ: シームレスなLLM開発の ためのしくみ作り
nunukim
1
170
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
24
6.9k
大規模データとの戦い方
knih
1
460
期待しすぎずに取り組む両面 TypeScript
shozawa
2
290
依存ライブラリはどこに?
takesection
0
110
長文から長文を生成するLLMツールをオープンソースで作ってみた。
tomohisa
2
140
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
17
7.7k
あらゆる商品を扱う商品データベースを再設計した話 / product db re-architecture
rince
8
3.6k
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
1.1k
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
2.1k
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1023
450k
Designing the Hi-DPI Web
ddemaree
275
33k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
19
1.6k
Typedesign – Prime Four
hannesfritz
36
2k
Statistics for Hackers
jakevdp
789
220k
Building an army of robots
kneath
300
41k
Clear Off the Table
cherdarchuk
82
310k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
The Mythical Team-Month
searls
214
42k
Transcript
PHPerʹ͓͢͢Ίͷ Πϯϑϥཧͷ ୈճࢁӄ1)1ษڧձ
What is it? Πϯϑϥཧͯ͠·͔͢ʁ
What is it? গਓͰԿʹઓ͏͔
What is it? ΈΜͳָ͕Ͱ͖ΔͨΊͷΛ͠·͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹWebαʔϏεͷΠϯϑϥ ̏ɹӡ༻ͱࢹ ̐ɹӡ༻ͷࣗಈԽ ̑ɹ·ͱΊ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹWebαʔϏεͷΠϯϑϥ ̏ɹӡ༻ͱࢹ ̐ɹӡ༻ͷࣗಈԽ ̑ɹ·ͱΊ
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
Mackerel
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹWebαʔϏεͷΠϯϑϥ ̏ɹӡ༻ͱࢹ ̐ɹӡ༻ͷࣗಈԽ ̑ɹ·ͱΊ
WebαʔϏεͷΠϯϑϥ ҰൠతͳΠϯϑϥ
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH
WebαʔϏεͷΠϯϑϥ ࠷ۙͷΠϯϑϥ
WebαʔϏεͷΠϯϑϥ ࠷ۙͷΠϯϑϥ ˣ ࣗͰཧ͠ͳ͍ ˓BB4Λ͏
WebαʔϏεͷΠϯϑϥ ࠷ۙͷΠϯϑϥ ˣ ࣗͰཧ͠ͳ͍ ˓BB4Λ͏ *BB4 4BB4 1BB4
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH SPVUFͱ͔
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH 4FOEHSJEͱ͔
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH 4ͱ͔
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH NBDLFSFMͱ͔
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH 1BB4ͳΒ)FSPLVͱ͔
8FC %# %/4 .BJM -# Πϯλʔωοτ 8FC 4UPSBHF .POJUPSJOH 3%4ͱ͔
WebαʔϏεͷΠϯϑϥ $MPVEͷϝϦοτ
WebαʔϏεͷΠϯϑϥ $MPVEͷϝϦοτ ˣ ӡ༻Λ؆ུԽͰ͖Δ
WebαʔϏεͷΠϯϑϥ ӡ༻ͷ؆ུԽ w .BJM%/44BB4 w ෳࡶͳϛυϧΣΞ4BB4 w ໘ͳӡ༻4BB4
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹWebαʔϏεͷΠϯϑϥ ̏ɹӡ༻ͱࢹ ̐ɹӡ༻ͷࣗಈԽ ̑ɹ·ͱΊ
ӡ༻ͱࢹ Կʹӡ༻Λָʹ͢Δ͔
ӡ༻ͱࢹ ΦϯϓϨ࣌ w όοΫΞοϓͷγΣϧεΫϦϓτ w ৬ਓ͕खಈͰηοτΞοϓ w ࢹαʔόͱ͔ೋͷ࣍
ӡ༻ͱࢹ Ϋϥυ࣌ w όοΫΞοϓΫϥυʹҕୗ w ηοτΞοϓߏཧπʔϧ w ࢹ4BB4ҕୗ
ӡ༻ͱࢹ όοΫΞοϓ ώϡʔϚϯΤϥʔͱόάͷରࡦ
ӡ༻ͱࢹ σʔλͷόοΫΞοϓ
ӡ༻ͱࢹ σʔλͷόοΫΞοϓ ˣ 43%4ͳͲΛ͏ͱ ࣗಈతʹόοΫΞοϓ͍ͭͯ͘Δ
ӡ༻ͱࢹ ίʔυ$POpHͷόοΫΞοϓ
ӡ༻ͱࢹ ίʔυ$POpHͷόοΫΞοϓ ˣ (JUΛ͓͏
ίʔυͷѻ͍ํ w ୭͕͍ͭɺԿΛɺͳͥɺมߋ͔ͨ͠ w ϓϩδΣΫτͱͷؔ࿈͚͕େࣄ w աڈΛ͚Δ͜ͱ͕େ
ӡ༻ͱࢹ 4BB4ͱ(JU
ӡ༻ͱࢹ 4BB4ͱ(JU ˣ ৭ΜͳαʔϏε͕͋Δ
ӡ༻ͱࢹ 4BB4ͱ(JU ˣ ৭ΜͳαʔϏε͕͋Δ (JUIVC#JUCVDLFU
ӡ༻ͱࢹ 4BB4ͱ(JU ˣ ৭ΜͳαʔϏε͕͋Δ (JUIVC#JUCVDLFU ΧϯόϯͳͲͰνέοτͱ Έ߹ΘͤΔͷ͕େࣄ
ӡ༻ͱࢹ Πϯϑϥ͕͋Δফ͑ͯ ࡞ΓͤΔ͜ͱ͕େࣄ
ӡ༻ͱࢹ Πϯϑϥ͕͋Δফ͑ͯ ࡞ΓͤΔ͜ͱ͕େࣄ डୗ։ൃೲͨ͠ΒऴΘΓͰͳ͍
ӡ༻ͱࢹ Πϯϑϥ͕͋Δফ͑ͯ ࡞ΓͤΔ͜ͱ͕େࣄ डୗ։ൃೲͨ͠ΒऴΘΓͰͳ͍ ͓͠٬༷͕σʔλΛফͨ͠ͱ͖ɺ ͦΕΛॿ͚ͯ͋͛ΕΔ͔ʁ
ӡ༻ͱࢹ ࢹΛ͢Δ
ӡ༻ͱࢹ ࢹΛ͢Δ ˣ 4BB4Λ͓͏
ӡ༻ͱࢹ ࢹࣄނ͕ىͬͯ͜ ͔ΒݟΔͰ͏͍
ӡ༻ͱࢹ ࢹࣄނ͕ىͬͯ͜ ͔ΒݟΔͰ͏͍ ࣄલʹ༧ଌ͠ɺ͙ͨΊʹࢹ͕ඞཁ
ӡ༻ͱࢹ ຖݟͯɺมԽͰ༧ஹΛଊ͑Δ
ӡ༻ͱࢹ ຖݟͯɺมԽͰ༧ஹΛଊ͑Δ ຖݟͯͳ͍ͱ$16ͷෛՙ͕ͳͥɺಥવ૿͑ͨͷ͔Θ͔Βͳ͍
ӡ༻ͱࢹ ΠϯϑϥΛγϯϓϧʹͯ͠ ຖͷมԽΛݟΔ
ӡ༻ͱࢹ ͜Ε͕ӡ༻ͱࢹ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹWebαʔϏεͷΠϯϑϥ ̏ɹӡ༻ͱࢹ ̐ɹӡ༻ͷࣗಈԽ ̑ɹ·ͱΊ
ӡ༻ͷࣗಈԽ αʔϏεੜ͖
ӡ༻ͷࣗಈԽ ৗʹαʔϏεมԽ͢Δ
ӡ༻ͷࣗಈԽ มԽʹରԠ͢Δʹʁ
ӡ༻ͷࣗಈԽ มԽʹରԠ͢Δʹʁ ˣ ࣗಈԽ
ӡ༻ͷࣗಈԽ ϦϦʔεͷࣗಈԽ
ӡ༻ͷࣗಈԽ 1)1ίʔυ͕͋Εಈ͘
ӡ༻ͷࣗಈԽ 1)1ίʔυ͕͋Εಈ͘ ˣ HJUQVMM͢Δ͚ͩͰྑ͍
8FC %# -# Πϯλʔωοτ 8FC HJU DPEF DPEF DPEF
8FC %# -# Πϯλʔωοτ 8FC HJU DPEF DPEF DPEF
8FC %# -# Πϯλʔωοτ 8FC HJU DPEF DPEF DPEF
ӡ༻ͷࣗಈԽ HJUQVMMΛ୭͕ߦ͏͔ ˣ खಈ͔ΒࣗಈԽ
ӡ༻ͷࣗಈԽ ίϚϯυͷࣗಈԽ
ӡ༻ͷࣗಈԽ ίϚϯυͷࣗಈԽ ˣ ߏཧπʔϧ
ӡ༻ͷࣗಈԽ "OTJCMFΛ͏
ӡ༻ͷࣗಈԽ "OTJCMFΛ͏ ˣ "OTJCMFͰHJUQVMMͤ͞Δ
8FC %# -# Πϯλʔωοτ 8FC HJU DPEF DPEF DPEF
ӡ༻ͷࣗಈԽ ςετͷࣗಈԽ
ӡ༻ͷࣗಈԽ ςετͷࣗಈԽ ˣ ϢχοτςετͱγφϦΦςετ
ӡ༻ͷࣗಈԽ 1)16OJUͱ4FMFOJVN
ӡ༻ͷࣗಈԽ ΠϯϑϥͷࣗಈԽ
ӡ༻ͷࣗಈԽ ΠϯϑϥͷࣗಈԽ %FW0QTͷಓͷΓԕ͍
ӡ༻ͷࣗಈԽ ৗۀͷࣗಈԽ
ӡ༻ͷࣗಈԽ ৗۀͷࣗಈԽ ීஈͷۀɺޮԽͯ͠·͔͢ʁ ɾൃϝʔϧ͔Βͷ1%'ࣗಈੜ ɾۀͷ$47ͷࣗಈμϯϩʔυ ɾேͷఆྫۀͷࣗಈԽɹͳͲ
ӡ༻ͷࣗಈԽ ৗۀͷࣗಈԽ ීஈͷۀɺޮԽͯ͠·͔͢ʁ ɾൃϝʔϧ͔Βͷ1%'ࣗಈੜ ɾۀͷ$47ͷࣗಈμϯϩʔυ ɾேͷఆྫۀͷࣗಈԽɹͳͲ ࣗͷۀվળ࢝Ί͍͢ ৽͍ٕ͠ज़Λ৮Δ͖͔͚ͬʹྑ͍
ӡ༻ͷࣗಈԽ ৗۀͷࣗಈԽ ˣ ·͔ͣ͜͜Β࢝ΊΑ͏ʂ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹWebαʔϏεͷΠϯϑϥ ̏ɹӡ༻ͱࢹ ̐ɹӡ༻ͷࣗಈԽ ̑ɹ·ͱΊ
·ͱΊ ࣗಈԽҰʹͯ͠ҝΒͣ
·ͱΊ ؆ུԽͱࣗಈԽͷ܁Γฦ͠
·ͱΊ ख๏ΛΔʹʁ
·ͱΊ ࠷৽Λ8BUDI͢Δ
·ͱΊ ༏लͳਓͷू·Δॴʹߦ͘
·ͱΊ தࠃํ%#ษڧձ
·ͱΊ Φʔϓϯηϛφʔ ʢౡɾԬࢁʣ
·ͱΊ 1)1ΧϯϑΝϨϯε ʢ౦ژɾେࡕɾԬʣ
·ͱΊ ͕ؒډΔͱ͜Ζʹߦ͘
·ͱΊ ؒΛݟ͚ͭͨΒʁ
·ͱΊ ࣭͢Δ ʢ։ൃऀͷΓ͕ͨΓΛར༻͢Δʣ
·ͱΊ ະདྷߟ͑ΔͷͰͳ͘ɺΓग़͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ