最新アプリに備え、多様なプログラミング言語に対応する JVM プラットフォーム

デプロイ

Git や GitHub で、または SBT や Maven などのツールであらかじめコンパイルしたビルドを使って CI システムから直接、アプリをデプロイできます。デプロイしたアプリはソースの配信方法にかかわらず、dyno と呼ばれる安全で高品質なスマートコンテナで実行されます(この dyno の中に、お客様が指定した JVM が存在する形となっています)。

管理

直感的なダッシュボードで各種のアプリを一元的に管理できます。アプリのバージョンを確認したり、安定したバージョンに戻したりといった作業も苦になりません(バージョンを戻す際に再コンパイルは不要です)。また、アプリの環境ごとの設定を外部環境変数で管理できます。

スケール

スケールアウトに対応した非共有アーキテクチャの Heroku は、Play のような非同期、ステートレス、ノンブロッキングを特徴とする最新のフレームワークを使用したアプリに最適です。Heroku では、ダッシュボードのスライダーを動かしたり、CLI コマンドを 1 件入力したりするだけで、スケールアウトやスケールアップが可能です。

モニタリング

ダッシュボードには、メモリやガベージコレクションに関する詳しいデータが、JVM ランタイムのメトリクスを使って表示されます。小さなバグでも見落とさないようにするため、VisualVM のようなデバッグ診断用ツールとリモートで接続したり、必要に応じてヒープダンプやスレッドダンプを生成したりできます。

Heroku でJVM 言語を使うべき理由

言語やフレームワークの豊富な選択肢

Groovy と Ratpack を使ったマイクロサービス、Scala と Play を使ったリアクティブ API、Spark を使ったストレスフリーの Web アプリ、Spring Boot や Spring Cloud を使った高パフォーマンスの Web アプリを開発できます。Heroku では、Java、Scala、Play、Clojure、Gradle、Grails に対応したビルドパックをご用意しています。Heroku での Java→

厳選された言語のラインナップと親切なデフォルト設定

最新版の JDK を公開後すぐに入手してインストールできます。Heroku はデフォルトで最新の安定バージョンである Java 8 を使用してアプリケーションを実行する設定になっています。また同じくデフォルト設定で、アプリケーションを実行している dyno スマートコンテナのサイズにもとづいてヒープサイズとスタックサイズが最大化されるようになっています。Heroku の Java サポート関連文書→

アプリを拡張する 200 以上の add-on

Heroku には CloudAMQP、Postgres、Redis、Treasure Data(サービスとしての Hadoop)、GrapheneDB(サービスとしての Neo4J)といったアドオンがあり、余計なランニングコストをかけずに JVM ベースの最新アプリケーションを拡張、管理、デプロイできます。全ての Heroku アドオン→

組み込み式デバッグ診断用ツール

Heroku では、ダッシュボードで各種のメトリクスを確認し、パフォーマンス面のさまざまな問題を把握できます。また、主要な言語特有のメトリクス(ガベージコレクションアクティビティやメモリ使用量など)も、Heroku の言語ランタイムメトリックスダッシュボードで確認できます。問題を特定したら Heroku Exec を使えば、実行中の dyno に SSH を使ってアクセスできます。言語ランタイムメトリクス関連文書→