Herokuにコードを発行する新しい方法がふたつ生まれた。GithubとDropboxに保管されているコードをプッシュする仕組みを追加した。この機能は、現時点ではベータだが、他のHerokuはPaaSプロバイダに比肩する配置の技術となる。
Herokuによれば、この技術は“実験的”な段階だが、GitHub統合機能によって、開発者はどのようなブランチからも自動または手動で配置ができる。2008年以来、Herokuはローカルのgitとリモートのリポジトリの両方をサポートし、配置の準備が整い次第、開発者はコードをプッシュできる。この新しいGitHub統合は、開発者が今までHerokuで使っていたGitHubを扱うプロセスやツールを置き換える。手動の配置の場合、開発者はターゲットのブランチを特定する。手動配置は、Herokuは、変更ウィンドウを制御しようとするときに便利だと説明する。
手動配置は一時的に異なるブランチから配置するのに使えます。自動配置のために構成されたブランチとは別のブランチから配置する場合です。例えば、開発しているアプリを
開発
のGitHubブランチに同期して、一時的に機能ブランチをテストしたい場合、機能ブランチを手動配置し、Heroku上でテストできます。機能ブランチは次のGitHubプッシュで開発
ブランチを上書きします。
自動配置は開発者が特定のブランチへプッシュをした場合に起動される。継続的統合サーバを利用してテストスイートを実行しているチームは、HerokuのGitHub統合を構成して、CIサーバがタスクを実行し、コミットが成功した場合にのみ、対象のブランチを配置するようにできる。GitHub統合を使ったHerokuアプリはリリース履歴を持ち、配置の差異を示し、前のリリースへロールバックへ戻すこともできる。
Dropbox Syncは2014年の11月にリリースされた。構成するには、開発者はHerokuがDropboxのアカウントにアクセスできるようにして、特定のサブフォルダを“Heroku”にする。既存のアプリケーションで有効にすると、Dropbox Syncは配置したアプリケーションのソースコードをその新しいDropboxフォルダにコピーする。DropboxからHerokuに変更を配置するには、開発者がHerokuのダッシュボードから手動のコミットをキックする。ユーザは同じアプリケーションでDropbox SyncとGitHub統合の両方を有効にはできない。しかし、Dropbox SyncはHerokuの標準のgitサポートで使うことができる。Herokuは両方の選択肢についての例を示している。
もしあなたが開発チームの一員で、チームがGitもDropboxも使いたい場合でも、問題ありません。Dropbox上の変更は
git pull
とgit push
でGitの利用者側に反映されます。Dropboxのフォルダと自動的に同期するのです。ひとつのアプリにDropboxへ配置しているユーザが複数いる場合には、最新の変更はすべてのDropboxフォルダに同期されます。…
GitとDropboxはひとつのアプリを開発している場合でも一緒に利用できます。例えば、ラップトップで毎日開発し、変呼応をGitへプッシュし、その後、iPadしか持っていないときに変更を加える必要がある場合も心配ありません。Dropboxで使えるエディタでコードを開き、修正し、ダッシュボードの“Deploy”ボタンをクリックすればいいのです。
加えて、HerokuはDropbox Syncが複数開発者が同時にひとつのアプリケーションを開発できるようにする仕組みについても説明している。各開発者はそれぞれのDropboxアカウントをHerokuアプリケーションに紐付け、自動的にソースコードの変更を受けるようにする。Dropboxはソースコード管理システムとしては強力ではないので、Herokuは問題点も指摘し、警告している。特に、開発者がHerokuのgitリポジトリにforce-pushをする場合、Dropboxとの連携がなくなってしまう。これは、差分のレポートが難しいためだ。また、Dropbox上でのフォルダ名の変更でも連携は外れてしまう。コピーの衝突についてはHerokuは全力で修正しようとしている・
今回の更新で、Herokuは他のPaaSソリューションと比肩するようになった。次の表はInfoQが4つの人気のPaaSのコードの配置機能を比較したものだ。
Heroku | Azure | Cloud Foundry | OpenShift | |
CLI / API | X | X | ||
ローカルgit | X | X | X | |
GitHub | X | X | ||
Dropbox | X | X | ||
Team Foundation Server | X | |||
Bitbucket | X |