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
PHPで運用中のサービスをRubyに切り替える
Search
takanamito
January 18, 2017
Technology
0
5.5k
PHPで運用中のサービスをRubyに切り替える
「Rubyエンジニアが語る2016年の振り返りとこれから」での発表資料です。
https://speee.connpass.com/event/47616/
takanamito
January 18, 2017
Tweet
Share
More Decks by takanamito
See All by takanamito
ActiveModel::Attributes APIとSwaggerでRailsのAPIレスポンスに型を持ち込む
takanamito
0
660
ドキュメントとテストのないプロジェクトを引き継ぐ
takanamito
2
3.6k
Siriに身の回りのお世話をしてもらう
takanamito
0
6.8k
安心してフレームワークをのりかえたい
takanamito
0
1.3k
HLSでやっていく 動画ストリーミング配信
takanamito
0
2.6k
あんしん大規模リプレースサポート
takanamito
1
1.7k
Other Decks in Technology
See All in Technology
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
190
脳内メモリ、思ったより揮発性だった
koutorino
0
130
僕、S3 シンプルって名前だけど全然シンプルじゃありません よろしくお願いします
yama3133
1
190
ランサムウエア対策してますか?やられた時の対策は本当にできてますか?AWSでのリスク分析と対応フローの泥臭いお話。
hootaki
0
110
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
490
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
410
OCI Security サービス 概要
oracle4engineer
PRO
2
13k
ナレッジワーク IT情報系キャリア研究セッション資料(情報処理学会 第88回全国大会 )
kworkdev
PRO
0
160
[JAWSDAYS2026]Who is responsible for IAM
mizukibbb
0
380
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.2k
JAWS FESTA 2025でリリースしたほぼリアルタイム文字起こし/翻訳機能の構成について
naoki8408
1
280
(Test) ai-meetup slide creation
oikon48
1
200
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
670
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
150
The SEO identity crisis: Don't let AI make you average
varn
0
410
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
69
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
The Invisible Side of Design
smashingmag
302
51k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
130
Speed Design
sergeychernyshev
33
1.6k
Transcript
PHPͰӡ༻தͷαʔϏεΛ RubyʹΓସ͑Δ
ࣗݾհ • id: takanamito • ॴଐ: גࣜձࣾSpeee ւ֎ϝσΟΞνʔϜ
ΞδΣϯμ • RubyΓସ͑લͷςετ • RubyΓସ͑ޙͷࢹମ੍
1. RubyΓସ͑લͷ ςετ
ASEAN͚ਓࡐϝσΟΞ • ඦສPV / ݄ • 2΄ͲFuelPHPͰՔಇ • 1action 100~200ߦͷcontroller͕ෳ
• ϦϑΝΫλͷݶք
None
2016 RubyҠߦ • ͖͔͚ͬSpeeeશࣾͷRubyҠߦ • ϚελσʔλΛ৽͍ͨ͠ • URLϧʔϧΛม͍͑ͨ • چˠ৽URLʹ301ϦμΠϨΫτ
/hoge/joblist -> /joblist/hogehoge
ͨͩ͠ URL10ສҎ্
10ສҎ্ͷURLΛ301ϦμΠϨΫτ • ϦμΠϨΫτϩδοΫ͕όάͬͯΔͱࢮ͵ • σʔλ͕ؒҧͬͯͯࢮ͵ σʔλͷଥੑ֬ೝΛؚΊͨςετΛ ͍͍ײ͡ʹΓ͍ͨ
kage • γϟυϓϩΩγαʔόʔͷgem • ຊ൪ͷτϥϑΟοΫΛෳ͠ ։ൃαʔόʔʹྲྀ͢
LBHF 'VFM1)1 3BJMT શϦΫΤετΛ 'VFM1)1ʹ (&5ϦΫΤετ ͚ͩෳ
Kage::ProxyServer.start do |server| server.port = 8090 server.host = '0.0.0.0' server.add_master_backend(:production,
'xxx.xxx.xxx.xxx', 80) server.add_backend(:sandbox, 'xxx.xxx.xxx.xxx', 80) server.client_timeout = 15 server.backend_timeout = 10 server.on_select_backends do |request, headers| if request[:method] == 'GET' [:production, :sandbox] else [:production] end end ~~ தུ ~~ end def compare(production_res, sandbox_res, url) # ͜ͷลͰresponseݟͯϩάग़ͨ͠Γ͢Δ end
kageͷϩά "Response diff 404, 301, /hoge/joblist" "Response diff 200, 404,
/fuga/joblist" "Response diff 404, 301, /hoge/fuga/job" ˢ 1)1 ˢ 3VCZ ˢ ֘63- ϩάʹग़ྗ͞ΕͨURLΛ 1ͭͣͭ֬ೝ͍ͯ͘͠
2छྨͷςετͰ҆৺ • ϩδοΫςετίʔυͰݕূ • σʔλؚΊݕূ͢ΔͨΊʹ ຊ൪τϥϑΟοΫΛྲྀ͢
2. RubyΓସ͑ޙͷ ࢹମ੍
ϦϦʔεޙͷ՝ • ҙਤͤͣ40x, 30x͕ฦ͍ͬͯΔ߹ • ϨεϙϯελΠϜͷѱԽ Ͱ͖Δ͚ͩૣٸʹؾ͖͍ͨ
IUUQTTQFBLFSEFDLDPNTFMNFSUTYTQFFFOJPLFSVKJBOTIJUVSVGBMTFYVBOEJOHQVSPTFTV
DatadogͰ αʔϏεঢ়گΛࢹ
None
ˢ &-#Լͷ&$ ˢ &-#ʹྲྀΕΔ ϦΫΤετྔ ˢ (PPHMF"OBMZUJDT ϦΞϧλΠϜ
&-#͕ฦ͢Ϩεϙϯεͷεςʔλε ˣ ˢ &-#͕ฦ͢ϨεϙϯεͷϨΠςϯγʔ
None
४උͷ݁Ռ • େ͖ͳোͳ͘ҠߦΛΓΕ·ͨ͠ • DatadogͷμογϡϘʔυʹ ͲΜͲΜॏཁͳKPI͕ू·Δ