PHPで運用中のサービスをRubyに切り替える

C638d4b3de6d551fb67ba50a572734c9?s=47 takanamito
January 18, 2017

 PHPで運用中のサービスをRubyに切り替える

「Rubyエンジニアが語る2016年の振り返りとこれから」での発表資料です。
https://speee.connpass.com/event/47616/

C638d4b3de6d551fb67ba50a572734c9?s=128

takanamito

January 18, 2017
Tweet

Transcript

  1. PHPͰӡ༻தͷαʔϏεΛ Rubyʹ੾Γସ͑Δ

  2. ࣗݾ঺հ • id: takanamito • ॴଐ: גࣜձࣾSpeee ւ֎ϝσΟΞνʔϜ

  3. ΞδΣϯμ • Ruby੾Γସ͑લͷςετ • Ruby੾Γସ͑ޙͷ؂ࢹମ੍

  4. 1. Ruby੾Γସ͑લͷ ςετ

  5. ASEAN޲͚ਓࡐϝσΟΞ • ਺ඦສPV / ݄ • 2೥΄ͲFuelPHPͰՔಇ • 1action 100~200ߦͷcontroller͕ෳ਺

    • ϦϑΝΫλͷݶք
  6. None
  7. 2016೥ RubyҠߦ • ͖͔͚ͬ͸SpeeeશࣾͷRubyҠߦ • ϚελσʔλΛ࡮৽͍ͨ͠ • URLϧʔϧΛม͍͑ͨ • چˠ৽URLʹ301ϦμΠϨΫτ


    /hoge/joblist -> /joblist/hogehoge
  8. ͨͩ͠ URL͸10ສҎ্

  9. 10ສҎ্ͷURLΛ301ϦμΠϨΫτ • ϦμΠϨΫτϩδοΫ͕όάͬͯΔͱࢮ͵ • σʔλ͕ؒҧͬͯͯ΋ࢮ͵ σʔλͷଥ౰ੑ֬ೝΛؚΊͨςετΛ ͍͍ײ͡ʹ΍Γ͍ͨ

  10. kage • γϟυ΢ϓϩΩγαʔόʔͷgem • ຊ൪΁ͷτϥϑΟοΫΛෳ੡͠
 ։ൃαʔόʔʹྲྀ͢

  11. LBHF 'VFM1)1 3BJMT શϦΫΤετΛ 'VFM1)1ʹ (&5ϦΫΤετ ͚ͩෳ੡

  12. 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
  13. 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ͭͣͭ֬ೝ͍ͯ͘͠
  14. 2छྨͷςετͰ҆৺ • ϩδοΫ͸ςετίʔυͰݕূ • σʔλؚΊݕূ͢ΔͨΊʹ
 ຊ൪τϥϑΟοΫΛྲྀ͢

  15. 2. Ruby੾Γସ͑ޙͷ ؂ࢹମ੍

  16. ϦϦʔεޙͷ՝୊ • ҙਤͤͣ40x, 30x͕ฦ͍ͬͯΔ৔߹ • ϨεϙϯελΠϜͷѱԽ Ͱ͖Δ͚ͩૣٸʹؾ෇͖͍ͨ

  17. IUUQTTQFBLFSEFDLDPNTFMNFSUTYTQFFFOJPLFSVKJBOTIJUVSVGBMTFYVBOEJOHQVSPTFTV

  18. DatadogͰ αʔϏεঢ়گΛ؂ࢹ

  19. None
  20. ˢ &-#഑Լͷ&$ ˢ &-#ʹྲྀΕΔ ϦΫΤετྔ ˢ (PPHMF"OBMZUJDT ϦΞϧλΠϜ

  21. &-#͕ฦ͢Ϩεϙϯεͷεςʔλε ˣ ˢ &-#͕ฦ͢ϨεϙϯεͷϨΠςϯγʔ

  22. None
  23. ४උͷ݁Ռ • େ͖ͳো֐΋ͳ͘ҠߦΛ৐Γ੾Ε·ͨ͠ • DatadogͷμογϡϘʔυʹ
 ͲΜͲΜॏཁͳKPI͕ू·Δ