質問: 最近、ローカルの開発環境を作るために、vagrantを使って作業しています。 ふとした疑問なのですが、ここで作ったファイルは最終的に特定のサーバにデプロイしていきたいのですが、 そのデプロイはどのように行うのが一般的なのでしょうか。 vagrantで立ち上げたゲストOS内で行った作業をgithubなどにアップして、 それを特定のデプロイ専用サーバなどから、対象の本番サーバに対してデプロイ。 みたいな作業を踏むのでしょうか。 よく分かってないのでご教示頂けますと幸いです。
回答: ファイルの転送だけであれば、rsync 等で直接転送し終了で良いと思います。 バージョン管理を行っている場合は、例えば、production ブランチにマージ後リポジトリに push し、その後本番サーバで pull 等の方法もあるでしょう。push 後本番サーバでの pull を自動化するデプロイがあってもよいと思います。 もう少し大規模なサービスになれば、push 後に各種テストが走り、pass した場合は予備サーバにデプロイし、本番サーバと入れ替え(障害時は差し戻し)なんていうのもあるかもしれません。 場合によっては、「コード編集 -> vagrant 環境にデプロイ」で動作確認をしていれば、「コード編集 -> 本番サーバにデプロイ」で適用完了になるかもしれません。 さて、Capistrano タグがついていますから、Ruby on Rails で Capistrano を使ったデプロイでしょうか。現在私が知っているものでは ・bitbucket (github みたいなやつです) に staging/production ブランチの push をすると ・wercker というサービスが、(Capistrano を使って)自動で ステージ/本番 サーバにデプロイ する WEB サービスがあります。