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さんにはたいへんお世話になっています。自分でサーバを持ってアプリケーションをデプロイ
するときにはなはてはならないアプリケーションです。
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』をうまく使いこなせるようになりたい!