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

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

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

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

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

ビルドプロセスの詳細はこちら >>

  • 私たちが Heroku を選んだ最大の理由は、Ruby on Rails アプリを運用するために必要な作業が非常に少ないという点でした。Heroku に移行したおかげで、アプリの運用開始が大幅に楽になりました。

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

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

    DNSimple Anthony Eden DNSimple 社創業者 お客様事例を読む >>