Heroku で Ruby と Rails を使うべき理由

Ruby を利用できる PaaS のパイオニア

Heroku は Ruby を利用できる PaaS の先駆けです。そして今なお、 GitHub からの継続的デリバリーのためのパイプラインや、開発/本番一致のための Docker のサポートなどを通じて開発環境を刷新し続けています。Ruby 開発者は、Ruby が公開したその日から MRI を使用でき、JRuby をサポートする JVM 上で Ruby を実行できます。Ruby コミュニティの支援に力を入れている Heroku は、Ruby の開発者である、まつもとゆきひろ氏を含む 4 名の Ruby 開発中核メンバーを社員として迎え入れています。

最適化された開発/移行ワークフロー

Heroku はビルドを高速化するため、デプロイのたびにアセットをキャッシュします。one-off dyno を使って rake:db migrate を実行してデータベースを移行したり、Rails コンソールを使用して稼働中のアプリケーションの点検やデバッグを行ったりできます。ブート前に新しいバージョンを web dyno にデプロイして、既存のトラフィックが停止する前にトラフィックを受信できるので、デプロイ時のダウンタイムをゼロにできます。

ランタイムとフレームワークのサポート

Rails、Sinatra、Rack を使った Web アプリケーションの実行や、Sidekiq など任意のキューシステムを使った Ruby のバックエンドワーカーの調整が可能です。1 つの dyno で同時に複数の Web リクエストを処理したり、Puma を使って低速クライアントの影響を軽減したりできます。Heroku Postgres は開発者向けに最適化されたサービスとしてのデータベース(DaaS)で、JSONB をサポートして半構造化データへの高速アクセスを可能にします。

Heroku で実現するシンプルで使いやすい環境

デプロイ

Git や CI システムからのデプロイも、GitHub ブランチへのプッシュ ごとのデプロイも可能です。Heroku ではアプリケーションは dyno(選択した Ruby のバージョンとインタープリターに対応するセキュアで高品質なスマートコンテナ)内で実行されます。Dyno にはさまざまな種類があり、お試し用の低価格の dyno から、トラフィック量の多いアプリケーション向けのものまで揃っています。
Heroku の Ruby サポート関連文書→

管理

アプリケーションポートフォリオを直感的なダッシュボードや CLI で管理できます。200 を超えるマネージドアドオンでアプリケーションを拡張し、データストア、ログ記録、その他さまざまな機能を追加できます。アドオンのインストールは、「heroku addons:create papertrail」などのコマンドを入力するだけで簡単に完了します。Heroku Postgres も同様に簡単にインストールできます。
Heroku アドオン関連文書→

スケール

Heroku の非共有アーキテクチャはスケールアウトに対応しているため、コンテナ化アプリケーションの時代のサービス構築に最適です。各種のメトリクスで CPU やスループット、メモリ使用量を確認できるため、スケールのタイミングの判断に役立ちます。CLI コマンド 1 つで、または Heroku ダッシュボードのスライダー操作で Ruby アプリの web dyno をスケールアウトできます
Dyno のスケール手順→