0

アプリケーションがあり、その主な機能はファイルにあります。また、マスターブランチとプロダクションブランチを備えたGITリポジトリがあります。

アプリケーションは6つの本番サーバーにあり、負荷分散サーバーが前面にあります。主な問題はファイルの同期にあります。

現時点では、ファイルとのネットワーク共有があり、すべてのサーバーがそれを確認しています。このソリューションにはネットワーク負荷の問題があり(一時は共有からファイルを読み取るために1000を超える接続があります)、非常に低速です。

私にはいくつかの解決策があります:

  1. いくつかの同期ソフトウェアを使用する
  2. gitフックを使用して、ローカルリポジトリから更新をフェッチし、サーバーにプルします
  3. ネットワーク負荷のある解決策を見つける

何が最適でしょうか?そして他の解決策はありますか?

4

2 に答える 2

0

Capistranoは、この種のコード展開用に設計されています。サイトのローカル コピーをバージョン管理から新しいディレクトリに更新し (Git を使用すると、最初にローカル リポジトリのコピーを更新するため、非常に高速です)、すべてのサーバーが新しいコードベースで準備が整ったら、シンボリック リンクを反転し、必要に応じて再起動します。サイトの新しいバージョンが提供されるように、Web サービス。そのタスクでいずれかのマシンが失敗すると、すべてのマシンがロールバックされます。

最初は Ruby on Rails Web サイトで使用されましたが、他の言語でも使用されています。複数のサーバーにまたがる PHP ベースのサイトで、私はこれを頻繁に使用してきましたが、非常に成功しています。

于 2012-12-08T09:44:07.083 に答える
0

ある種の継続的インテグレーション サーバーの使用についてはどうですか? アプリケーションの詳細はわかりませんが、通常、CI サーバーはテストを自動化し、アプリケーション サーバーにデプロイできます。

使用する言語によっては、いくつかの CI サーバーがあります。私の経験では、JAVA プロジェクトの場合、jenkinsは優れたソリューションです。

于 2012-12-08T09:36:06.153 に答える