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』をうまく使いこなせるようになりたい!

📚 おすすめの書籍