トップ «前の日記(2013/04/25 (木) ) 最新 次の日記(2013/04/27 (土) )» 編集 RSS feed

HsbtDiary


2013/04/26 (金) [長年日記]

[rails][ruby] 30d.jp を Rails 2.3 にしましたのお知らせ

去年の 8 月くらいからちまちま進めていた http://30d.jp で使っている Rails をやっとアップグレードできました。2月にはやりたいと思っていたのだけど、色々と困難が立ちはだかって延び延びになってしまいました。以下はメモ。

  • backgroundrb というメモリにキューイングするジョブワーカーの処理をデータベースを使う delayed_job に書き直した
  • kage を使って本番から検証環境にリクエストを横流しして検証していたけど、30d.jp は画像データですげーでかいリクエストがたまにあって、それが来ると本番サーバーが突然死するという現象にはまった
  • kyoto tycoon でレプリケーション組んでいる memcached がサーバー構成の関係で結構な頻度で実はタイムアウトしてエラーとなっていたことが、Rails 2.3 をデプロイした当日にわかったので、泣きながらロールバックして、Rails 2.1 のまま kyoto tycoon のサーバー構成やら諸々を全部対処した
  • Rails 3 にすることは確実なので、野良インストールしていた gem は全部 bundler 使うようにした
  • ついでに Rails 2.3 だけど Passenger の ClassicRails モードじゃなくて Rack で動かしている
  • Rack 使えるようになったので、newrelic ぶち込んだ
  • exception notification 入れたら10分に一度20-30通のエラーメールが来るという状態だったけど2日かけて0通になるまで直した
  • 移行後はちらほら動いてない箇所があったけど、カスタマサポートへの問い合わせやエラーメールで来たものは何が何でも直して今は全部直った

今はもう Rails 2 っぽいコードを片っ端から Rails 3 ready になるように書き換えている途中。Rails 2.3 にする時にミドルウェアっぽい所は片付けたので Rails 3 はもう少し簡単に行けそうな気がする。乞うご期待。

ちなみに 30d.jp はアップロード時は delayed_job に書き換えた時に無駄を削ったというのと、画像表示時は ktserver の改善であちこち凄く早くなっています。例えば、http://30d.jp/yapcasia/5/slide とか写真の移動の時に以前はうっという間があったんですが、今は右キー連打でも表示できるようになっています。

newrelic 入れたり、この辺のパフォーマンスチューニングもやりやすくなっているのでバンバンやっていく予定。みんな使ってね。