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.3k
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
620
ドキュメントとテストのないプロジェクトを引き継ぐ
takanamito
2
3.5k
Siriに身の回りのお世話をしてもらう
takanamito
0
6.7k
安心してフレームワークをのりかえたい
takanamito
0
1.2k
HLSでやっていく 動画ストリーミング配信
takanamito
0
2.5k
あんしん大規模リプレースサポート
takanamito
1
1.6k
Other Decks in Technology
See All in Technology
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
200
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
270
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
11k
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
360
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
210
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.6k
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
260
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
130
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
160
How Community Opened Global Doors
hiroramos4
PRO
1
110
エンジニア向け技術スタック情報
kauche
1
250
Featured
See All Featured
Designing for Performance
lara
609
69k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Agile that works and the tools we love
rasmusluckow
329
21k
The Cult of Friendly URLs
andyhume
79
6.5k
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͕ू·Δ