Heroku の自動ビルドシステムを使用すると、ビルドプロセスがシームレスかつ迅速なものに変わります。Heroku でアプリをデプロイするために開発者が用意しなければならないものは、ソースコード、依存関係ファイルのリスト、「Procfile」(コードの実行を開始するためのコマンドを指定したテキストファイル)の 3 つのみです。ビルドシステムはソースコード、依存関係ファイル、言語ランタイムを受け取ると「スラッグ」を作成します。スラッグにはオペレーティングシステムを除き、アプリの実行に必要なものがすべて含まれています。

Heroku は 1 つまたは複数の dyno にスラッグをデプロイし、Procfile で指定されているコマンドを呼び出すことによってアプリを起動します。

Heroku は 8 種類の言語を強力にサポートするだけでなく、それ以外の言語もサポートできる拡張可能なビルドシステムを備えた多言語対応プラットフォームです。ビルドシステムには各言語に適したアセットが読み込まれます。たとえば、Go で書かれたアプリの場合は、コンパイル済みの Go バイナリがスラッグに追加されます。Ruby でデプロイされたアプリの場合は、Ruby コード、gemfile 依存関係ファイル、Ruby ランタイムがスラッグに追加されます。

Heroku ビルドパック を使用すると、Heroku のビルドシステムで他の言語をサポートしたり、カスタマイズしたりすることが可能になります。

アプリの実行に必要な最後のコンポーネントはオペレーティングシステムです。Heroku ではこれを "stack"と呼んでいます。スタックは Heroku により管理されているオペレーティングシステムイメージであり、Ubuntu(オープンソースの Linux システム)をベースとしています。

Heroku のビルドプロセスの詳細→

  • Node.js で作成したプロキシアプリを Heroku で実行したところ、Salesforce に対する API 呼び出しが大幅に減少し、メインの AngularJS アプリにかかるオーバーヘッドを最小限に抑えることができたので、パフォーマンスの改善に成功しました。これも、Heroku がデフォルトで Node.js に対応していたおかげです。

    University of the Nations Darrel Stone University of the Nations エンジニア University of the Nations 様事例→
  • さまざまな言語で書かれたアプリをデプロイできるようになったことは私たちにとって非常に大きなメリットでした。Buildpack のおかけで仮想マシンに基本インフラをセットアップしなくてもアプリを簡単にデプロイできるようになったので、非常に楽になりました。

    DNSimple Anthony Eden DNSimple 社創業者 DNSimple 様事例→