0

Web サーバーには 4Gb のデータがあります。

信頼性を高め、データ損失をなくすために、Subversion (SVN) を使用して、当サイト (主に画像、Flash、ビデオの 4 Gb) と他の開発サイトの両方で使用することを検討しています。

私たちのメイン サイトで SVN を使用するという私の考えは次のとおりです。

  • これらのファイル (.html ファイル、.pl および .pm ファイルなど) を直接編集するための個別の SVN リポジトリを用意します。
  • メイン サイトの 4 Gb ダンプ全体を格納するための 2 つ目の SVN リポジトリを、洗練されたバックアップ手段として用意しています (エラー リカバリの場合に後の変更とマージする機能を備えています)。
  • 私たちが開発する他のサイトの SVN リポジトリが増えます。

私は尋ねます:

  • SVN は、その 4 Gb バージョンに対して十分に高速でスケーラブルですか? コミットにはどれくらいの時間がかかりますか?
  • 私たちのサイトに、すべてのデータ用とコード用の 2 つの別々のリポジトリを用意することは良い考えですか?
  • リクエストに応じてサーバーの httpdocs/ を更新するのに役立つ (おそらく Bash または Perl) スクリプトを提供していただけますか?
  • 1 つはデバッグ用の HEAD を実行し、もう 1 つは外部インターネット用の安定したブランチを実行する 2 つの Web サーバーを持つことについてはどうでしょうか。
  • サーバーでホストしている複数のサイトの複数の SVN リポジトリを簡単に管理するにはどうすればよいですか? (任意のヒント?)
  • SVN でデータベース (MySQL) のバックアップを管理するには?

追加: バイナリ ファイルのデルタを保存する必要はありません。ほとんどの場合、サーバー上のバイナリ ファイルは変更されません。しかし、バイナリ ファイルが変更されたかどうかを判断するには、迅速な手段が必要です。

4

2 に答える 2

1

Subversionは、定期的なバックアップやバックアップ戦略の代替品でも競合他社でもありません!!!

あなたは正しい方法(tm)ですべてのツールを使わなければなりません!

于 2013-01-16T20:34:50.357 に答える
0

SVNはソースコード管理に優れています(これは、SVNが行うように設計されたものです)。同じことがどのソースコード管理システムにも当てはまります。管理を依頼する非ソースコードが多いほど、期待できる満足度は低くなります。

Mavenリポジトリーは、バイナリー・コード管理(それが行うように設計されたもの)に優れています。基本的に、特定のファイルを(最小限の「mavenプロジェクト構造」で)チェックインすると、Mavenは、他のプロジェクトが持つ可能性のある「依存関係」を満たすためにそのファイルを提供できます。

おそらく、ソースコード(別名HTML / Javascript / CSS /など)用のSVNチェックインMavenプロジェクト、およびバイナリ(画像、ビデオ、PDFなど)用のMavenプロジェクト内の依存関係ですか?次に、次のような展開プロセスがあります。

  1. ビルド場所へのチェックアウト、(svn checkout
  2. ウェブサイトを構築します(mvn installこれにより、依存するバイナリが吸い込まれます)
  3. Webサイトをパッケージ化します(mvn packageおそらくzipファイルまたはtar.gzに)。
  4. (後で)Webサイトを展開mvn deployします(アクティブなプロファイル(本番、開発)に応じておそらく異なる場所に)

何をするにしても、次のアンチパターンは避けてください。予想以上に悲しみが生じます。

  1. デプロイするためにWebサーバーに直接チェックアウトしないでください。
  2. Webサイトのパッケージ化をスキップしないでください。スキップしないと、ロールバックが困難/不可能になります(または完全な展開を保証することさえできます)。
  3. ライブディレクトリでWebサイトを開発することを期待しないでください。サイトの開発、構築、ローカルでのデプロイ(Mavenを使用すると簡単にできます)、そして変更のチェックイン(見た目が良ければ)に慣れてください。

サイトを作り直して、任意のマシン/ディレクトリの場所に展開できるようにし、稼働前に検証サーバー/場所で「サイトを立ち上げる」ことを容易にします。Mavenは、ライブサイトと一般的な開発者サイトを分離するのに役立つ「プロファイル」を提供します。Mavenターゲットは開発中の製品ではなく、製品(開発したWebサイト)の進捗/品質を追跡するための管理製品であるため、Mavenターゲットを回避することを忘れないでください。site

最終的にはSVN/Mavenを使用して、Jenkinsサーバーで作業して「メインライン」ビルドを実行できます。後で、自動統合テスト用にSeleniumサーバーを追加し、継続的展開のプラクティスを利用できますが、一度に1つの小さなステップです。このパスを選択することは悪いことではありませんが、ツールにある程度精通していない限り、学ぶことが少しある可能性があります。

于 2013-01-16T20:18:32.513 に答える