--- Title: 'mimemoがどうやって動いているか #mimemo #dev #heroku' Keywords: - mimemo - dev - heroku Author: hiro_y Web: 'https://mimemo.io/m/vj5XN4j2p486d73' --- [mimemo - 10mado | StackShare](http://stackshare.io/10mado/mimemo) にまとめてある通り。 ## 開発ツールとか - 開発言語: Node.js(4系) - 5系ではなくLTSなほうを - フレームワーク: [Express](http://expressjs.com/) - テンプレートエンジン: [Nunjucks](https://mozilla.github.io/nunjucks/) - Herokuの構成管理: [Terraform](https://www.terraform.io/) - add-onについてはherokuコマンドで管理している - 理由はadd-onのプラン変更をterraformでスムーズに行えないケースがあるため - なので使っている一番の理由はconfig、つまり環境変数の管理用 - remoteとしてAmazon S3を利用している - フロントエンド開発タスクランナー: [gulp.js](http://gulpjs.com/) - Markdownパーサー: [markdown-it](https://github.com/markdown-it/markdown-it) ## サーバーとかインフラ面 - サーバー: [Heroku](https://www.heroku.com/home) - 1 Dyno - データベース: [Heroku Postgres(Heroku add-on)](https://elements.heroku.com/addons/heroku-postgresql) - セッションストレージ&時限ストレージ: [Redis Cloud(Heroku add-on)](https://elements.heroku.com/addons/rediscloud) - [Heroku Redis](https://elements.heroku.com/addons/heroku-redis)を使っていないのは無料の範囲で使える容量に差があるため - 課金・決済: [PAY.JP](https://pay.jp/) - npmの[payjp](https://www.npmjs.com/package/payjp)を初期から利用させていただいてる - メール送信: [SendGrid](https://sendgrid.com) - 他のサービス・案件でも利用しているのでHeroku add-onとしてではない利用 - 画像のストレージおよび配信: Amazon S3 - 東京リージョン - 画像をメモに添付する際はS3にダイレクトアップロードしている - 定期実行: [Heroku Scheduler(Heroku add-on)](https://elements.heroku.com/addons/scheduler) - DNS: [DNSimple](https://dnsimple.com) - HerokuでNaked domainを扱うため - ログの収集と管理: [Papertrail(Heroku add-on)](https://elements.heroku.com/addons/papertrail) - エラーとかHeroku SchedulerのログをSlackに通知するようにしている - モニタリング: [Librato(Heroku add-on)](https://elements.heroku.com/addons/librato) - お手軽 - 外形監視: [Uptime Robot](https://uptimerobot.com/) - ページのレスポンス監視ができる