Web開発のワークフローについて質問があります。私はSymfonyでプロジェクトを構築していて、それはGitにあります。
現在、dev(ローカル)、ステージング、prodの3つの環境があります。プロジェクト自体は、GitHubのプライベートリポジトリでホストされています。
ステージング環境と本番環境を更新するのに良い方法は何でしょうか。どういうわけかプッシュベースのシステムをセットアップして、prod/stagingブランチをサーバーに直接プッシュし、Gitフックを使用してキャッシュファイルを再生成し、データベースの移行を実行できるようにする必要がありますか?
現在、同様のプロジェクトで、手動プルシステムを使用しています。このシステムでは、サーバーにSSHで接続し、prod Gitブランチから変更をプルダウンして、キャッシュ/移行を手動で実行します。これは明らかに理想的ではありません。
コマンドを使用して、サーバーをステージング/本番環境にデプロイしています。
gitプッシュ状態マスター
gitプッシュプロダクションマスター
そして終了したので、コードをプルするためにサーバーに行く必要はありません。
これはあなたが望むものかもしれません。このリンクを読んでください https://stackoverflow.com/questions/279169/deploy-a-project-using-git-Push
(a)負荷分散を行っておらず、(b)git操作を実行した後、regen-refresh-restartサイクルを自動化した場合、現在の状況が最も理想的だと思います。自動化が多すぎると、誤って展開されるリスクがあります。
データベースの変更、キャッシュの再生成、縮小など、Webサーバーの構成など、実際の展開に関連するさまざまな複雑さがあります。新しい書き換えルールを追加する必要がある場合はどうでしょうか。それは自動化されていますか?それは私たちのためであり、私はそれを変えることは決してありません。
負荷分散の場合は、「プッシュ」サーバーにデプロイし、そこからrsyncします。