酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

IT勉強会を探しやすくするWebアプリ『俺の勉カレ』をリニュアールしました

2013-2014年の年末年始の連休を利用して開発したIT勉強会を網羅したアプリ『俺の勉カレ』を全面リニュアールしました! 見た目はちょこっとしか変わってないように見えますが、実は裏側はほぼすべて作りなおしましたw 今回はリニュアールの目的と、リニュアールでどんな技術を使ったのかを中心に紹介していきます。


リニュアールの目的

初期構築したアプリでは、Microservicesのまね事みたいなことを夢想していて単機能ごとに6個のアプリで構成されていました。 しかもかなりの運用工数がかかるような謎設計で、昔の自分の頭のなかがいかにお花畑だったかを思い知らされます。

こういった失敗を踏まえて、

* できるだけ運用が楽な仕組みにする
* 運用工数を最小化できるような構成にする
* 自分が興味のある勉強会を見つけやすくする

を基本コンセプトに、裏側をほぼすべて書き直しました。

使った技術

インフラ:VULTR

VULTR 日本リージョン/MEM 768MB/SSD 15GB VPS $5/月! Rails鯖のためのAnsibleコードあり

インフラはVULTRで月に$5運用です。日本リージョン + SSDで、時間単位の課金なのでめっちゃオススメです! ちなみに『グーグル先生』 にお伺いをたてると、しばらく無料になってしまうようなクーポンコードを教えて頂けたりします。

インフラ構築コード: Ansible

AWS/VULTR + AnsibleでベーシックなRailsサーバを簡単構築

Railsサーバの構築部分についてはAnsibleのコードを使いました。GitHubにも公開していますので、 是非使って、PRをいただけると助かります!

アプリ: Rails

アプリの構成はベーシックなRailsアプリです。

* Rails 4.1.7
* Ruby 2.1.4
* PostgreSQL

Railsは基本的なMVCフレームワークとrakeタスクの管理として使っています。 AntdやConnpass、Doorkeeper、ZusaarなどのAPIから勉強会の一覧を取得してくる部分については、 Gem『events_jp | RubyGems.org』にしました。 このGemについては後で別に記事を書く予定ですが、こういう共通部分を外出しにしていくことで、 これからアウトプットを強化したり、OSSに貢献していきたいと思っています!

アプリのデプロイ: Capistrano

Capistrano 3系でRails4.1のデプロイ

デプロイツールのCapistranoさんには大変お世話になっています。自分でサーバを持ってアプリをデプロイ するときには無くてはならないアプリです。

Cron管理: Whenever

Wheneverは導入が超簡単なcrontab管理ライブラリGemです!

CronをRailsのソースコード内で管理できて、デプロイ時に自動で最新の状態にアップデートしてくれる Wheneverさんにも大変お世話になっています!Cronの管理めっちゃ楽!

エラー監視: Errbit

Errbit - Railsアプリの本番エラーをherokuで管理、メール通知する【無料枠】

エラー監視としてErrbitを使っています。このErrbitを使うとAirbrake.notify(e, parameters: { hoge: 'fuga' }) といったようにエラーの原因調査に必要な情報を一緒に送付してくれることでエラー管理と対策がかなりやりやすくなる点です。 特に個人プロジェクトでWebアプリを運用していく時には欠かせないツールだと思います!

あとがき

このプロジェクトは最初は1日で終わるぜヤッホイと思っていましたが、結局デザインで行ったり来たり してしまったせいで1ヶ月近くかかってしまいました。(最終的にデザインのリニュアールは諦めましたorz…)

デザインを一人で乗り切るだけの実力は無いので、『Bootstrap』や 『polymer』をうまく使いこなせるようになりたい!

おすすめの書籍