言語サポートポリシー
最終更新日 2022年03月09日(水)
Table of Contents
この記事では、Heroku から提供される一連のサポート対象言語 buildpack とサードパーティ製 buildpack のサポートポリシーについて説明します。
buildpack とサポート
Heroku にデプロイするほとんどのアプリは、汎用的な buildpack のメカニズムを使用してビルドされます。この汎用的なスキームにより、Heroku ユーザーは多数の言語でデプロイできます。
Heroku サポート対象 buildpack を使用するか、サードパーティ製の buildpack を使用するかによって、ご使用のアプリに適用されるサポートレベルが異なります。
サポート対象 buildpack
Heroku では、一連のサポート対象 buildpack を管理しています。
Heroku は、ご使用のアプリに最新で安全な開発環境とランタイム環境を提供することをお約束します。このような環境は、サポート対象 buildpack を通じて提供されます。特に、次のような点に尽力します。
- 公式サポート対象言語については、一般公開されているほとんどの関連バージョンを適時に利用できるように努めます。
- Heroku の各公式サポート対象言語についてプラットフォームの変更があった場合は、変更履歴に投稿します。
- サポート対象言語のランタイムに対する重要なセキュリティパッチは、すべて適時に利用できるようにします。
サポート対象の buildpack や言語ランタイムをアプリで使用している場合、そのアプリの開発者は、Heroku のサポートポリシーで定義されているサポートを受けることができます。
buildpack で公式にサポートしているランタイムのバージョンは、ランタイムの参照ドキュメントに記載されています。
サポート対象外の buildpack
Heroku では、サードパーティ製の buildpack や非推奨の buildpack を使用してビルドされたアプリケーションについての保証はできません。 このような buildpack をサポート対象外 buildpack と呼んでいます。
サポート対象外の buildpack を使用するアプリもサポートしません。
ただし、Heroku API、Heroku プラットフォーム、ドメイン、アドオン、buildpack のメカニズム自体など、デプロイしたアプリ外で発生する可能性のある周辺の問題については、最善を尽くして支援します。
非推奨
Heroku では、アプリケーションに安全な環境を提供することを目指しています。アプリに加え、開発と実行の環境にも注意を払っています。ただし、技術革新の力により、ご使用のランタイムの一部はいずれ古くなります。たとえば、言語の運営組織が言語の特定のバージョンのセキュリティパッチの提供終了を決定したり、アプリの安全性や完全性に影響する重大なバグが見つかる場合などがあります。
バージョンの非推奨
Heroku のサポート対象 buildback に含まれている言語の重要なバージョンが言語の運営組織により非推奨となったときには、お客様にお知らせします。
サポート対象言語の非推奨
言語のサポートを終了するときは、1 年以上前にお知らせします。 サポート終了までの期間は、引き続き、言語の適切なバージョンを利用できるようにし、セキュリティパッチを適用します。
非推奨と可用性
非推奨となった言語のランタイムで新しいアプリケーションをデプロイできるかどうかは保証できません。サポート対象ランタイムは、それぞれの言語サポートのドキュメントに記載されています。
例
例として、Ruby 言語の場合について説明します。Ruby は Heroku でのサポート対象言語です。サポート対象バージョンの Ruby MRI を使用する Ruby buildpack で Ruby アプリを作成して Heroku にデプロイした場合、Heroku はそのアプリをサポートします。
サードパーティ製の Ruby buildpack で Ruby アプリを作成してデプロイした場合は、完全サポートの対象外ですが、プラットフォームの問題については支援します。
同様に、Elixir アプリを作成してデプロイした場合も、プラットフォーム全般に関する問題が発生した場合は支援しますが、Elixir はサポート対象言語ではないため、アプリ自体のサポートはできません。
Docker
Heroku の Container Registry と Runtime 機能を使用すると、カスタムの Docker イメージを Heroku にデプロイできます。
Heroku チームでは、Heroku API、ドメイン、アドオンに起因するプラットフォーム関連の問題について、完全サポートを提供します。 一般的なアプリケーションコードやコンテナのデバッグ、コードのリライト、サードパーティ製パッケージの設定や変更については、サポートの対象外です。
Docker イメージとしてパッケージ化されているサードパーティ製ソフトウェア (Jenkins など) は、いかなる場合もサポートしません。