私の質問は、本番環境を適切にバージョン管理するにはどうすればよいですか?
これが現在の環境です。
- (内部サーバー)開発-バージョン管理されたソースコード
- (お客様のサーバー)受け入れテスト環境
- (カスタマーサーバー)ステージング環境
- (お客様のサーバー)本番環境
受け入れテスト用の新機能をリリースするときは、Visual Studioで公開し、変更を圧縮してテストサーバーに適用します。そこで、バックアップフォルダーを作成し(変更を元に戻すことができるように)、リリースフォルダーを作成して、承認されたときにこれらの変更をステージングに移動できるようにします。
これは、バックアップフォルダーの作成、フォルダーのリリース、ディレクトリ構造の再作成、およびリリースに含まれる機能の追跡を試みるための多くの手作業です。それは面倒であり、リリース手順に従わない開発者には常に問題があります。
理論的には、テスト環境用のリポジトリを作成できます。(ソースコードを忘れてください。これは公開されたアプリケーションに関するものです)リリースごとに、開発者はコミットを行い、リリースしている機能についてコメントを提供します。
機能をテストからステージングに移動する必要がある場合は、ステージング環境が最後に更新された日付から行われた変更をエクスポートし、ステージングアプリケーションにコピーします。そこで、本番環境にリリースするために後で抽出できるコミットを実行します。
これの欠点は、Subversionを使用すると、アプリケーションがそれらの.svnディレクトリで乱雑になることです。これは、IISまたはweb.config内のこれらのディレクトリへのアクセスを禁止することで修正できます。別の解決策は、アプリケーションのルートディレクトリの上のディレクトリでGitを使用することです。しかし、Gitは、Windows環境で経験の浅い開発者にとっては扱いにくいものです。
誰かがこの問題の経験がありますか?本番環境をどのようにバージョン管理しますか?リリースを元に戻す必要がある場合、リリース前に作成したバックアップフォルダはありますか?
私はこれについて開発者と話し合いましたが、テスト/ステージング/本番環境のバージョン管理とバックアップにSubversionを使用しても問題はありません。まったく逆に、新しい機能をリリースする必要があるたびにリリース/バックアップフォルダを作成しないことを喜んでいます。
同時に、これについていくつかの不安があります。アプリケーションをバージョン管理システムに配置しているため、これについて聞いたことはありません。欠点が何であるかはわかりません。
このようなシナリオの経験があれば、喜んでお聞きします。
ミカエル・ルンディン