2013-2014年の年末年始の連休を利用して開発したIT勉強会を網羅したアプリ『俺の勉カレ』 (ドメインをoreben.com => meeting.blueに変更中です)を全面リニュアールしました! 見た目はちょこっとしか変わってないように見えますが、実は裏側はほぼすべて作りなおしました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』をうまく使いこなせるようになりたい!