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
運用、追加開発しづらいPHPアプリケーションに未来を与える方法
Search
ara_ta3
October 08, 2017
Programming
29k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
運用、追加開発しづらいPHPアプリケーションに未来を与える方法
PHPカンファレンス2017でお話したスライドです。
動画:
https://youtu.be/13YpGav4DBw?t=4h41m8s
ara_ta3
October 08, 2017
More Decks by ara_ta3
See All by ara_ta3
あなたとRPG今すぐインストール
ara_ta3
0
2k
Other Decks in Programming
See All in Programming
sbt 2.0: takeoff
eed3si9n
0
190
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
180
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.6k
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.9k
Next.js: The final boss of Web Performance
guaca
0
380
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
320
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.3k
AI Augmentation Techniques with Liberty
ivargrimstad
0
260
オーケストレーション記述言語 Katari
yukikurage
0
220
JIS keyboard support in Omarchy
lef237
0
180
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
340
The Curious Case for Waylosing
cassininazir
1
600
We Have a Design System, Now What?
morganepeng
55
8.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Unsuck your backbone
ammeep
672
58k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
47k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The SEO Collaboration Effect
kristinabergwall1
1
610
A better future with KSS
kneath
240
18k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
ӡ༻ɺՃ։ൃͮ͠Β ͍PHPΞϓϦέʔγϣ ϯʹະདྷΛ༩͑Δํ๏ VOYAGE GROUP ాத վ (ara_ta3) PHP ΧϯϑΝϨϯε
2017 #phpcon2017_3
ࣗݾհ • VOYAGE GROUP ৽ଔ4 • fluct(ࠂ) -> Zucks(ࠂ) ->
HR Tech Studio(ਓࡐ) • ओʹαϙʔλʔζ։ൃ • Twitter(@ara_ta3) • ͖ͳݴޠ • Scala, Go, PHP7.x • Splatoon2 σϚΤ S+0
VOYAGE GROUP
VOYAGE GROUP
None
None
• ӡ༻ɺՃ։ൃͮ͠Β͍ΞϓϦέʔγϣϯ ΛͲ͏վળ͍͔ͯ͘͠ • ୈҰาΛͲ͏ͬͯ౿Έग़ͯ͠ະདྷʹ ͔͏͔ ࠓ͍͑ͨ͜ͱ
Agenda • ӡ༻ɺՃ։ൃͮ͠Β͍ͱʁ • αϙʔλʔζͷ࣌ͷڥʁ • ӡ༻ɺՃ։ൃ͍͢͠ڥʹ͍ͯ͘͠ • ΞϓϦέʔγϣϯϞχλϦϯάͷՃ •
ςετΛՃͭͭ͠ػೳՃ • ·ͱΊ
ӡ༻ɺՃ։ൃͮ͠Β͍ʁ
ӡ༻ɺՃ։ൃ͍͢͠ʁ
ӡ༻ɺՃ։ൃ͍͢͠ʁ • ผνʔϜ͔Βͷҟಈલ͔ͬͨ͢͠ • ͳͷͰɺผνʔϜͱൺֱͯ͠ߟ͑ͯΈ·ͨ͠
͍͢͠ ςετίʔυ͕͋Δ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕͋Δ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕༰қ $*αʔόɾίϚϯυ
σϓϩΠޙʹԿ͔͕͋ͬͯ ͙͢ʹͤΔ
ͮ͠Β͍ ςετίʔυ͕ͳ͍ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕ͳ͍ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕ෳࡶ σϓϩΠޙʹԿ͔͕͋ͬͯ
͙͢ʹͤΔ
αϙʔλʔζվળલ ςετίʔυ͕ͳ͍ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕ͳ͍ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕༰қʁ σϓϩΠޙʹԿ͔͕͋ͬͯ
͙͢ʹͤΔ
Agenda • ӡ༻ɺՃ։ൃͮ͠Β͍ͱʁ • αϙʔλʔζͷ࣌ͷڥʁ • ӡ༻ɺՃ։ൃ͍͢͠ڥʹ͍ͯ͘͠ • ΞϓϦέʔγϣϯϞχλϦϯάͷՃ •
ςετΛՃͭͭ͠ػೳՃ • ·ͱΊ
• New Relic APM • PHP 5.3Ҏ্αϙʔτ
ΤϯυϙΠϯτຖʹ͔͔Δ͕࣌ؒΘ͔Δ
Ͳͷॲཧ͕ͲΕ͘Β͍͔͔͍ͬͯΔ͔͕Θ͔Δ
None
None
ͬͯΑ͔ͬͨ͜ͱ
ΤϥʔΊͬͪΌग़ͯͨ
None
Error Rate 30% ※ ΄ͱΜͲ͕404
None
ΊͬͪΌ͍ ΤϯυϙΠϯτ͋ͬͨ
None
761 sec ≒ 13 min
Ͳͷॲཧ͕ͲΕ͘Β͍͔͔͍ͬͯΔ͔͕Θ͔Δ
ͬͯΑ͔ͬͨ͜ͱ • Τϥʔ͕ͨ͘͞Μग़ͯͨ • ࣮΄ͱΜͲ͕404ͰΑ͔ͬͨ • ͷ͍͕͔͔࣌ؒͬͯ͢͝Δॴ͕Θ͔ͬͨ • ԿΘ͔Βͳ͍ঢ়ଶ͔Βɺྑ͘ͳ͍͜ͱ͕Θ ͔Δͱ͜Ζ·ͰਐΜͩ
αϙʔλʔζվળલ ςετίʔυ͕ͳ͍ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕ͳ͍ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕༰қʁ σϓϩΠޙʹԿ͔͕͋ͬͯ
͙͢ʹͤΔ
αϙʔλʔζվળޙ ςετίʔυ͕ͳ͍ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕͋Δ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕༰қʁ σϓϩΠޙʹԿ͔͕͋ͬͯ
͙͢ʹͤΔ
None
Agenda • ӡ༻ɺՃ։ൃͮ͠Β͍ͱʁ • αϙʔλʔζͷ࣌ͷڥʁ • ӡ༻ɺՃ։ൃ͍͢͠ڥʹ͍ͯ͘͠ • ΞϓϦέʔγϣϯϞχλϦϯάͷՃ •
ςετΛՃͭͭ͠ػೳՃ • ·ͱΊ
ػೳՃલͷঢ়ଶ • PHP5.x • CakePHP 2.x • Controller: 40 class
• ଟ͍ͷͰ1300ߦ • Model: 88 class ELB CakePHP
1ΞΫγϣϯߦɿ140
1 2 3 4 5 6 7 8 8ॏωετ
None
ݫ͍͠
ํ • طଘͷΞϓϦέʔγϣϯۃྗ৮Βͳ͍ • ผΞϓϦέʔγϣϯΛ্ཱͪ͛Δ • ͋Δύεʹདྷͨͱ͖͚ͩผΞϓϦέʔγϣ ϯʹϦΫΤετΛඈ͢
ELB CakePHP ALB CakePHP Slim ALB
ػೳՃޙͷঢ়ଶ • PHP7.1 • Slim 3.x • ALB • Application
Load Balancer ALB CakePHP Slim ALB
ALB • AWS Application Load Balancer • http://docs.aws.amazon.com/ja_jp/ elasticloadbalancing/latest/application/ introduction.html
• ͋Δύεɺ·ͨϗετ໊ΛݩʹϦΫΤετ ΛϧʔςΟϯάग़དྷΔػೳ
ALB
ALB
ALB • / • ʹΞΫηε ALB CakePHP Slim
ALB • /v1/code_challenge • ʹΞΫηε • ͕࣌ؒ͋ΕDEMO ALB CakePHP Slim
ࠔͬͨ͜ͱ • Sessionͷཧ • CakePHPͰSessionComponentΛར༻ • DBͷTableʹॻ͖ࠐΜͰ͍Δ • 2ͭͷSession༻ςʔϒϧʹॻ͖ࠐΉ͜ͱʹͨ͠
• /login • cake_sessionʹॻ͖ࠐΉ • slim_sessionʹॻ͖ࠐΉ ࠔͬͨ͜ͱ CakePHP Slim
ࠔͬͨ͜ͱ • / ʹΞΫηε • cake_session͔Β SessionΛऔಘ ALB CakePHP Slim
ࠔͬͨ͜ͱ • /v1/~ ʹΞΫηε • slim_session͔ΒSession Λऔಘ ALB CakePHP Slim
݁ • ALBΛར༻ͯ͠ػೳՃ͍͢͠ڥΛೖΕͨ • ςετΞϓϦέʔγϣϯϞχλϦϯά͋Δ • SessionपΓͰࠔͬͨ • ϩάΠϯ࣌ʹ2ͭͷSession༻ςʔϒϧʹॻ͖ࠐ Μͩ
࣍ͷҰख: Ҡߦ • ͜͜·Ͱ୯ͳΔ৽نػೳ • ͡Ό͋طଘػೳͷҠߦͲ͏Δͷ͔
࣍ͷҰख: Ҡߦ • 1. SlimͷΞϓϦέʔγϣϯʹطଘػೳΛՃ • ςετॻ͖ͳ͕Βطଘػೳͷ࠶࣮ • 2. ALBઃఆͰͦͷύε͚ͩΛSlimʹ͚ΔΑ
͏ʹ͢Δ
࣍ͷҰख: Ҡߦ • ྫ) /events ͷҠߦ • 1. /events ͷΤϯυϙΠϯτΛSlimͷΞϓϦέʔ
γϣϯʹ࡞Δ • 2. ALBͰ/events ΛSlimΞϓϦέʔγϣϯʹ͚Δ • Կ͔͋ͬͨΒALBઃఆΛͤྑ͍
None
αϙʔλʔζվળલ ςετίʔυ͕ͳ͍ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕͋Δ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕༰қʁ σϓϩΠޙʹԿ͔͕͋ͬͯ
͙͢ʹͤΔ
αϙʔλʔζվળޙ ςετίʔυ͕͋Δ σϓϩΠલʹΤϥʔʹ ؾ͕͚ͭΔ ΞϓϦέʔγϣϯ ϞχλϦϯά͕͋Δ σϓϩΠޙʹΤϥʔʹ ؾ͕͚ͭΔ σϓϩΠ͕༰қʁ σϓϩΠޙʹԿ͔͕͋ͬͯ
͙͢ʹͤΔ
Agenda • ӡ༻ɺՃ։ൃͮ͠Β͍ͱʁ • αϙʔλʔζͷ࣌ͷڥʁ • ӡ༻ɺՃ։ൃ͍͢͠ڥʹ͍ͯ͘͠ • ΞϓϦέʔγϣϯϞχλϦϯάͷՃ •
ςετΛՃͭͭ͠ػೳՃ • ·ͱΊ
• ӡ༻ɺՃ։ൃͮ͠Β͍ΞϓϦέʔγϣϯ ΛͲ͏վળ͍͔ͯ͘͠ • ୈҰาΛͲ͏ͬͯ౿Έग़ͯ͠ະདྷʹ ͔͏͔ ࠓ͍͑ͨ͜ͱ
·ͱΊ • ӡ༻ɺՃ։ൃͮ͠Β͍ΞϓϦέʔ γϣϯΛͨ͘͢͠͠ • σϓϩΠલޙͰΤϥʔʹؾ͕͚ͭΔ Α͏ʹͳͬͨ • طଘͷ৮ΓͮΒ͍෦Λ৮ΒͣʹҠ ߦ͢ΔՄೳੑ͕ݟ͑ͨ