26

Rails 開発エコシステムにはまだ慣れていません。最近、Apache と Passenger を使用してサーバーにデプロイするために capistrano を使用する方法を学びました。かなり複雑な一連のデプロイ命令を deploy.rb に入れ、1 回の「cap deploy」呼び出しで実行できるようにする方法が気に入っています。何か問題が発生した場合の自動ロールバック。

今、私は自分のプロジェクトを Heroku にデプロイすることを検討しています。そこでのデプロイには capistrano を使用できると期待していました。しかし、これを行う方法に関するドキュメントを見つけることができませんでした。出来ますか?Heroku へのデプロイを自動化できる capistrano タスクはありますか?

これは意味がありますか?カピストラーノは特定の方法 (サーバーへの ssh) で動作し、特定のディレクトリ構造 (public/releases/shared など) を前提としています。私の知る限り、これらは両方とも Heroku では不可能です。それでもカピストラーノの便利さが欲しい。展開に必要な手順 (git push/migrate/resque worker の再起動など) を 1 つの rake タスクに入れることができることはわかっています。しかし、私の頭の中では非常に重要なカピストラーノ トランザクションとロールバックの利点はありません。

これらのテクノロジーがどのように組み合わされるかについて、非常に基本的なことが欠けている可能性があります。このテーマに関する議論をどこにも見つけることができなかったことに少し驚いています。誰でも自分の経験を共有できますか?

4

1 に答える 1

38

Heroku はデプロイに Git を使用しており、capistrano フレンドリーではありません。実際、哲学自体は異なります。Heroku には、SSH で接続したり、必要に応じてサーバーをカスタマイズしたりできる「サーバー」がありません。

Heroku は、事前定義されたインスタンスである Dyno を使用し、Rails デプロイメントのニーズの大部分をカバーする特定のデプロイメント アーキテクチャを備えています。ロールバック、バックアップ、移行などのアクションを Heroku で実行できます。場合によっては、通常の capistrano スクリプトよりも洗練されています。

セットアップがまったく異なる場合を除き、Heroku for Rails を安全に使用できます (もちろん、Git のみで) 。そうでない場合は、AWS の方が適しています。

于 2012-10-22T11:58:56.770 に答える