3

ライブ Web サイトのバックアップとリビジョン管理を維持するための最適なソリューションは何ですか?

私の仕事の一環として、私はいくつかのライブ Web サイトを扱っています。ライブ フォルダーのバックアップを長期的に維持するための効率的な手段が必要です。さらに、これらのサイトを更新することは、特に何らかの理由でライブ環境で変更が発生した場合に苦痛になる可能性があります.

理想的なのは、手間のかからないソース管理です。しばらくの間、SVN を実装しました。これは、バックアップやリビジョン管理 (一時的な変更や重大な変更を簡単に元に戻す) などの半解決策として優れていました。

残念ながら、SVN はどこにでも .SVN 隠しディレクトリを配置し、特に他の開発者がフォルダー構造を変更したり、Web サイトのディレクトリをコピー/移動したりすると、問題が発生します。これは教育などの問題であるという議論を聞いたことがありますが、SVN のアプローチは私たちにとって実用的な解決策ではありません。

増分バックアップ ソリューションの方が優れているのではないかと考えています。

その他の可能性は次のとおりです。

  1. 問題になるコマンドラインのみのSVK 。その上、これがどれほど適切かはわかりません。
  2. Mercurial、おそらく分散コンポーネントを非表示にするためのトリガーがいくつかありますが、これはこの場合は必要なく、他の開発者にとって不必要に複雑になります。

    私は Mercurial で簡単に実験しましたが、リポジトリを分離し、ライブ フォルダの作業コピーと常に同期させる良い方法を見つけることができませんでした。おそらく、ソース管理ソリューション (リポジトリとライブ フォルダーを同じ場所にする) を別のバックアップ ソリューションと組み合わせると、これが進むべき道になる可能性があります。

    Mercurial の欠点の 1 つは、空のフォルダーをソース管理下に配置しないことです。これは、ファイルのアップロードなどのプレースホルダーの場所として空のフォルダーを使用することが多い Web サイトでは問題になります。

  3. Rsync、実際には調査していません。

ライブ Web サイトのバックアップを維持するための最善の方法についてアドバイスをいただければ幸いです。理想的には、過去のバージョンをすばやく取得する簡単な方法を使用することです。

回答の返信:

  • @キビー

    • 教育というより、VSS 以外の知識がなく、他のことを学ぶ時間や労力が不足しています。

    • xcopy/7-zip のアプローチは理にかなっているように思えますが、すぐに多くのスペースを占有してしまうのではないでしょうか?

    • ソース管理に関しては、ソース管理に「これが現在のフォルダーの状態です。それを処理します。一致しない場合は、それはあなたのせいです」とだけ言ってほしいと思います。激しく失敗するよりも、新しい歴史を始めるだけです。

  • @スティーブM

    • ええ、それはそれを行うためのより良い方法ですが、大幅な文化的変化が必要になります. とは言っても、私はこのアプローチがとても好きです。
  • @mk :

    • いいね、Rsync を使用して展開することは考えていませんでした。これは差分のみをアップロードしますか? 変更を行うたびにライブ ディレクトリ全体を上書きすると、サイトのダウンタイムが原因で問題が発生します。

もっと伝統的なオプションがあるかどうか、私はまだ興味があります

4

4 に答える 4

4

引き続き SVN を使用できますが、ライブ環境でチェックアウトする代わりに、エクスポートを実行してください。そうすれば、.svn ディレクトリは作成されません。もちろん、欠点は、実際の環境でコードを変更できないことです。これは良いことです。

原則として、本番システムでのコードの変更は許可されるべきではありません。変更は、開発/テスト/UAT 環境で行ってテストする必要があります。OK と確認されたら、SVN でそのコードに RELEASE-xxx などのタグを付けることができます。次に、ライブ システムで、そのタグを使用してコードをエクスポートします。

于 2008-08-26T02:37:51.423 に答える
2

オプション 3. Rsync を使用します。これを実行するための bash スクリプトと追加のチェックを作成しましたが、基本的な動作は次のとおりです。

  1. ライブにプッシュするためのタグを作成します。
  2. そのタグで svn export を実行します。
  3. ライブにrsyncします。

これまでのところ、それはうまくいっています。ユーザーの競合について心配したり、本番マシンで svn up を実行するための別のユーザーを用意したりする必要はありません。

于 2008-08-26T02:49:17.497 に答える
1

rsyncは違いのみをアップロードします。私は個人的には使用していませんが、Mark Pilgrimは、バイナリ差分をどのように見事に処理するかについて、ずっと前に書いています。

svn+rsyncは素晴らしい解決策のように聞こえます。私は将来それを試さなければならないでしょう。

于 2008-08-29T22:40:49.420 に答える
1

選択したソース管理ソリューションは、人々がファイルを移動、削除、または追加し、それについてソース管理システムに通知しない場合、問題が発生します。この問題を解決できるソース管理項目を知りません。

プロジェクトに取り組んでいる人々を教育できない場合[1]、毎日のスナップショットを使用する必要があるかもしれません。ネットワークドライブへのxcopyを使用したバッチファイルと、コマンドラインで7-zipを使用して圧縮するのと同じくらい簡単な方法で、スペースを取りすぎないようにするのがおそらく最も簡単な解決策です。

[1] 私はこれを大いに信じません。おそらく、頑固すぎて学ぶ気がない、または「余分な仕事」をする気がない人々のケースです。以前のバージョンに戻らなければならない場合や、2 人のユーザーが同じファイルを編集した場合に、ソース管理によってどれだけの時間を節約できるかは気にしないでください。

于 2008-08-26T02:37:57.663 に答える