1. テスト・動くアプリで開発を円滑に
いつでも動作確認を行える環境をプロジェクト初期段階から用意したことで開発がスムーズに進みました。
- プロダクトマネージャーからのフィードバックを得るまでの時間が短縮され、開発をスピーディーに行えるようになった
- フロントエンドとバックエンドの開発は別メンバーがAPI仕様に沿って実装を進めていたのだが、早い段階で結合テストを行えたため、仕様や考慮漏れや、結合時点で動作しないといった問題を未然に防ぐ事ができた
- アプリの動作確認をインフラが整う前から行えたのが効果的だった
- 動作するものが見える安心感
- 全体の進捗を把握する場にもなった
- Herokuには申し訳ないが、DBをHobbyBasic(月額$9)以外は全て無料の範囲内で収まっている(^^;;)
1.1. Herokuで動かすためのコツ
動作確認用にRailsのenvironment/development.rbをベースにheroku.rbの設定を用意
developmentモードで動かすことの利点
- みんなが触ってくれることでバグ出しの場として使える
- 問題が発生した際にトレースしやすい
- 「アカウント発行のご案内」などユーザー向けHTML通知メールをプレビュー機能を用いたことでデザイナー、プロダクトマネージャーの確認効率が向上
development.rbをベースにコピーしてheroku.rbを用意
公開を望まないアプリケーションの場合には、Basic認証をお忘れなく(以下をheroku.rbに追記)
config.middleware.use Rack::Auth::Basic do |username, password| username == ENV['BASIC_AUTH_USER'] && password == ENV['BASIC_AUTH_PASSWORD'] end
Herokuの実行モードの変更
heroku config:set RACK_ENV=heroku RAILS_ENV=heroku
Rails+nodeを使ったプロジェクトでも以下の設定を追加すれば、ビルドを行ってくれる
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-nodejs\#yarn
AWSに依存した部分(SQS)はダミーのアプリケーションをHeroku上に別立てして、そこに通信を行うようにした
Nodeのコンパイルがバグったとき
- cacheが変に残ってる可能性があるので、heroku config:set NODE_MODULES_CACHE=falseでcacheを無効にして再ビルドしてみる
1.2. フィードバックを得るためのコツ
- developブランチにPushされたのをフックにHerokuにデプロイされるように設定
- Pushされた最新のアプリケーションが自動的にデプロイされるようになる
- 全てのPushでデプロイを走らせてしまうと、動いているものがどのバージョンか分からなくなるので、ブランチ指定
- review apps機能もわかりづらいので今回は使わず
- デプロイが完了したときには、Slackに通知が行くように設定
- プロダクトマネージャー、デザイナが更新タイミングを知ることができる
- プロジェクト開発が活発に進んでいることのアピール
- 叩き台としてみんなが触るのでついでにモニタリングツールを仕込んで、ボトルネックを把握できる状態にしておくと一石二鳥